15 use Magento\Catalog\Model\ProductRenderFactory;
34 private $productRepository;
39 private $productRenderCollectorComposite;
44 private $storeManager;
49 private $productRenderFactory;
87 ProductRenderFactory $productRenderFactory,
93 parent::__construct($context);
95 $this->productRenderCollectorComposite = $productRenderCollectorComposite;
97 $this->productRenderFactory = $productRenderFactory;
98 $this->hydrator = $hydrator;
113 public function getCurrentProductData()
116 $product = $this->registry->registry(
'product');
118 $store = $this->storeManager->getStore();
123 'store' =>
$store->getId(),
124 'currency' =>
$store->getCurrentCurrency()->getCode()
128 $productRender = $this->productRenderFactory->create();
130 $productRender->setStoreId(
$store->getId());
131 $productRender->setCurrencyCode(
$store->getCurrentCurrencyCode());
132 $this->productRenderCollectorComposite
133 ->collect(
$product, $productRender);
134 $data = $this->hydrator->extract($productRender);
136 $currentProductData = [
140 'store' =>
$store->getId(),
141 'currency' =>
$store->getCurrentCurrency()->getCode()
144 return $this->
serialize->serialize($currentProductData);
serialize($keys=[], $valueSeparator='=', $fieldSeparator=' ', $quote='"')
__construct(Template\Context $context, ProductRepository $productRepository, ProductRenderCollectorComposite $productRenderCollectorComposite, StoreManager $storeManager, ProductRenderFactory $productRenderFactory, Hydrator $hydrator, SerializerInterface $serialize, Url $url, Registry $registry)