如何在Django Oscar中执行库存更新过程

时间:2018-09-05 09:58:54

标签: django python-3.x django-oscar

我正在查看股票记录模型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类中调用consumer_stock_allocations()方法,并减少订单中产品的库存数量。

如果有人实现了此功能,请分享一些代码或示例,因为我是奥斯卡新手。

1 个答案:

答案 0 :(得分:2)

对于num_allocated,最常见的解决方法是在下达或取消订单时消耗(consume_stock_allocations())或取消(cancel_stock_allocations())分配。在您正在执行的运送事件处理程序中执行此操作非常好。

这将清除分配,并将num_in_stock减少与分配相同的数量(用于消费,而不是取消)-即,您无需进行任何其他操作来调整num_in_stock。 / p>

您需要做的就是在有新库存到达时等num_in_stock进行更新。如何执行此操作实际上取决于您在网站上管理库存的方式-例如,如果您要从第三者中获取库存信息,一方的ERP系统,那么您每次与ERP同步时都将重置num_in_stock。如果您是手动管理库存,则只需从信息中心进行更新。