Beispiel #1
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();
     $variationIdsIndexes = 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();
         if (isset($this->validatorsData['variation_fixed_price_' . $variation->getId()])) {
             $variationPrice = $this->validatorsData['variation_fixed_price_' . $variation->getId()];
         } else {
             $variationPrice = $ebayVariation->getPrice();
         }
         $item = array('_instance_' => $variation, 'price' => $variationPrice, '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;
         $variationIdsIndexes[$variation->getId()] = count($data) - 1;
     }
     $this->addMetaData('variation_ids_indexes', $variationIdsIndexes);
     $this->checkQtyWarnings($productsIds);
     return $data;
 }
Beispiel #2
0
 /**
  * @return array
  */
 public function getPriceDiscountMapData()
 {
     if (!$this->getConfigurator()->isPriceAllowed() || $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);
 }