magento 2.1.5 如何以编程方式获取产品禁用状态
magento 2.1.5 how to get product disabled status programmatically
我将以编程方式获取产品的 enabled/disabled 状态。
现在,我们通过这段代码得到了产品实例。
<?php $_product = $_item->getProduct(); ?>
此外,使用以下代码部分,我们可以获得产品库存信息。
<?php $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$StockState = $objectManager->get('\Magento\CatalogInventory\Api\StockStateInterface');
$product_is_stock = $StockState->getStockQty($_product->getId(), $_product->getStore()->getWebsiteId()); ?>
但是,有什么解决方案可以在 Magento 2.1 上从 $_product 获取产品状态吗?
经过几个小时的调试,我找到了解决这个问题的好方法。
<?php $_product = $_item->getProduct();
$product_status = $_product->getStatus();
在我的示例中,我使用 $_product->getStatus().
将停用产品的状态作为值
<?php if (($product_is_stock == 0) || ($_product->getStatus() == 2)): ?>
为确认此操作,我使用这些 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
最后,我确认停用产品的状态只是 2,而不是 0。
已启用产品的状态仅为 1。
希望我的例子能帮助到很多开发者。
查看magento core,我们可以发现enabled = 1 and disabled = 2.
在Magento\Catalog\Model\Product\Attribute\Source\Status.php
/**
* Product Status values
*/
const STATUS_ENABLED = 1;
const STATUS_DISABLED = 2;
这是来自magento 2.3.0的核心代码
使用核心卢克!
我将以编程方式获取产品的 enabled/disabled 状态。 现在,我们通过这段代码得到了产品实例。
<?php $_product = $_item->getProduct(); ?>
此外,使用以下代码部分,我们可以获得产品库存信息。
<?php $objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$StockState = $objectManager->get('\Magento\CatalogInventory\Api\StockStateInterface');
$product_is_stock = $StockState->getStockQty($_product->getId(), $_product->getStore()->getWebsiteId()); ?>
但是,有什么解决方案可以在 Magento 2.1 上从 $_product 获取产品状态吗?
经过几个小时的调试,我找到了解决这个问题的好方法。
<?php $_product = $_item->getProduct();
$product_status = $_product->getStatus();
在我的示例中,我使用 $_product->getStatus().
将停用产品的状态作为值<?php if (($product_is_stock == 0) || ($_product->getStatus() == 2)): ?>
为确认此操作,我使用这些 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
最后,我确认停用产品的状态只是 2,而不是 0。
已启用产品的状态仅为 1。
希望我的例子能帮助到很多开发者。
查看magento core,我们可以发现enabled = 1 and disabled = 2.
在Magento\Catalog\Model\Product\Attribute\Source\Status.php
/**
* Product Status values
*/
const STATUS_ENABLED = 1;
const STATUS_DISABLED = 2;
这是来自magento 2.3.0的核心代码
使用核心卢克!