我需要为数千种产品打开“管理库存”选项。我正在使用 PHP 来更新 Magento 表。我只需要帮助确定要更新的表和字段。这些字段是:
管理库存
数量 商品状态变为缺货
购物车中允许的最小数量
通知以下数量
我相信它们可能在 catalog_product_entity_int 但我不知道什么值与哪个值相关。
我需要为数千种产品打开“管理库存”选项。我正在使用 PHP 来更新 Magento 表。我只需要帮助确定要更新的表和字段。这些字段是:
管理库存
数量 商品状态变为缺货
购物车中允许的最小数量
通知以下数量
我相信它们可能在 catalog_product_entity_int 但我不知道什么值与哪个值相关。
manage stock 选项有它自己的 colcataloginventory_stock_item
如果你想通过 mysql 来做这个,你可以这样做。
有 2 个选项,不确定哪个最适合您。
如果系统配置System->Inventory->Product Stock Options->Manage Stock设置为yes,很多人只想更新use_config_manage_stock
UPDATE
cataloginventory_stock_item
SET
use_config_manage_stock = 1
另一种方法是为每个产品单独设置
UPDATE
cataloginventory_stock_item
SET
use_config_manage_stock = 0,
manage_stock = 1
运行这些查询后,您应该重新索引“库存状态”
您正在搜索Mage_CatalogInventory_Model_Stock_Item
模型:
$sProductId = 911;
$oStockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($sProductId);
var_dump($oStockItem->getData());
Sample output:
["item_id"]=> string(4) "911"
["product_id"]=> string(4) "911"
["stock_id"]=> string(1) "1"
["qty"]=> string(6) "0.0000"
["min_qty"]=> string(7) "-3.0000"
["use_config_min_qty"]=> string(1) "1"
["is_qty_decimal"]=> string(1) "0"
["backorders"]=> string(1) "0"
["use_config_backorders"]=> string(1) "1"
["min_sale_qty"]=> string(7) "10.0000"
["use_config_min_sale_qty"]=> string(1) "1"
["max_sale_qty"]=> string(6) "0.0000"
["use_config_max_sale_qty"]=> string(1) "1"
["is_in_stock"]=> string(1) "0"
["low_stock_date"]=> string(19) "2013-06-28 01:02:34"
["notify_stock_qty"]=> string(6) "0.0000"
["use_config_notify_stock_qty"]=> string(1) "1"
["manage_stock"]=> string(1) "1"
["use_config_manage_stock"]=> string(1) "1"
["stock_status_changed_auto"]=> string(1) "1"
["use_config_qty_increments"]=> string(1) "1"
["qty_increments"]=> string(6) "0.0000"
["use_config_enable_qty_inc"]=> string(1) "1"
["enable_qty_increments"]=> string(1) "0"
["type_id"]=> string(6) "simple"
["stock_status_changed_automatically"]=> string(1) "1"
["use_config_enable_qty_increments"]=> string(1) "1"
启用管理库存(或任何其他属性)的示例代码:
$sProductId = 911;
$oStockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($sProductId);
$sStockId = $oStockItem->getId();
$aStock = array();
if (!$sStockId) {
$oStockItem
->setProductId($sProductId)
->setStockId(1);
}
else {
$aStock = $oStockItem->getData();
}
$aStock['manage_stock'] = 1;
// $aStock['use_config_manage_stock'] = 1;
foreach ($aStock as $k => $v) {
$oStockItem->setData($k, $v);
}
$oStockItem->save();
桌子 :cataloginventory_stock_item
列
manage_stock
将值更新为 1 并将use_config_manage_stock
值更新为 0