/**
  * {@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');
     }
 }