Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在magento 2中通过storeview更改产品_Php_Magento_Magento2_Magento 2.0 - Fatal编程技术网

Php 如何在magento 2中通过storeview更改产品

Php 如何在magento 2中通过storeview更改产品,php,magento,magento2,magento-2.0,Php,Magento,Magento2,Magento 2.0,在后端,您可以通过storeview为产品设置不同的设置。 但是,如何通过storeview获得这些产品呢。 获取产品可以这样做,但是如何从不同的storeview获取产品数据呢 $product = $objectManager->create('Magento\Catalog\Model\Product')->load($product->getId()); 使用设置存储ID(0)-> 单一产品 要按storeview加载单个产品,请使用以下代码 $objectMana

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

 $product = $objectManager->create('Magento\Catalog\Model\Product')->load($product->getId());
使用设置存储ID(0)->

单一产品

要按storeview加载单个产品,请使用以下代码

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

要通过storeview加载多个产品,可以使用如下产品集合:

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$collection = $productCollection->create()
              ->addAttributeToSelect('*')
              ->setStoreId(0)
              ->load();

->setStoreId(0
)中的
0
更改为您的storeview ID


使用store id
0
更改产品默认数据

此处的另一个答案直接使用ObjectManager和弃用的加载函数,因此,要获得更多最佳实践方法,您可以使用ProductRepositoryInterface在特定的存储范围内加载产品

将ProductRepositoryInterface的实例(例如称为$\u productRepository)注入类后,使用以下命令,将$storeId设置为所需存储视图的ID

$oProduct = $_productRepository->get('mysku',false, $storeId, false);
或通过ID获取:

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

我会看一看,看看卢卡推荐的改变。您按ID获取的函数可能是错误的。@FrankerZ那么您为什么拒绝它呢?Matt O按ID获取的函数是错误的100%,我测试了它,它必须是getById(),请参见
\vendor\magento\module catalog\Api\ProductRepositoryInterface.php
@LucaS请参见答案。编辑以更正函数名-感谢您的发现!