2016-08-24 68 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