Example #1
0
 public function getVariationValue(\Ess\M2ePro\Model\Listing\Product\Variation $variation)
 {
     if ($variation->getChildObject()->isDelete()) {
         return 0;
     }
     return parent::getVariationValue($variation);
 }
 public function getVariationValue(ListingProductVariation $variation)
 {
     if ($variation->getChildObject()->isDelete()) {
         return 0;
     }
     return parent::getVariationValue($variation);
 }
Example #3
0
 private function getVariationDetails(\Ess\M2ePro\Model\Listing\Product\Variation $variation)
 {
     $data = array();
     /** @var \Ess\M2ePro\Model\Ebay\Template\Description $ebayDescriptionTemplate */
     $ebayDescriptionTemplate = $this->getEbayListingProduct()->getEbayDescriptionTemplate();
     $options = NULL;
     $additionalData = $variation->getAdditionalData();
     foreach (array('isbn', 'upc', 'ean', 'mpn') as $tempType) {
         if ($tempType == 'mpn' && !empty($additionalData['ebay_mpn_value'])) {
             $data[$tempType] = $additionalData['ebay_mpn_value'];
             continue;
         }
         if (isset($additionalData['product_details'][$tempType])) {
             $data[$tempType] = $additionalData['product_details'][$tempType];
             continue;
         }
         if ($tempType == 'mpn') {
             if ($ebayDescriptionTemplate->isProductDetailsModeNone('brand')) {
                 continue;
             }
             if ($ebayDescriptionTemplate->isProductDetailsModeDoesNotApply('brand')) {
                 $data[$tempType] = Description::PRODUCT_DETAILS_DOES_NOT_APPLY;
                 continue;
             }
         }
         if ($ebayDescriptionTemplate->isProductDetailsModeNone($tempType)) {
             continue;
         }
         if ($ebayDescriptionTemplate->isProductDetailsModeDoesNotApply($tempType)) {
             $data[$tempType] = Description::PRODUCT_DETAILS_DOES_NOT_APPLY;
             continue;
         }
         if (!$this->getMagentoProduct()->isConfigurableType() && !$this->getMagentoProduct()->isGroupedType()) {
             continue;
         }
         $attribute = $ebayDescriptionTemplate->getProductDetailAttribute($tempType);
         if (!$attribute) {
             continue;
         }
         if (is_null($options)) {
             $options = $variation->getOptions(true);
         }
         /** @var $option \Ess\M2ePro\Model\Listing\Product\Variation\Option */
         $option = reset($options);
         $this->searchNotFoundAttributes();
         $tempValue = $option->getMagentoProduct()->getAttributeValue($attribute);
         if (!$this->processNotFoundAttributes(strtoupper($tempType)) || !$tempValue) {
             continue;
         }
         $data[$tempType] = $tempValue;
     }
     return $this->deleteNotAllowedIdentifier($data);
 }
 protected function applyAdditionalOptionValuesModifications(Variation $variation, $value)
 {
     foreach ($variation->getOptions(true) as $option) {
         if ($this->getMagentoProduct()->isSimpleType()) {
             $value += $this->getSimpleWithCustomOptionsAdditionalOptionValue($option);
         } else {
             if ($this->getMagentoProduct()->isBundleType() && $option->getProductId()) {
                 $value += $this->getBundleAdditionalOptionValue($option);
             }
         }
     }
     return $value;
 }
Example #5
0
 protected function getClearVariationValue(\Ess\M2ePro\Model\Listing\Product\Variation $variation)
 {
     if ($this->getMagentoProduct()->isConfigurableType() || $this->getMagentoProduct()->isSimpleTypeWithCustomOptions() || $this->getMagentoProduct()->isGroupedType()) {
         $options = $variation->getOptions(true);
         $value = $this->getOptionBaseValue(reset($options));
     } else {
         if ($this->getMagentoProduct()->isBundleType()) {
             $optionsQtyList = array();
             $optionsQtyArray = array();
             // grouping qty by product id
             foreach ($variation->getOptions(true) as $option) {
                 if (!$option->getProductId()) {
                     continue;
                 }
                 $optionsQtyArray[$option->getProductId()][] = $this->getOptionBaseValue($option);
             }
             foreach ($optionsQtyArray as $optionQty) {
                 $optionsQtyList[] = floor($optionQty[0] / count($optionQty));
             }
             $value = min($optionsQtyList);
         } else {
             throw new Logic('Unknown Product type.', array('listing_product_id' => $this->getProduct()->getId(), 'product_id' => $this->getMagentoProduct()->getProductId(), 'type' => $this->getMagentoProduct()->getTypeId()));
         }
     }
     return $value;
 }