代码之家  ›  专栏  ›  技术社区  ›  swiss_blade

Magento 2自定义模块通过cron导出无产品

  •  0
  • swiss_blade  · 技术社区  · 5 年前

    我创建了一个自定义模块,该模块定期使用选定的产品数据创建一个XML文件。生成XML的进程也可以通过自定义命令从Magento CLI运行。

    尽管自定义命令生成提要,但cron似乎没有获得任何产品。在这两种情况下,都会调用一个helper来实际获取产品并写入XML文件。下面是获取产品的代码:

    $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
    
            try{
                $appState = $objectManager->get('Magento\Framework\App\State');
                $appState->setAreaCode(\Magento\Framework\App\Area::AREA_ADMINHTML);
            } finally {
                //
            }
    
            $this->collection = $objectManager->create('Magento\Catalog\Model\ResourceModel\Product\Collection');
            $this->collection->addAttributeToFilter('status', 1); //enabled
            $this->collection->addAttributeToFilter('visibility', 4); //catalog, search
            if( !$this->show_outofstock ) {
                $this->stockFilter->addInStockFilterToCollection($this->collection);
            }
            $this->collection->addWebsiteFilter(1);
            $this->collection->load();
    
            $this->iterator->walk( $this->collection->getSelect(), array(array($this, 'productCallback')) );
    

    在cron日志文件中,我可以看到作业正在运行(因为正在创建该文件),但其中没有产品。。。

    有人能给我指一个正确的方向吗???

    0 回复  |  直到 5 年前