2016-08-24 69 views
0

改变产品在后台,你可以通过一个storeview产品设置不同的设置。 但是,你怎么能由storeview获得这些产品。 获得一个产品可以做这样的,但如何从不同的storeview如何通过storeview在Magento 2

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

回答

0

使用->setStoreId(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

使用商店ID 0改变TE产品默认数据

1

对方回答这里使用ŧ他直接的ObjectManager和过时的加载功能,因此对于更多最佳实践方法,您可以使用ProductRepositoryInterface到一个特定的商店范围内装载的产品。

注入ProductRepositoryInterface的实例(例如称为$ _productRepository)到类后,使用以下以$ STOREID设置为所需的商店视图的ID。

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

或由ID获取:

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

我想看看[这里](http://stackoverflow.com/review/suggested-edits/14732149),看看推荐的变化卢卡制作。您通过ID获取的函数可能是错误的。 – FrankerZ

+0

@FrankerZ为什么你拒绝它?马特O功能由ID获取是错误的100%,我测试,它必须是getById(),只看到'\供应商\的magento \模块的产品目录\阿比\ ProductRepositoryInterface.php' –

+0

@LucaS见[此]( http://meta.stackexchange.com/a/164449/295637)回答。 – FrankerZ