2017-06-07 2 views
0

Ich werde Produkt aktiviert/deaktiviert Status programmgesteuert. Jetzt haben wir Produktinstanz durch diesen Code.Magento 2.1.5 wie programmgesteuert Produkt Status deaktiviert

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

Auch mit folgenden Code-Teil können wir Produkt Lager Informationen erhalten.

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

Aber, gibt es eine Lösung Status des Produkts von $ _product auf Magento 2.1 zu bekommen?

Antwort

0

Nach dem Debuggen auf ein paar Stunden habe ich eine gute Lösung zu diesem Problem.

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

$product_status = $_product->getStatus(); 

In meinem Beispiel habe ich Produkt Status als Wert mit $ _product-> getStatus() deaktiviert.

<?php if (($product_is_stock == 0) || ($_product->getStatus() == 2)): ?> 

Um diesen Vorgang zu bestätigen, habe ich Produkte deaktiviert, die diese SQL-Befehle verwenden.

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 

Schließlich habe ich bestätigt deaktivierten Produkte Status war nur 2, nicht 0

Aktiviert Produkte Status war nur 1.

meinem Beispiel Hoffnung viele Entwickler helfen.

Verwandte Themen