2017-06-07 8 views
0

製品情報からバックオーダーステータスをプログラムで取得する方法を教えてください。Magento 2で製品情報からのバックオーダーステータスをプログラムで取得する方法

製品情報は$ _productとなりました。また、このコードで在庫状況を取得することもできます。

<?php $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); 
    $StockState = $objectManager->get('\Magento\CatalogInventory\Api\StockStateInterface'); 
    $product_is_stock = $StockState->getStockQty($_product->getId(), $_product->getStore()->getWebsiteId()); ?> 

また、カートに在庫商品を追加できるようにバックオーダー機能が調整されました。

答えて

2

私はチャネル全体を完全に検索して結果を得ようとしましたが、適切な解決策が得られませんでした。

数時間でベンダーのAPI構造をデバッグして調査した後、私は自分自身で正しい答えを得ました。 これは、Magento 2.1.5、2.1.7で回答が証明されています。

$obj = \Magento\Framework\App\ObjectManager::getInstance(); 
$stockRegistry = $obj->get('Magento\CatalogInventory\Api\StockRegistryInterface'); 
$stockitem = $stockRegistry->getStockItem($_product->getId(),$_product->getStore()->getWebsiteId()); 
echo "Backorder: "; echo $stockitem->getBackorders(); echo '<br>'; 

私はbackorderable製品のステータスを決定する必要があり

app\design\frontend\[vendor]\[theme]\Amasty_Cart\templates\rightside\cart.phtml 
app\design\frontend\[vendor]\[theme]\Magento_Checkout\templates\cart\form.phtml 

に、この部分を追加しました。

最後に、バックワードの3つのステータスに従って0,1,2の値を取得できました。

0: "No Backorders" 
1: "Allow Qty Below 0 " 
2: "Allow Qty Below 0 and Notify Customer" 

これは、新しいモジュールを作成したり、効率的にテーマをカスタマイズしたりする多くの開発者に役立ちます。

関連する問題