示例#1
0
 /**
  * @param object $entity
  * @param array $arguments
  * @return \Magento\Catalog\Api\Data\ProductInterface|object
  * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  */
 public function execute($entity, $arguments = [])
 {
     /** @var $entity \Magento\Catalog\Api\Data\ProductInterface */
     if ($entity->getTypeId() != \Magento\Downloadable\Model\Product\Type::TYPE_DOWNLOADABLE) {
         return $entity;
     }
     $entityExtension = $entity->getExtensionAttributes();
     $samples = $this->sampleRepository->getSamplesByProduct($entity);
     if ($samples) {
         $entityExtension->setDownloadableProductSamples($samples);
     }
     $entity->setExtensionAttributes($entityExtension);
     return $entity;
 }
 /**
  * @param \Magento\Catalog\Model\Product $product
  * @return \Magento\Catalog\Model\Product
  */
 public function afterLoad(\Magento\Catalog\Model\Product $product)
 {
     if ($product->getTypeId() != \Magento\Downloadable\Model\Product\Type::TYPE_DOWNLOADABLE) {
         return $product;
     }
     $productExtension = $product->getExtensionAttributes() ?: $this->productExtensionFactory->create();
     $links = $this->linkRepository->getLinksByProduct($product);
     if ($links !== null) {
         $productExtension->setDownloadableProductLinks($links);
     }
     $samples = $this->sampleRepository->getSamplesByProduct($product);
     if ($samples !== null) {
         $productExtension->setDownloadableProductSamples($samples);
     }
     $product->setExtensionAttributes($productExtension);
     return $product;
 }