/** * {@inheritdoc} */ public function modify(AbstractImportItem $eventItem, ItemPipelineEvent $event) { /** @var Article $article */ $article = $eventItem->getEntity(); $parent = $article->getParent(); if ($parent && $parent->getId()) { ItemSkipper::skip($event, 'Ignore item variants'); return; } /** @var ProductDocument $document */ $document = $eventItem->getDocument(); $document->setId($article->getId()); $document->setActive($article->isActive()); $document->setSku($article->getArtNum()); $document->setTitle($article->getTitle()); $document->setDescription($article->getShortDesc()); $document->setPrice($article->getPrice()); $document->setOldPrice($article->getTPrice()); $document->setStock($article->getStock()); $document->setAttributes($this->attrToDocService->transform($article->getAttributes())); $this->extractUrls($article, $document); $this->extractExtensionData($article, $document); $this->extractVendor($article, $document); $this->extractManufacturer($article, $document); $this->extractCategories($article, $document); $variants = $article->getVariants(); if ($variants) { foreach ($variants as $variant) { $this->modifyVariant($document, $variant); } } }
/** * Modify event. * * @param ItemPipelineEvent $event */ public function onModify(ItemPipelineEvent $event) { $item = $event->getItem(); if ($item instanceof ImportItem) { $this->modify($item, $event); } elseif ($item instanceof SyncExecuteItem) { $syncStorageData = $item->getSyncStorageData(); if ($syncStorageData['type'] !== ActionTypes::DELETE) { $this->modify($item, $event); } else { ItemSkipper::skip($event, 'Delete item with id = ' . $syncStorageData['id']); } } else { $this->log('The type of provided item is not ImportItem or SyncExecuteItem.', LogLevel::ERROR); } }
/** * OnModify. * * @param ItemPipelineEvent $event */ public function onModify(ItemPipelineEvent $event) { if ($event->getItem() == 'skip') { ItemSkipper::skip($event, 'Test reason for skip'); } }