One of the cool features that was released as part of CU11, is the offline capabilities of Customer order creation at the Modern POS (MPOS), means without the need to call AX HQ via RTS (RealTime Sevice)
Retailers sometime are faced to place a customer order or quotation for specific Item(s), in order to be fulfilled later. In many cases, they prefer (or even are mandated) to create Customer Order at the POS in offline mode, mean creating it without doing any calls to the back office. Such scenario is caused by many reasons: I.e. internet connection stability issues, connection is down, Store is having season or peak hours and the creation of customer orders at the back office would take some time due to the time spent in the data roundtrip between Back office and POS.
Before jumping into the actual implementation and explain how to get the feature work, let us have an overview about the process.
Now, let us start the feature implementation.
First to activate this feature, go to Retail\Setup\Functionality profile
– Check “Create Customer orders in offline mode”
– Run the job 1070
At the store, the customer wants to purchase an item(s) at the store, the item(s) doesn’t exits currently in the store, so he will place a Customer order (or Quotation order).
The cashier creates Customer order (which will be created in offline mode):
- Create new Sales Transaction, select Item(s), then select the customer
- Click on “Create customer order” (you can also create Sales Quotation)
- Select the mode of delivery (whether the order will be shipped or picked up by the customer).
- After that select the tender type (method of payment) to conclude the order creation at the MPOS.
Now, let us have a quick look into the underlying tables
A transaction of type = 33 is created.
To know the value 33 Type name, navigated the AOT\Data Dictionary\Base Enum\RetailTransactionType
Type 32 -> AsyncCustomerQuote (Sales quotation)
Type 33 -> AsyncCustomerOrder (Sales order)
NOTE: As the Customer order was created using offline mode, so the order wasn’t created on the AX HQ and therefor it will not have Sales Order ID
AX Back-End steps:
Run P-Job to pull transaction from the channel database to the AX HQ.
Remember: The data package is uploaded to the shared folder based on the Async Client upload package interval configuration.
Click Open dialog “Synchronize online orders” under Retail\Periodic
- Select the store that you would like to process its Offline Created Customer order, then press ‘OK’
NOTE: “Synchronize online orders” is also used create sales order for the online store orders.
A sales order(s) will be generated at the sales order form
In case there were a down payment made by the customer at the POS, you will find the below Infolog, with the payment voucher that has been created for the sales order
Let’s shed some light on what is happening behind the scene when you run “Synchronize online orders”:
- It triggers a process of searching for all RETAILTRANSACTIONTABLE with type 32 or 33, then it creates a respective Sales order (Or sales quotation order) for that transaction.
- AX tracks the result of this process whether it is success (status=2) or fail (status=1) at table RETAILTRANSACTIONORDERSTATUS, in case of fails it log the error details in field “ERRORDETAIL“. Also it uses this table to ensure the Sale order/quotation order won’t be created more than one time
We're always looking for feedback and would like to hear from you. Please head to the Dynamics 365 Community to start a discussion, ask questions, and tell us what you think!