Magento:在数量变化时自动将"库存可用性"从"缺货"更改为"有库存"(反之亦然)

Geo*_*off 7 magento

因此,当数量字段大于0时,我一直在寻找一种方法将库存可用性更改回库存.当您将数量设置为0并保存产品时,系统已自动将库存可用性更改为缺货.当您将数量设置为大于0并保存产品时,我想要一种方法将其设置回库存.

好吧,我想我发现了一种简单的方法,这本身就让我感到紧张.所以我想向大师们发帖,看看这是否安全,正确,还可以.

app/design/adminhtml/default/default/template/catalog/product/tab/inventory.phtml中

我改变了这个:

<?php foreach ($this->getStockOption() as $option): ?>
        <?php $_selected = ($option['value'] == $this->getFieldValue('is_in_stock')) ? 'selected="selected"' : '' ?>
        <option value="<?php echo $option['value'] ?>" <?php echo $_selected ?>><?php echo $option['label'] ?></option>
<?php endforeach; ?>
Run Code Online (Sandbox Code Playgroud)

对此:

<?php if( ($this->getFieldValue('qty')*1) > 0): ?>
        <option selected="selected" value="1">In Stock</option>
<?php else: ?>
    <option selected="selected" value="0">Out of Stock</option>
<?php endif; ?>
Run Code Online (Sandbox Code Playgroud)

我现在所有的工作都是一个现场网站,所以你可以理解我的关注......

请告诉我这是否会产生预期效果(看起来如此,但似乎过于简单......)

Bij*_*K G 6

我相信你可以使用Magento事件catalog_product_save_after.创建一个观察者方法,在事件catalog_product_save_after上执行以下操作.

public function catalog_product_save_after($observer) {
    $product = $observer->getProduct();
    $stockData = $product->getStockData();

    if ( $product && $stockData['qty'] ) {
        $stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product->getEntityId()); // Load the stock for this product
        $stock->setData('is_in_stock', 1); // Set the Product to InStock                               
        $stock->save(); // Save
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 0

库存可用性文本可以在产品设置的库存选项卡中处理,该选项卡与库存数量字段相同。由于无论如何您都必须手动输入库存数量,因此我建议您在输入产品的新数量时将库存可用性设置更改回“有库存”。