通过商店概览获取产品的最佳方式

时间:2017-08-17 12:25:02

标签: php magento magento2

这是我的疑问。我必须在magento托管上为每个storeview导出一个XML文件。此目录必须包含storeview提供的所有产品。我需要导出的信息至少是:SKU,名称,描述,图片网址,每个产品所属的类别以及产品网址。 我已经完成了逻辑,但我在过滤产品方面遇到了问题,我现在正在做的是:

public function getXmlForAllStores()
  {

    foreach ($this->_storeManagerInterface->getWebsites() as $site):{
      foreach ($site->getGroups() as $store): {
        $rootCategoryId  = $store->getRootCategoryId();
        $rootCategory = $this->_rootCategory->load($rootCategoryId);
        $catIdArray = $this->toIntArray($rootCategory->getAllChildren(true));
        foreach ($store->getStores() as $storeview):{$collection = $this->_categoryLayer
          ->setCurrentCategory($rootCategory)
          ->getProductCollection()
          ->addWebsiteFilter($site);
          //get xml string
          $xmlData= $this->toXml($collection, $store, $storeview);
          $fileName = $storeview->getCode()."feed.xml";
          echo "filename: ". $fileName. "<br>";
          //make file
          $this->makeFile($xmlData,$fileName);


        }endforeach;
      }endforeach;
    }endforeach;
    return "ok";
  }

正如您所看到的,我正在迭代最低范围,以获取每个网站上包含的所有商店组的所有商店视图的不同xml文件。但我无法找到根据storeview检索数据的方式,如名称,描述和更重要的,根据storeview的产品网址。 setstoreid过滤器不适合我想要的。 任何帮助都会很棒,感谢阅读!

1 个答案:

答案 0 :(得分:0)

默认情况下,Magento中已提供此功能。要获取特定商店视图的产品,请执行以下操作:

转到目录&gt;产品

选择产品列表上方的商店视图。

您现在正在查看此商店视图中包含的所有商品。

选择正确的商店视图后,使用左侧的复选框选择要启用或禁用的产品。

现在,使用产品列表右上角的操作下拉菜单,选择&#39;更改状态&#39;,选择&#39;已停用&#39;或者&#39;启用&#39;然后点击“提交”按钮。