【问题标题】:best way to get products by storeviews通过商店浏览获取产品的最佳方式
【发布时间】:2017-08-17 12:25:01
【问题描述】:

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

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 的产品 url。 setstoreid 过滤器不适用于我想要的。 任何帮助都会很棒,感谢阅读!

【问题讨论】:

    标签: php magento magento2


    【解决方案1】:

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

    转到您的目录 > 产品

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

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

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

    现在,使用产品列表右上角的“操作”下拉菜单,选择“更改状态”,选择“禁用”或“启用”并点击提交按钮。

    【讨论】:

    • 可以,但如果我问这是因为需要以编程方式进行。我认为“选择状态”是一个全局属性。感谢收看。
    猜你喜欢
    • 1970-01-01
    • 2017-09-02
    • 1970-01-01
    • 1970-01-01
    • 2015-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多