Best Practices and Limitations
In this article
This article consolidates the recommended best practices and the known limitations of the Shopify Business Central Connector for LS Central, so they are documented in one place instead of being discovered through trial and error. It is intended as proactive guidance to plan an implementation around, rather than as a reactive guide for a specific error — for that, see Troubleshooting.
Best Practices
Recommendations for setting up and operating the connector so that the integration stays predictable as it scales:
| Best Practice | Description |
|---|---|
| Sequence the initial rollout | Send products to Shopify with the base connector first, then run Collections, then images and discounts. Images, variant images, and item/variant-scoped discounts can only attach to a product that already exists in Shopify, and a group-scoped discount can only attach to a collection that already exists. |
| Plan the Variant Framework dimensions up front | Decide which item variant dimensions matter for the storefront before go-live. Shopify allows at most three product options per product — see the three-option variant limit below. |
| Pick code vs. description once, and keep it consistent | The Use Variant Description setting on the Shopify Shop Card controls whether Shopify shows the variant code (for example, S) or its description (for example, Small) for every variant already synchronized. Changing it later changes how existing variants display, so choose a value and keep it consistent for the shop. |
| Pilot one shop end-to-end | Validate product replication, order import, fulfillment, and cancellation on a single Shopify shop before enabling additional shops or switching a scheduler job to run for all shops. |
| Schedule jobs by rate of change | Run inventory synchronization frequently, discounts daily (plus a manual Sync Discounts at launch), and images overnight. Balance shorter intervals for faster storefront updates against Shopify API rate limits — very aggressive schedules can trigger rate limiting; the connector retries automatically, but a sensible interval is the better long-term fix. |
| Govern the catalog and the order in LS Central, not in Shopify | Products, variants, images, discounts, and collections that are replicated to Shopify — and orders once they are imported — are intended to be managed from LS Central. Editing these records directly in Shopify can be overwritten by the next sync or cause the two systems to fall out of alignment. |
| Map every payment gateway | Create a Tender Type mapping for each Shopify payment gateway the store uses. An unmapped gateway defaults to the Card tender, which may not reflect how the payment should be recorded. |
| Match Shopify locations to stores carefully | Correct location mapping is what makes Click & Collect, Local Delivery, and multi-location sourcing route to the right store — see Order Management and Fulfillment. |
| Decide the guest vs. member customer model up front | Choose whether unrecognized Shopify buyers should be auto-created as member contacts or imported as guest orders, and configure a default for a missing contact name so that blank names never block an order import. |
| Review the log after major changes | After a large catalog, pricing, or promotion change — or in the days following go-live — review the Web Request Log and scheduler job summaries rather than assuming a run succeeded. See Diagnostic Steps. |
Limitations
Known constraints of the connector to plan around:
| Limitation | Description |
|---|---|
| Three-option variant limit | Shopify supports at most three product options per product. This matches the LS Central Item Variant Framework's three variant dimensions — only the first three registered dimensions are mapped to Shopify product options (Option 1/2/3). An item configured with a fourth variant dimension cannot be represented one-to-one in Shopify; that dimension is not sent. |
| Percentage discounts only | Only enabled Discount Offer records with a percentage value greater than 0 are replicated to Shopify as automatic discounts. Amount-based discounts and deal/mix-and-match style promotions are not sent as Shopify discounts by this feature. See Discounts in Discounts for the full eligibility and deactivation rules. |
| One store per Shopify shop | A Shopify Shop Card is bound to a single LS Central store through Store Code, and inventory and grouping scope are derived from that store. Line-level sourcing to a different location can still be redirected through the Shopify location mapping. |
| Image processing is asynchronous | Shopify processes uploaded images asynchronously, and the connector waits for Shopify to finish processing each image during a sync. An image-heavy run — for example, an item with many variant images — is expected to take noticeably longer to complete; this is normal behavior, not an error. |
| Dependent data requires the product to exist first | Images, variant images, and item/variant-scoped discounts can only attach to a product the base connector has already created in Shopify. |
| Group-scoped discounts depend on Collections | A discount offer scoped to a Product Group, Item Category, or Special Group requires the matching Shopify collection to exist first — enable the collection type and run Sync Collections before syncing that discount. |
| Order import only processes already-downloaded orders | The order sync add-on processes orders that the underlying Microsoft Business Central Shopify connector has already downloaded into the Shopify Orders staging table. It does not pull orders from Shopify directly. |
| Payment status and gateway mapping | Only Success and Pending Shopify payment transactions are imported, and whether a preauthorization can be captured depends on support from the payment provider. A Shopify payment gateway with no Tender Type mapping defaults to the Card tender. |
| Email required for member creation | A Shopify buyer without an email address cannot have a member contact automatically created and is imported as a guest order instead. |
| Shopify API rate limits | Very aggressive scheduler intervals can hit Shopify's API rate limits. The connector retries automatically when this happens, but a sustained pattern of rate-limit retries indicates the schedule should be relaxed rather than left to retry indefinitely. |