Пример #1
0
 private function getDescription(\Ess\M2ePro\Model\Magento\Product $magentoProduct, \Ess\M2ePro\Model\Listing\Product $listingProduct = NULL)
 {
     $descriptionTemplateData = $this->_getSession()->getTemplateData();
     $descriptionModeProduct = \Ess\M2ePro\Model\Ebay\Template\Description::DESCRIPTION_MODE_PRODUCT;
     $descriptionModeShort = \Ess\M2ePro\Model\Ebay\Template\Description::DESCRIPTION_MODE_SHORT;
     $descriptionModeCustom = \Ess\M2ePro\Model\Ebay\Template\Description::DESCRIPTION_MODE_CUSTOM;
     if ($descriptionTemplateData['description_mode'] == $descriptionModeProduct) {
         $description = $magentoProduct->getProduct()->getDescription();
     } elseif ($descriptionTemplateData['description_mode'] == $descriptionModeShort) {
         $description = $magentoProduct->getProduct()->getShortDescription();
     } elseif ($descriptionTemplateData['description_mode'] == $descriptionModeCustom) {
         $description = $descriptionTemplateData['description_template'];
     } else {
         $description = '';
     }
     if (empty($description)) {
         return $description;
     }
     $renderer = $this->getHelper('Module\\Renderer\\Description');
     $description = $renderer->parseTemplate($description, $magentoProduct);
     if (!is_null($listingProduct)) {
         /** @var \Ess\M2ePro\Model\Ebay\Listing\Product\Description\Renderer $renderer */
         $renderer = $this->modelFactory->getObject('Ebay\\Listing\\Product\\Description\\Renderer');
         $renderer->setListingProduct($listingProduct->getChildObject());
         $description = $renderer->parseTemplate($description);
     }
     $this->addWatermarkInfoToDescriptionIfNeed($description);
     return $description;
 }
Пример #2
0
 private function insertAttributes($text, \Ess\M2ePro\Model\Magento\Product $magentoProduct)
 {
     preg_match_all("/#([a-zA-Z_0-9]+?)#/", $text, $matches);
     if (!count($matches[0])) {
         return $text;
     }
     $search = array();
     $replace = array();
     foreach ($matches[1] as $attributeCode) {
         $value = $magentoProduct->getAttributeValue($attributeCode);
         if (!is_array($value) && $value != '') {
             if ($attributeCode == 'description') {
                 $value = $this->normalizeDescription($value);
             } elseif ($attributeCode == 'weight') {
                 $value = (double) $value;
             } elseif (in_array($attributeCode, array('price', 'special_price'))) {
                 $value = $magentoProduct->getProduct()->getFormatedPrice();
             }
             $search[] = '#' . $attributeCode . '#';
             $replace[] = $value;
         } else {
             $search[] = '#' . $attributeCode . '#';
             $replace[] = '';
         }
     }
     $text = str_replace($search, $replace, $text);
     return $text;
 }
Пример #3
0
 protected function getGroupedProductValue(Product $product)
 {
     $value = 0;
     /** @var $productTypeInstance \Magento\GroupedProduct\Model\Product\Type\Grouped */
     $productTypeInstance = $product->getTypeInstance();
     foreach ($productTypeInstance->getAssociatedProducts($product->getProduct()) as $childProduct) {
         /** @var $childProduct Product */
         $childProduct = $this->modelFactory->getObject('Magento\\Product')->setProduct($childProduct);
         $variationValue = (double) $childProduct->getSpecialPrice();
         $variationValue <= 0 && ($variationValue = (double) $childProduct->getPrice());
         if ($variationValue < $value || $value == 0) {
             $value = $variationValue;
         }
     }
     return $this->convertValueFromStoreToMarketplace($value);
 }