因此,当数量字段大于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)
我现在所有的工作都是一个现场网站,所以你可以理解我的关注......
请告诉我这是否会产生预期效果(看起来如此,但似乎过于简单......)
我相信你可以使用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)
| 归档时间: |
|
| 查看次数: |
15797 次 |
| 最近记录: |