Exemplo n.º 1
0
 public function getVariationsData()
 {
     $data = array();
     $variations = $this->getListingProduct()->getVariations(true);
     foreach ($variations as $variation) {
         /** @var $variation Ess_M2ePro_Model_Listing_Product_Variation */
         $item = array('_instance_' => $variation, 'price' => $variation->getChildObject()->getPrice(), 'qty' => $variation->getChildObject()->isDelete() ? 0 : $variation->getChildObject()->getQty(), 'sku' => $variation->getChildObject()->getSku(), 'add' => $variation->getChildObject()->isAdd(), 'delete' => $variation->getChildObject()->isDelete(), 'specifics' => array());
         if ($this->getEbayListingProduct()->isPriceDiscountStp()) {
             $priceDiscountData = array('original_retail_price' => $variation->getChildObject()->getPriceDiscountStp());
             if ($this->getEbayMarketplace()->isStpAdvancedEnabled()) {
                 $priceDiscountData = array_merge($priceDiscountData, $this->getEbayListingProduct()->getEbaySellingFormatTemplate()->getPriceDiscountStpAdditionalFlags());
             }
             $item['price_discount_stp'] = $priceDiscountData;
         }
         if ($this->getEbayListingProduct()->isPriceDiscountMap()) {
             $priceDiscountMapData = array('minimum_advertised_price' => $variation->getChildObject()->getPriceDiscountMap());
             $exposure = $variation->getChildObject()->getEbaySellingFormatTemplate()->getPriceDiscountMapExposureType();
             $priceDiscountMapData['minimum_advertised_price_exposure'] = Ess_M2ePro_Model_Ebay_Listing_Product_Action_Request_Selling::getPriceDiscountMapExposureType($exposure);
             $item['price_discount_map'] = $priceDiscountMapData;
         }
         $options = $variation->getOptions(true);
         foreach ($options as $option) {
             /** @var $option Ess_M2ePro_Model_Listing_Product_Variation_Option */
             $item['specifics'][$option->getAttribute()] = $option->getOption();
         }
         $data[] = $item;
     }
     return $data;
 }
Exemplo n.º 2
0
 /**
  * @return array
  * @throws Ess_M2ePro_Model_Exception_Logic
  */
 public function getVariationsData()
 {
     $data = array();
     $qtyMode = $this->getEbayListingProduct()->getEbaySellingFormatTemplate()->getQtyMode();
     $variations = $this->getListingProduct()->getVariations(true);
     $productsIds = array();
     foreach ($variations as $variation) {
         /** @var $variation Ess_M2ePro_Model_Listing_Product_Variation */
         /** @var $ebayVariation Ess_M2ePro_Model_Ebay_Listing_Product_Variation */
         $ebayVariation = $variation->getChildObject();
         $item = array('_instance_' => $variation, 'price' => $ebayVariation->getPrice(), 'qty' => $ebayVariation->isDelete() ? 0 : $ebayVariation->getQty(), 'sku' => $ebayVariation->getSku(), 'add' => $ebayVariation->isAdd(), 'delete' => $ebayVariation->isDelete(), 'specifics' => array());
         if (($qtyMode == Ess_M2ePro_Model_Template_SellingFormat::QTY_MODE_PRODUCT_FIXED || $qtyMode == Ess_M2ePro_Model_Template_SellingFormat::QTY_MODE_PRODUCT) && !$item['delete']) {
             $options = $variation->getOptions();
             foreach ($options as $option) {
                 $productsIds[] = $option['product_id'];
             }
         }
         if ($this->getEbayListingProduct()->isPriceDiscountStp()) {
             $priceDiscountData = array('original_retail_price' => $ebayVariation->getPriceDiscountStp());
             if ($this->getEbayMarketplace()->isStpAdvancedEnabled()) {
                 $priceDiscountData = array_merge($priceDiscountData, $this->getEbayListingProduct()->getEbaySellingFormatTemplate()->getPriceDiscountStpAdditionalFlags());
             }
             $item['price_discount_stp'] = $priceDiscountData;
         }
         if ($this->getEbayListingProduct()->isPriceDiscountMap()) {
             $priceDiscountMapData = array('minimum_advertised_price' => $ebayVariation->getPriceDiscountMap());
             $exposure = $ebayVariation->getEbaySellingFormatTemplate()->getPriceDiscountMapExposureType();
             $priceDiscountMapData['minimum_advertised_price_exposure'] = Ess_M2ePro_Model_Ebay_Listing_Product_Action_Request_Selling::getPriceDiscountMapExposureType($exposure);
             $item['price_discount_map'] = $priceDiscountMapData;
         }
         $variationDetails = $this->getVariationDetails($variation);
         if (!empty($variationDetails)) {
             $item['details'] = $variationDetails;
         }
         $options = $variation->getOptions(true);
         foreach ($options as $option) {
             /** @var $option Ess_M2ePro_Model_Listing_Product_Variation_Option */
             $item['specifics'][$option->getAttribute()] = $option->getOption();
         }
         $data[] = $item;
     }
     $this->checkQtyWarnings($productsIds);
     return $data;
 }
Exemplo n.º 3
0
 public function getPriceDiscountMapData()
 {
     if (!$this->getConfigurator()->isPrice() || $this->getIsVariationItem()) {
         return array();
     }
     if (!$this->getEbayListingProduct()->isListingTypeFixed() || !$this->getEbayListingProduct()->isPriceDiscountMap()) {
         return array();
     }
     $data = array('minimum_advertised_price' => $this->getEbayListingProduct()->getPriceDiscountMap());
     $exposure = $this->getEbaySellingFormatTemplate()->getPriceDiscountMapExposureType();
     $data['minimum_advertised_price_exposure'] = Ess_M2ePro_Model_Ebay_Listing_Product_Action_Request_Selling::getPriceDiscountMapExposureType($exposure);
     return array('price_discount_map' => $data);
 }