我心里一直有个疑问,收到订单后,Magento 是怎么更新库存数量的?是直接用一个新库存数字去更新,还是用 upadte magento_cataloginventory_stock_item set qty=qty-qty_ordered 之类的办法。
通过跟踪 sql 语句,我感觉前者的可能性很大。
1 | UPDATE `magento_cataloginventory_stock_item` SET `item_id` = '125' , `product_id` = '125' , `stock_id` = '1' , `qty` = '93.000000' , `min_qty` = '0.000000' , `use_config_min_qty` = '1' , `is_qty_decimal` = '0' , `backorders` = '1' , `use_config_backorders` = '0' , `min_sale_qty` = '1.000000' , `use_config_min_sale_qty` = '1' , `max_sale_qty` = '0.000000' , `use_config_max_sale_qty` = '1' , `is_in_stock` = '1' , `low_stock_date` = NULL , `notify_stock_qty` = '0.000000' , `use_config_notify_stock_qty` = '1' , `manage_stock` = '1' , `use_config_manage_stock` = '0' , `stock_status_changed_automatically` = '0' , `shelf` = '' WHERE (item_id= '125' ) |
这样很不好,如果几个人同时买同一个产品,会搞乱库存数。不知道被破坏的几率有多大,有空要搞一个并发下单的测试。
Leave a Reply