2017-08-08 40 views
1

我需要在产品导入时获取产品实体ID。我无法在观察者中获得产品实体ID。下面是代码:在事件catalog_product_import_finish_before上获取产品实体ID magento 2

Events.xml

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd"> 
<event name="catalog_product_import_finish_before"> 
<observer name="generate_ipn" instance="Chetu\Generateipn\Observer\Productimportfinishbefore"/> 
</event> 
</config> 

观测文件Productimportfinishbefore.php

<?php 

namespace Chetu\Generateipn\Observer; 

use Magento\Framework\Event\ObserverInterface; 

class Productimportfinishbefore implements ObserverInterface 
{  
    protected $logger; 
    public function __construct(\Psr\Log\LoggerInterface $logger) 
    { 
     $this->logger = $logger; 
    } 
    public function execute(\Magento\Framework\Event\Observer $observer) 
    { 
     $observer = $observer->getData(); 
      $writer = new \Zend\Log\Writer\Stream(BP . '/var/log/mylogfile.log'); 
      $logger = new \Zend\Log\Logger(); 
      $logger->addWriter($writer); 
      $logger->info($observer); 
    } 
} 

回答

0

与下面的代码//尝试。

public function execute(\Magento\Framework\Event\Observer $observer) 
{ 
    $adapter = $observer->getEvent()->getAdapter(); 
    $Entityids = $adapter->getAffectedEntityIds(); 
} 
+0

我们没有在此事件catalog_product_import_finish_before中获取产品对象。 – Priyanka

+0

$ this - > _ eventManager-> dispatch('catalog_product_import_finish_before',['adapter'=> $ this]); – Priyanka

+0

我已编辑我的答案,请检查。 –