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; }
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; }
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); }