如何在Django Oscar中执行股票更新过程

问题描述 投票:1回答:1

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

如果有人实现了这一点,请分享一些代码或一些例子,因为我是奥斯卡新手。

django python-3.x django-oscar
1个回答
2
投票

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

这将清除分配并将num_in_stock减少与分配相同的数量(对于消耗,而不是取消) - 即,您不需要做更多的事情来调整num_in_stock

您需要做的是在新股票到货时保持num_in_stock更新等。您如何做到这一点取决于您如何管理您网站上的股票 - 例如,如果您从第三方ERP系统获取股票信息,那么您将每次与ERP同步时重置num_in_stock。如果您手动管理库存,则只需从仪表板更新即可。

© www.soinside.com 2019 - 2024. All rights reserved.