سؤال

I have a strange problem with my Magento 1.6.2 shop. We have several payment options in use. The usual SagePay and PayPal options are working fine, and exactly as expected. The Cheque and Bank Transfer payment options are not, and it is causing disruption to the workflow.

When an order in placed online, it has a status of "Processing". All orders with a status of "Processing" are downloaded via our 3rd party software and entered into Sage200.

Once they are dealt with at our premises, the order is marked as "Shipped" and the order status becomes "Complete" in Magento. Normally...

What seems to be happening with Cheque and Bank Transfer paid orders, is they are marked as Shipped as normal, but they go back to "Processing" Status, which means they are then downloaded to our Sage200 system again!!

Does anyone know why this might be happening please?

هل كانت مفيدة؟

المحلول

The workflow in Magento normally is:

Order placed -> Order Invoiced -> Order Shipped -> Order Completed

When an order goes back to processing after it has been shipped happens only if there is no invoice created for that order (or the status of the invoice isn't Paid). The best way is to change the status for the Cheque and Bank transfer payment options to for example Pending Payment, this way the orders are not shipped before the payment has been received. When you create the invoice (when you received the payment) the order goes into processing and will continue to complete when you ship the items.

نصائح أخرى

First off - it sounds like it's doing more than just changing status; it's changing state, too.

When an order is in completed state, it cannot be moved to another status because, by default, there are no other statuses associated with the completed state. So something is forcefully changing state as well.

So, my guess here is that whatever payment method plugin you're using for Bank Transfer is receiving an update from the payment provider. eChecks, transfers can take many days to process, and perhaps the orders are only clearing some days later, causing them to slip back into Processing.

The recommended behavior here is to set your payment module to default orders of this nature to be input with a Pending status - awaiting bank clearance. After the check is cleared, the order is moved to Processing once and for all, and gets export to Sage200.

There are some methods of debugging this:

  • Create a simple module to Mage::log when order statuses changes to a file for later review
  • Do an audit of the order status comment history - all status changes are listed here and may include the time at which they changed - see if there's a correlation. For instance: "all orders of this type change back to Processing after at least X days"
  • Contact your payment provider to discuss how long bank transfers/echecks take to clear and what other ecommerce sites do to handle this issue
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top