protected function getShippingXml() { $template = $this->product->getTemplate(); if ($template->shipping_type === 'C') { return <<<XML <ShippingDetails> <ShippingType>Calculated</ShippingType> <CalculatedShippingRate> <PackageDepth>{$this->product->shipping_box_height}</PackageDepth> <PackageLength>{$this->product->shipping_box_length}</PackageLength> <PackageWidth>{$this->product->shipping_box_width}</PackageWidth> <ShippingPackage>{$this->product->package_type}</ShippingPackage> <WeightMajor>{$this->product->weight_major}</WeightMajor> <WeightMinor>{$this->product->weight_minor}</WeightMinor> <MeasurementUnit>{$template->getMeasureType()}</MeasurementUnit> </CalculatedShippingRate> <ShippingServiceOptions> <ShippingService>{$template->shippings}</ShippingService> <ShippingServicePriority>1</ShippingServicePriority> </ShippingServiceOptions> </ShippingDetails> XML; } else { $shipping_cost_additional = '<ShippingServiceAdditionalCost currencyID="' . CART_PRIMARY_CURRENCY . '">' . number_format($template->shipping_cost_additional, 2, '.', '') . '</ShippingServiceAdditionalCost>'; if ($template->free_shipping === 'N') { $free_shipping = "false"; $shipping_cost = '<ShippingServiceCost currencyID="' . CART_PRIMARY_CURRENCY . '">' . number_format($template->shipping_cost, 2, '.', '') . '</ShippingServiceCost>'; } else { $shipping_cost = null; $free_shipping = 'true'; } return <<<XML <ShippingDetails> <ShippingType>Flat</ShippingType> <ShippingServiceOptions> <FreeShipping>{$free_shipping}</FreeShipping> {$shipping_cost} <ShippingService>{$template->shippings}</ShippingService> <ShippingServicePriority>1</ShippingServicePriority> {$shipping_cost_additional} </ShippingServiceOptions> </ShippingDetails> XML; } }
/** * @param $product_ids * @throws \Exception * @throws \SmartyException */ protected static function endProducts(array $product_ids) { static::$count_success = 0; static::$count_fail = 0; static::$count_skip = 0; static::$errors = array(); static::$error_counter = array(); $product_ids = array_filter($product_ids); $templates = $groups = array(); fn_set_progress('parts', count($product_ids)); foreach ($product_ids as $product_id) { $product = new Product($product_id, array('external')); if (empty($product->external_id) || $product->statusIsClosed()) { if (empty($product->external_id)) { static::setError('100_' . $product_id, __('ebay_product_not_exported', array('[product]' => $product->original_title)), true); } else { static::setError('101_' . $product_id, __('ebay_product_already_sales_closed', array('[product]' => $product->original_title)), true); } fn_set_progress('echo', '.'); static::$count_skip++; continue; } if (!isset($templates[$product->template_id])) { $templates[$product->template_id] = $product->getTemplate(); } $groups[$product->template_id][] = $product; if (count($groups[$product->template_id]) >= static::MAX_COUNT_END_PRODUCTS) { static::endGroupProducts($templates[$product->template_id], $groups[$product->template_id]); unset($groups[$product->template_id]); } } if (!empty($groups)) { foreach ($groups as $template_id => $products) { static::endGroupProducts($templates[$template_id], $products); } } /** @var \Smarty $smarty */ $smarty = Tygh::$app['view']; $smarty->assign('end_result', array('count_success' => static::$count_success, 'count_fail' => static::$count_fail, 'count_skip' => static::$count_skip, 'errors' => static::$errors, 'error_counter' => static::$error_counter, 'count_external_error' => static::$count_external_error)); fn_set_notification('I', __('ebay_end_summary_title'), $smarty->fetch('addons/ebay/views/ebay/components/end_summary.tpl')); }