예제 #1
0
 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;
         }
     }
 }