Can anyone help me understand how CS-Cart handles inventory?
- Customer places an order. Status could be marked Open or Backordered (why, when I don’t use backordering?) and what happens to the inventory? I would like it NOT to change, because I don’t know if the payment is good yet. Order status “open” decreases inventory, and I can’t change this in the admin. Backordered status “increases” inventory (but it does not actually change.)
- I manually review and the card is accepted by Authorize.net. I manually mark the order “Paid”. The Order Status for Paid is default set to DECREASE, which is fine, but only if the inventory has not been adjusted yet. If Status “Open” is reducing inventory, is it getting reduced again? This is not good!
- If for some reason a paid order is cancelled, the items are RESTORED to inventory. Good.
- If an order is entered with status FAILED, items should NOT be removed from inventory. At all. Ever. They are NOT sold, so they should NOT come out of inventory.
The reason for the emphasis on Point #4, is that my partner found an item removed from stock by a FAILED order last night. This is a serious problem for us, serious enough to have to find another cart. I can’t reproduce the error, but it worries me that it happened once. Test orders that I fail purposely (by using an expired card date) just mark themselves “failed” and leave my inventory alone.
It is worth noting that on last night’s failed order, the customer’s data somehow passed through to Authorize.net – twice! She had mis-typed something. Perhaps she tried to pay for the same order again, because Auth.net has two “pending review” transactions for the failed order number. She handled it by placing an entirely new order with correct information, which went through, was approved, and inventory was updated appropriately. She also did not get to buy an item she wanted, because there is only one of it, and her failed order had removed it from inventory :evil:
So, any ideas how an order can pass to Authorize.net but still be marked “failed” in the cart, and why that automatically assigned “fail” status did NOT return those items to inventory?