This post is part of the New Functionality In Microsoft Dynamics 365 Business Central 2024 Wave 2 series in which I am taking a look at the new functionality introduced in Microsoft Dynamics 365 Business Central 2024 Wave 2.
The 6th of the new functionality in the Application section is export posted sales invoices to Shopify.
Buyers can sign in to Shopify and access all their invoices, regardless of whether the invoices were created in Shopify or in Business Central.
Enabled for: Users, automatically
Public Preview: –
General Availability: Oct 2024
Feature Details
You can export posted sales invoices to Shopify as orders by using a new report (batch job). The report is available on the Shopify Shop Card page, or you can use Tell Me search to find it. You can also run the report by using the job queue.
To enable the capability for specific shop, go to the Shopify Shop Card page and turn on the ** Posted Invoice Sync** toggle.
The sync includes invoices under the following conditions:
- The Shopify Order ID field contains 0.
- The bill-to customer has a mapping in the Shopify Customers or Shopify Companies tables.
- The bill-to customer isn’t used as the Default Customer on the Shopify Shop Card or Shopify Customer Template.
- The posted invoice has at least one non-comment line where the No. field has a value.
When you run the report, the following happens in Business Central and Shopify.
Business Central
Update the Shopify Order ID field based on results of sync:
- Successful export – update Shopify Order Id field with ID of order in Shopify.
- Export failed – set “-1”
- Invoice is excluded from sync for a reason listed in the conditions mentioned earlier – set “-2”
The same pattern is used in the Posted Sales Shipment, where the Update Document page lets you replace “-1” and “-2” or “0” to retry the export.
Shopify
The connector uses GraphQL to first create a draft order with header and item lines, and then complete the draft order and convert it to an order.
Headers and lines
The following fields are exported on the order header:
- The mapped bill-to customer/company is used.
- The Fulfilment Status field shows Fulfilled. Tracking Details don’t synchronize.
- The Paid Status field shows Paid or Partially Paid, based on the customer ledger entry linked to the sales invoice. For partially paid, it shows the Remaining Amount field.
The following fields are exported on the order lines:
- Items (item variants) that are mapped export as products.
- Items that aren’t mapped and lines of other types, such as G/L Account or Item Charge lines, export as custom products in Shopify.
- Shipping charges in Shopify aren’t created. The shipping cost is registered as a custom product in Shopify.
- The new setting on the Shopify Shop Card page lets you avoid exporting invoices with non-mapped items. Turn on the Items must be mapped to Products toggle to exclude posted invoices from sync if there’s at least one line of type Item where the selected item isn’t mapped to a product or variant in Shopify.
- Tax amounts. Because the Graph API doesn’t currently support the TaxLine object, the calculated tax is added as a custom product. Tax information from Business Central won’t be available in the tax report in Shopify Admin. To avoid Shopify recalculating taxes, orders are marked as Tax Exempt.
- Quantity, in whole numbers. Shopify doesn’t support fractions.
Impact on the process of synchronizing orders
Synchronization imports the order and checks whether it was exported earlier. If it was exported earlier:
- It marks the order as processed.
- It adds a link to the posted sales invoice (related documents, should happen automatically because the Shopify Order ID is already populated). Shopify might automatically archive Fully Paid and Fulfilled orders, and the synchronization won’t process them.
Deal with updates
In Shopify, because the order is already fulfilled, the only meaningful changes are Notes, Payment Status, and payment transactions. If payments are processed in Shopify, refunds and returns are as well.
In Business Central, changes aren’t tracked. Currently, if you want to mark order as paid, use the Mark as Paid action on the Shopify Order Card page.