0

有人知道库存控制和付款状态之间的关系吗?

例如,我想创建一个名为“暂挂”的新付款状态,以减少订单中的产品库存。或者我想创建一个名为“等待客户”的新付款状态,它不会减少订单中的产品库存。

OC 什么时候减少产品的库存?当 OC 反转产品的库存时?

或者换句话说:是否可以创建一个付款状态层次结构,其中库存仅从状态 X 减少?(在反转的情况下反之亦然)

我将解释: PayPal API 上的某些状态在 OC 中未提供。例如:付款审核>已放置,付款审核>已清除,临时保留>已放置等。在我的情况下(贝宝快递默认),这些状态的付款状态是“等待付款”(默认)导致库存混乱。

谢谢大家

4

3 回答 3

1

这个想法很好,但没有逻辑。库存控制和订购有一个常识:如果客户来到您的商店,并且该商品有库存,则客户可以订购该库存并且应该为他冻结该库存,无论是付款流程还是详细说明都应该需要几个星期。

如果发生这种情况,我来到你的商店,我会看到你正在以 700 美元的价格出售 MacBook Air,而你有最后两件,我会订购这两件,它们应该被阻止只为我的订单。但是,如果您将等待我的付款(因为我通过银行转账付款)并设置状态“等待客户”,而股票没有被冻结并且其他人追随并看到这两个 Airs 可用并进行更快的付款(例如通过 PayPal),这意味着当我的钱被转移时(可能持续 1-X 天)您已经卖掉了我订购的物品。亲爱的,这意味着你是一个非常不公平、不值得信赖和不守纪律的卖家。

因此,OpenCart 中的库存控制是如何工作的非常常见(而且公平):如果您在设置中设置了在订单后减去库存(这分别针对每个产品完成,在其管理的详细信息选项卡中Data),之后已确认的订单库存被扣除(冻结)。

除非您出于任何原因取消订单(我猜这正是已取消订单状态 - 您可以查看代码以查看),否则库存仍然会被扣除。

对于您的PayPal Express Checkout - 我不知道您的实施,但我已经实施了几次,并且始终将订单设置为已付款,除非 PayPal API 出现错误或拒绝。无论如何,您可以创建任意数量的付款状态,然后编辑 PP EC 实施以使用这些状态,但除非订单被取消,否则该客户的库存应该被冻结

于 2013-11-06T09:37:20.790 回答
1

我同意你的观点@shadyyx,但我想做一些警告。

我的目的不是减少库存,而是将产品退回库存。

想象一下:

1. User makes request - stock -1
2. Awaiting Payment - nothing to do

两个可能的后续步骤:

3a. User has abandoned the purchase and after X days the administrator changes
the status to "Cancelled"
3b. The gateway refuses the payment and changes the status to "Denied" via IPN

在这两种情况下,产品都应自动返回库存(库存 +1)。这在 OpenCart 中默认不会发生

我做了什么?
最初仅在状态更改为“已取消”时才返回库存

我将要做的?
为每个付款状态分配 +1 或 -1 并检查每个订单更改的状态。
示例:
用户下订单 - 等待付款(库存 -1)
网关正在分析付款 - 审核中(因为库存已经减少,所以什么也不做)
付款已确认 - 付款确认(因为库存已经减少,什么也不做)
订单已发货 - 已发货(因为库存已经减少,所以什么也不做)
用户拒绝发货 - 撤销(我不确定这一步是否增加库存)
用户将产品退回 - 等待产品(是退货状态 -无事可做)
用户已退款 - 已退款(股票+1)

为什么 ?
我想创建付款状态的历史订单,今天OpenCart 仅在订单被删除时返回库存

就是这样

于 2013-12-15T00:04:36.727 回答
1

马可,

无需详细说明您是否应该在您的网站上实施此功能。我首选的实现这一点的技术方法是:

  1. 在产品表中插入一个新列。称它为“quantity_booked”或您选择的任何描述性名称。
  2. 在您的控制器和模型文件中,在您计算库存的任何地方进行更改,以从数量中减去 quantity_booked。
  3. 由于您不能真正 100% 信任已预订的订单,因此请尝试弄清楚您的“预订/支付”比率是多少,并在销售产品时将其考虑在内(就像所有航空公司一样)。所以你实际上可以按照数量 = 数量 - (0.7 * quantity_booked) 来计算。0.7 是您有效确认率的一个例子。
  4. 当有人取消预订/预订时,您可以从 quantity_booked 数量中减少它。

希望这可以帮助!

于 2013-12-15T03:20:50.400 回答