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; }
/** * @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; }
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); }