我正在查看股票记录模型的代码 here ,在评论中所说的 num_allocated 字段上方,
#: The amount of stock allocated to orders but not fed back to the master
#: stock system. A typical stock update process will set the num_in_stock
#: variable to a new value and reset num_allocated to zero
那么,当产品缺货时,如何进行评论中指定的库存更新过程?我需要将 num_in_stock 变量设置为新值并将 num_allocated 设置为零。
到目前为止,如果订单正在发货,我会调用 EventHandler 类中的 consume_stock_allocations() 方法,并且订单中产品的库存数量正在减少。
如果有人实现了这个,请分享一些代码或一些示例,因为我是 oscar 的新手。
最佳答案
对于num_allocated
,最常见的解决方法是消费
EventHandler().consume_stock_allocations(order, [lines], [line_quantities])
或取消
EventHandler().cancel_stock_allocations(order, [lines], [line_quantities])
每当发出或取消订单时分配。像您一样在运输事件处理程序中执行此操作非常好。
这将清除分配并将 num_in_stock
减少与分配相同的数量(用于消耗,而不是取消) - 即,您不需要做任何更多调整 num_in_stock
。
您需要做的是在新库存到达时保持 num_in_stock
更新等。您如何做到这一点实际上取决于您如何管理网站上的库存 - 例如,如果您正在获取库存信息从第三方 ERP 系统,那么每次与 ERP 同步时,您都会重置 num_in_stock
。如果您手动管理库存,那么您只需从仪表板更新即可。
关于django - 如何在 Django Oscar 中执行库存更新过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52182325/