2017-08-08 59 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

我已編輯我的答案,請檢查。 –