【问题标题】:How to get backorder status from product information programmatically in Magento 2如何在 Magento 2 中以编程方式从产品信息中获取缺货状态
【发布时间】:2017-06-07 17:49:05
【问题描述】:

如何以编程方式从产品信息中获取缺货状态?

现在产品信息已经准备好为$_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()); ?>

此外,延期交货功能已解决,因此我们可以将缺货产品添加到购物车中。

【问题讨论】:

    标签: php magento2 status stock


    【解决方案1】:

    我曾尝试通过完整搜索整个频道来获得结果,但我没有得到正确的解决方案。

    在调试和调查供应商 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>';
    

    我在

    上添加了这部分
    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"
    

    这将帮助许多开发者高效地创建新模块或自定义主题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-08
      • 1970-01-01
      相关资源
      最近更新 更多