Recently new functionality has been introduced in CPOS: 'Carry out' orders.
This functionality is very convenient, when Business needs always to track inventory levels in real-time: in such case only Customer orders are created in POS, no cash-and-carry sales.
‘Recall order’ and ‘Pickup’ operations are required for ‘Customer orders’ to create an invoice; using 'Carry out' order is much faster, because invoice is created automatically right after the cart checkout.
Unfortunately, currently it's impossible to create 'Carry out all' customer order (order with all products to carry out): POS automatically transforms such order into cash-and-carry sale.
It would be very helpful for Business to make possible 'Carry out all' orders creation in real-time. We found a way to change the behavior by a small code fix in POS.js file, but do not plan to have this as GoLive-solution and looking forward to have this fix included into some new release.
1. If we create customer order and mark some products (not all) for 'Carry out', after checkout
0) Transaction receives type 19 = 'Customer order'
1) Sales order is created in D365 in real-time right after the cart checkout
2) Invoice for 'carry out' products is created in D365 in real-time right after sales order creation (#1)
2. If we create customer order and mark all products for 'Carry out' (select 'Carry out all'), after checkout:
0) Transaction receives type 2 = 'Sales' (or Cash-and-carry sale)
1) No sales order is created in D365 in real-time
2) Transaction will come to D365 only after P-job running and will go through standard Statement process to be processed => huge delay between sale in POS and inventory level update in D365 .