protected function addShippingData(Ess_M2ePro_Model_ListingsProducts $listingProduct, array &$requestData) { $requestData['shipping'] = array(); if ($listingProduct->getListingTemplate()->isLocalShippingEnabled()) { $requestData['shipping']['local'] = array(); if ($listingProduct->getListingTemplate()->isLocalShippingFreightEnabled()) { $requestData['shipping']['local']['type'] = Ess_M2ePro_Model_ListingsTemplates::EBAY_SHIPPING_TYPE_FREIGHT; } if ($listingProduct->getListingTemplate()->isLocalShippingLocalEnabled()) { $requestData['shipping']['local']['type'] = Ess_M2ePro_Model_ListingsTemplates::EBAY_SHIPPING_TYPE_LOCAL; } if ($listingProduct->getListingTemplate()->isLocalShippingFlatEnabled()) { $requestData['shipping']['local']['type'] = Ess_M2ePro_Model_ListingsTemplates::EBAY_SHIPPING_TYPE_FLAT; } if ($listingProduct->getListingTemplate()->isLocalShippingCalculatedEnabled()) { $requestData['shipping']['local']['type'] = Ess_M2ePro_Model_ListingsTemplates::EBAY_SHIPPING_TYPE_CALCULATED; $requestData['shipping']['local']['handing_fee'] = $listingProduct->getLocalHandling(); $requestData['shipping']['calculated'] = array('measurement_system' => $listingProduct->getListingTemplate()->getCalculatedShipping()->getMeasurementSystem(), 'package_size' => $listingProduct->getPackageSize(), 'originating_postal_code' => $listingProduct->getListingTemplate()->getCalculatedShipping()->getPostalCode(), 'dimensions' => $listingProduct->getDimensions(), 'weight' => $listingProduct->getWeight()); if ($requestData['shipping']['calculated']['measurement_system'] == Ess_M2ePro_Model_ListingsTemplatesCalculatedShipping::MEASUREMENT_SYSTEM_ENGLISH) { $requestData['shipping']['calculated']['measurement_system'] = Ess_M2ePro_Model_ListingsTemplatesCalculatedShipping::EBAY_MEASUREMENT_SYSTEM_ENGLISH; } if ($requestData['shipping']['calculated']['measurement_system'] == Ess_M2ePro_Model_ListingsTemplatesCalculatedShipping::MEASUREMENT_SYSTEM_METRIC) { $requestData['shipping']['calculated']['measurement_system'] = Ess_M2ePro_Model_ListingsTemplatesCalculatedShipping::EBAY_MEASUREMENT_SYSTEM_METRIC; } } if ($listingProduct->getListingTemplate()->isLocalShippingFlatEnabled() || $listingProduct->getListingTemplate()->isLocalShippingCalculatedEnabled()) { $requestData['shipping']['get_it_fast'] = $listingProduct->getListingTemplate()->isGetItFastEnabled(); $requestData['shipping']['dispatch_time'] = $listingProduct->getListingTemplate()->getDispatchTime(); $requestData['shipping']['local']['discount'] = $listingProduct->getListingTemplate()->isLocalShippingDiscountEnabled(); $requestData['shipping']['local']['cash_on_delivery'] = $listingProduct->getListingTemplate()->isLocalShippingCashOnDeliveryEnabled(); $requestData['shipping']['local']['cash_on_delivery_cost'] = $listingProduct->getLocalShippingCashOnDeliveryCost(); $requestData['shipping']['local']['methods'] = array(); $tempShippingsMethods = $listingProduct->getListingTemplate()->getListingsTemplatesShippings(true); foreach ($tempShippingsMethods as $tempMethod) { if (!$tempMethod->isShippingTypeLocal()) { continue; } $tempMethod->setMagentoProduct($listingProduct->getMagentoProduct()); $tempDataMethod = array('service' => $tempMethod->getShippingValue()); if ($listingProduct->getListingTemplate()->isLocalShippingFlatEnabled()) { $tempDataMethod['cost'] = $tempMethod->getCost(); $tempDataMethod['cost_additional'] = $tempMethod->getCostAdditional(); } if ($listingProduct->getListingTemplate()->isLocalShippingCalculatedEnabled()) { $tempDataMethod['is_free'] = $tempMethod->isCostModeFree(); } $requestData['shipping']['local']['methods'][] = $tempDataMethod; } } } if ($listingProduct->getListingTemplate()->isInternationalShippingEnabled() && !$listingProduct->getListingTemplate()->isLocalShippingFreightEnabled() && !$listingProduct->getListingTemplate()->isLocalShippingLocalEnabled()) { $requestData['shipping']['international'] = array(); if ($listingProduct->getListingTemplate()->isInternationalShippingFlatEnabled()) { $requestData['shipping']['international']['type'] = Ess_M2ePro_Model_ListingsTemplates::EBAY_SHIPPING_TYPE_FLAT; } if ($listingProduct->getListingTemplate()->isInternationalShippingCalculatedEnabled()) { $requestData['shipping']['international']['type'] = Ess_M2ePro_Model_ListingsTemplates::EBAY_SHIPPING_TYPE_CALCULATED; $requestData['shipping']['international']['handing_fee'] = $listingProduct->getInternationalHandling(); if (!isset($requestData['shipping']['calculated'])) { $requestData['shipping']['calculated'] = array('measurement_system' => $listingProduct->getListingTemplate()->getCalculatedShipping()->getMeasurementSystem(), 'package_size' => $listingProduct->getPackageSize(), 'originating_postal_code' => $listingProduct->getListingTemplate()->getCalculatedShipping()->getPostalCode(), 'dimensions' => $listingProduct->getDimensions(), 'weight' => $listingProduct->getWeight()); if ($requestData['shipping']['calculated']['measurement_system'] == Ess_M2ePro_Model_ListingsTemplatesCalculatedShipping::MEASUREMENT_SYSTEM_ENGLISH) { $requestData['shipping']['calculated']['measurement_system'] = Ess_M2ePro_Model_ListingsTemplatesCalculatedShipping::EBAY_MEASUREMENT_SYSTEM_ENGLISH; } if ($requestData['shipping']['calculated']['measurement_system'] == Ess_M2ePro_Model_ListingsTemplatesCalculatedShipping::MEASUREMENT_SYSTEM_METRIC) { $requestData['shipping']['calculated']['measurement_system'] = Ess_M2ePro_Model_ListingsTemplatesCalculatedShipping::EBAY_MEASUREMENT_SYSTEM_METRIC; } } } $requestData['shipping']['international']['discount'] = $listingProduct->getListingTemplate()->isInternationalShippingDiscountEnabled(); $requestData['shipping']['international']['methods'] = array(); $tempShippingsMethods = $listingProduct->getListingTemplate()->getListingsTemplatesShippings(true); foreach ($tempShippingsMethods as $tempMethod) { if (!$tempMethod->isShippingTypeInternational()) { continue; } $tempMethod->setMagentoProduct($listingProduct->getMagentoProduct()); $tempDataMethod = array('service' => $tempMethod->getShippingValue(), 'locations' => $tempMethod->getLocations()); if ($listingProduct->getListingTemplate()->isInternationalShippingFlatEnabled()) { $tempDataMethod['cost'] = $tempMethod->getCost(); $tempDataMethod['cost_additional'] = $tempMethod->getCostAdditional(); } $requestData['shipping']['international']['methods'][] = $tempDataMethod; } } }