Description
- This module listens to the 'sales_order_place_after' event, and grabs the order id (and some other data), and places it in a database table.
- It then fires a cron job every 5 minuts which gets the data from the table (for those orders not yet marked as synced), and the fires a new event called 'sales_order_place_after_que'
- The sync module were chnages to listen to the 'sales_order_place_after_que event'
Details
The answer is really simple:
The end result:
A order sync que system, which successfully syncs orders to external systems. Any module (or observer) that used to listen to sales_order_place_after can be adjusted to listen to 'sales_order_place_after_que' instead, with no further code changes. The que event is identical to the original sales_order_place_after event.
Nothing fancy, and no manual sync buttons (yet) It will retry any orders that are mot marked as synced, or until they are marked as synced. There is a new menu option under 'Oders' whuch allows you to view the sync status. There is a weekly cron that cleans the table of all synced orders, thus preventing it from getting to large.
Available via github : https://github.com/ProxiBlue/OrderSyncQueRunner