Shopify Setup - POS (Point of Sale)
Create a dedicated POS sales channel so in-store Shopify orders route to their own channel in Business Central, post against tender-level payment methods, and settle without sending anything back to Shopify.
Overview
A Shopify POS channel is a second CSM sales channel that shares the same API connection as your web channel. Orders are pulled by the web channel as usual; CSM then reads each order's Shopify location ID and routes POS orders to the POS channel.
Because POS sales are already paid at the register, a POS channel does not send shipment, invoice, or capture information back to Shopify. It receives orders, posts the invoice, and posts and applies the payment.
Create the POS Sales Channel
Open the Shopify sales channel you want to copy from, then choose Related › Setup Actions › Create POS Channel. The action appears only on Shopify sales channels.
Warning: The main Shopify Setup Wizard no longer creates POS channels. Create POS Channel is the only supported path. If older documentation tells you to tick a POS option in the setup wizard, that option no longer exists.
Welcome step
| Field | Purpose |
|---|---|
| Copy from Sales Channel | The channel whose setup is copied. Pre-filled with the channel you launched from. The lookup is not filtered — choose a Shopify channel. |
| Load Automation | On by default. Loads the optional LaPoste, NZPost, and Newgistics shipping carriers and methods. See the caution below. |
Indicate which data to copy step
Nine toggles, all on by default:
Copy Shipping Methods, Copy Shipping Carriers, Copy Payment Methods, Copy Tax Groups, Copy Price Groups, Copy Inventory Locations, Copy Country Setup, Copy Actions, Copy Order Status Matrix.
Everything else — API set, shop name, credentials, API Engine execution module, customer template, number series — is carried over from the source channel automatically.
POS Sales Channel Setup Data step
| Field | Purpose |
|---|---|
| Sales Channel Code | Defaults to the source channel code with POS appended. Must be unique. |
| Sales Channel Description | Defaults to Shopify POS. |
| POS Location ID | The Shopify location ID for the retail location. Stored on the channel as POS Location ID on the General FastTab. |
Press Next on the confirmation step to create the channel, then Finish to close the wizard. CSM opens the new sales channel card.
Verify before you continue step
The wizard performs no validation. It does not require the POS Location ID, and if the Sales Channel Code already exists the channel is not created and no error is shown — the wizard still reports success and opens the existing channel.
After the wizard closes, confirm on the new channel card that Enable POS Location is on, the POS Location ID is correct, and the code is the one you intended.
Required Steps After the Wizard
The wizard copies setup data but does not load the POS automation list or the POS status matrix. On the new POS channel:
- Choose Related › Setup Actions › Load Automation List. This creates the POS automations — payment retrieval, sales order build, and credit memo build. Without this step the POS channel has no automations at all.
- Choose Related › Setup Actions › Load Status Matrix Data. POS keys on the Shopify order status
complete, while a web channel keys onprocessingandpending. If you left Copy Order Status Matrix on, the channel currently holds the web channel's matrix.
Note
The Load Automation toggle in the wizard does not load automations despite its name. It loads optional shipping carriers only.
Finding Your Shopify Location ID
The easiest source is CSM itself. On the Shopify sales channel choose Related › Setup › Inventory Locations, then Retrieve Inventory Locations. The Channel Inv Location ID column holds the Shopify location IDs.
The same value appears in the Shopify admin under Settings › Locations, as the numeric ID in the location's URL.
How POS Orders Are Routed
POS channels do not retrieve orders of their own. Orders arrive on the parent web channel's order pull, and CSM assigns the sales channel from the order's Shopify location_id:
- CSM looks for a sales channel in the same API Set whose POS Location ID matches the order's location ID. That channel is used.
- If none matches, CSM falls back to the channel in that API Set with a blank POS Location ID — your web channel.
-
Two rules this depends on
-
The POS channel must share the same API Set as the web channel. The wizard guarantees this by copying.
-
The web channel's POS Location ID must stay blank, or the fallback breaks and web orders will not be assigned a channel.
-
-
Payment Method Setup
-
POS payments post directly to a cash or clearing account rather than being captured through Shopify, so the payment method rules are the reverse of a web channel.
-
| Setting | Requirement on a POS channel |
|---|---|
| Channel default Payment Method Code | Must point at a BC Payment Method with a blank Bal. Account No. The wizard clears this field automatically if the copied method has a balancing account. |
| Each CSM Payment Method (tender) | Must point at a BC Payment Method that has a Bal. Account No. |
| Perform Invoice Capture | Must be off. |
| Perform Capture for Zero Amt | Must be off. |
To load the tender types Shopify POS uses, open CSM Payment Methods for the POS channel and choose Retrieve Payment Methods. Typical mappings are cash, gift card, and the card gateway in use.
POS Transaction Flow
- Complete the sale on the Shopify POS device.
- Run the automation in Business Central. The order appears in CSM Channel Orders on the POS channel.
- If your BC item numbers differ from the Shopify SKUs, resolve them with an item identifier, a cross reference, or a CSM Channel Listing before the order will build.
- CSM creates and posts the Sales Invoice for the order.
- CSM creates, posts, and applies the Payment when the tender's payment method has a balancing G/L account.
- The order's Outstanding SO Amount becomes zero once all payments are applied.
Posting a Payment Manually
If a tender is not set up to post automatically, open the CSM Channel Order card, expand CSM Order Documents, select the Payment line, then choose Manage › Post Payment. This posts the payment to the customer ledger and applies it to the order's posted sales invoice.
Confirm the result in the Remaining Amount field on the Invoice line of the CSM Order Documents FastTab.
Split tenders
CSM supports multiple payments per order. A sale split between cash and card produces two Payment documents on the order, and both are applied to the invoice. A single payment can also be applied across multiple invoices.
Refunds
Use Create Sales Cr. Memo and Post Refund on the CSM Order Documents page. Refund documents are posted and applied against the credit memo.
Troubleshooting
| Symptom | Cause and fix |
|---|---|
| No POS orders arrive | The POS channel has no order automation of its own by design. Confirm the web channel's order retrieval is running and that the POS Location ID matches the Shopify location. |
| Orders land on the web channel | The POS Location ID is blank, wrong, or the POS channel is in a different API Set. |
Sales Channel Code reads INVALID CU RETURN |
The order's location ID matched no channel and no channel in the API Set has a blank POS Location ID. Clear the web channel's POS Location ID. |
| Orders stay open, payments not applied | The tender's CSM Payment Method points at a BC Payment Method with no Bal. Account No. |
| Payment method will not save | On a POS channel, tender methods require a balancing account and the channel default must not have one. Check both. |
| Orders never reach Complete | The status matrix was copied from the web channel. Run Load Status Matrix Data on the POS channel. |
| Long Shopify location ID will not fit | The wizard field accepts 20 characters. Leave it blank in the wizard and enter the full value in POS Location ID on the sales channel card, which accepts 50. |