如何通过magento 2中的商店视图更改产品

时间:2016-08-24 11:22:47

标签: php magento magento2 magento-2.0

在后端,您可以通过商店视图为产品设置不同的设置。 但是如何通过商店视图获得这些产品。 获得产品可以这样做,但如何从不同的商店视图获取产品数据

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
"CORE 11.2.0.3.0 Production"
TNS for Linux: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production

2 个答案:

答案 0 :(得分:1)

此处的另一个答案直接使用ObjectManager和不推荐使用的加载函数,因此,对于更佳实践方法,您可以使用ProductRepositoryInterface在特定存储范围内加载产品。

在您的类中注入ProductRepositoryInterface实例(例如,名为$ _productRepository)之后,请使用以下内容并将$ storeId设置为所需商店视图的ID。

$oProduct = $_productRepository->get('mysku',false, $storeId, false);

或者按ID获取:

$oProduct = $_productRepository->getById($productId,false, $storeId, false);

答案 1 :(得分:0)

使用 $product = $objectManager->create('Magento\Catalog\Model\Product')->load($product->getId());

单品

要按店铺加载单个商品,请使用此代码

->setStoreId(0)

产品系列

要通过商店视图加载多个产品,您可以使用以下产品系列:

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$product = $objectManager->create('Magento\Catalog\Model\Product')->setStoreId(0)->load($product->getId());

$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $collection = $productCollection->create() ->addAttributeToSelect('*') ->setStoreId(0) ->load(); 更改为->setStoreId(0到您的店铺ID

使用商店标识0更改商品默认数据