magento 2.1.5如何以编程方式获取产品禁用状态

Igo*_*nko 4 product status magento2

我将以编程方式获取产品的启用/禁用状态。现在,我们通过此代码获得了产品实例。

 <?php $_product = $_item->getProduct(); ?>
Run Code Online (Sandbox Code Playgroud)

另外,使用下面的代码部分,我们可以获得产品的库存信息。

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

但是,有什么解决方案可以在Magento 2.1上从$ _product获取产品状态吗?

Igo*_*nko 7

经过几个小时的调试,我得到了一个很好的解决方案。

<?php $_product = $_item->getProduct(); 

 $product_status = $_product->getStatus();
Run Code Online (Sandbox Code Playgroud)

在我的示例中,我使用$ _product-> getStatus()停用了产品的状态作为值。

<?php if (($product_is_stock == 0) || ($_product->getStatus() == 2)): ?>
Run Code Online (Sandbox Code Playgroud)

为了确认此操作,我使用了这些sql命令来停用产品。

SELECT entity_id FROM `catalog_product_entity_int`
WHERE attribute_id = (
    SELECT attribute_id FROM `eav_attribute`
    WHERE `attribute_code` LIKE 'status'
) AND `catalog_product_entity_int`.value = 2
Run Code Online (Sandbox Code Playgroud)

最后,我确认停用的产品状态仅为2,而不是0。

启用产品的状态仅为1。

希望我的示例对许多开发人员有所帮助。