我的客户在市场上工作,希望开始在线销售
当他收到订单时,应该确认该物品是否确实有存货,以及他是否能够满足需求。
更新> 我已经有一些回调来检查商品是否库存,但是...我实际上需要某种双重检查...(首先通过回调完成,然后手动第二次...但是我不知道如何编辑卖方的OrderItem。...
(当您在市场上工作时,您没有时间注册您的销售,甚至某些物品可能被盗了,以至于弄乱了库存,这会发生
更新> 如果缺少某项(意味着库存有误),我该如何编辑收到的订单
我的模型是:
Size
belongs_to :product
Order
has_many :order_items
OrderItem
belongs_to :order
belongs_to :product
belongs_to :size
Product
has_many :order_items
has_many :sizes
OrderItem属性为::id, :quantity, :product_id, :user_id, :size_id, :order_id
让我们说订单到了:
#here is how are orders are created
order_1 = Order.create(
payment: "{'stub','stripe'}",
created_at: 1.day.ago,
user_id: 1,
token: SecureRandom.hex(8),
status: 1,
shipping_fees: 5,
sub_total: [product_1.price + product_1.price].sum ,
total: 135
)
order_item_1 = OrderItem.create(
price: product_1.price,
order_id: order_1.id,
product_id: 10,
quantity: 1,
size_id: 3
)
order_item_2 = OrderItem.create(
price: product_2.price,
order_id: order_1.id,
product_id: 42,
quantity: 2,
size_id: 8
)
在 order_item_2 中,客户需要2件商品,但是我的客户发现他只剩一件商品...
我的客户想要类似清单的内容:
然后它将更新库存并向客户发送电子邮件,警告他某些物品不可用,等等...
做到这一点的最佳方法是什么?
是否可以在订单控制器中进行管理?还是应该创建一个发票控制器?
欢迎提出所有建议。
答案 0 :(得分:1)
订单是发票的不同处理过程,您提到的3个选项可以在订单控制器中完成 如果您认为需要一个控制器,可以使用PORO系统创建服务来管理流程
基本上是全自动检查库存的理想条件 如果您的客户选择/键入产品名称,则软件将自动检查该产品的可用库存 客户输入的价值不能超过可用的价值。您可以使用javascript检查产品名称是否已更改 那么它将触发检查库存的过程,并且如果订购了一项订单项,则客户将无法保存订单 更多的可用库存
第二个选项,您可以使用状态机gem,例如aasm
通常,在批准订单后,业务流程将生成另一个流程(交货订单) 客户收到交货单后,下一步就是根据已批准和收到的订单为客户生成发票