When an order is created from the ecomm site the order IS NOT an AX sales order at that point in time. It is created locally on the online store's DB. The user is presented with an order confirmation number, not a sales order number.
To bring an online store order into AX to create a sales order, the user must do the following in order:
- Run the appropriate transaction job for P-job that links to that retail channel (P-0001_OC for contoso data)
- Run the 'Synchronize online orders' job from under Retail -> Periodic -> 'Synchronize online orders'
While I'm not sure why this approach was taken, I can take a few guesses as to why:
Pros to this approach in my opinion (IMO)
- To allow the website to be independently available if the headquarters (AX) is down
- This allows POS users to still be able to take orders via the web from the stores if the system is down
- Faster responses to order creation
- To allow the web front ends to scale
- To mitigate the risk of security vulnerabilities
- The Retail Transaction Services 'createCustomerOrder' static method is not used like the POS currently does.
- Be extra vigilant about where logic placed for orders now. There appears to be a disconnect in logic now with Omni-channel sales. The data part is correct but I'd like to see the logic part also covered.
- The order is not instantaneous.
- Think of booking a car while on the rental car bus and, upon arriving with a confirmation number, not having it show up in the system until a few back office jobs are run. I get that you can set it to run every 5 minutes but still...
- The user is presented with an order confirmation number, not a sales order number. With that in mind, customers will always reference this when referencing their order.
- The base sales order form doesn't have this field. You have to navigate to it via a join to the RetailTransactionTable record that has it. Kinda a pain to point a user to go to two different places...
- I believe you can reference this number in the POS to pull up the order though
- You can change the way the sales orders process works through a customization.
- I'll need to tinker more with real scenarios to determine if I'll need to do this or this approach is good.
Hopefully there will be good discussions going on around this post below. Still pretty new functionality...