Release Overview
This release introduces a new Channel Shipping Method field (field number 205) to the CSM Order table, which replaces
the Ship Service Level field (field number 200). If you are upgrading your existing CSM integration with this release, you
must make the following changes to ensure that your solution continues to operate as desired:
- Update your existing API mapping. In the CSM API Functions page, select the API function code SALESORDERLIST.
Choose the API Mappings button in the ribbon, and in the CSM API Mappings page, locate the existing mapping
for table 70338221, field 200 and update this field number to 205.
- Update any custom extensions that use the legacy Ship Service Level field to use the new Channel Shipping
Method field.
Features & Functionality
- Support for Microsoft Dynamics 365 Business Central 2022 Wave 1 (version 20) has been added to CSM for
Shopify.
- Field captions on various CSM pages have been updated to use Shopify-specific terminology.
- Channel credentials such as store IDs and secret tokens are now stored in a separate API Credential table, rather
than API sets. This provides companies with greater flexibility in the setup and maintenance of Shopify channel
credentials. As part of this, the Credentialing Sales Channel field in the CSM Sales Channel table allows users to
indicate that a particular sales channel’s API functions are to be run according to the credentials of another
channel. See the in-depth feature description for more details.
- API credential information was previously included as part of the URL that is generated whenever a request is
sent to Shopify. To improve security, this information has been removed from the URL and is instead included as
part of the request header.
- A new Order Total Discount Allocation field has been added to the CSM Sales Channel table. In this field, you can
select the method by which CSM will allocate retrieved line discount amounts from Shopify. Options are:
- Not Applicable: channel discount information will be ignored by CSM.
- Order Level: channel discount information will be applied at the order level. Retrieved line discount
amounts will be rolled up into a single document level invoice discount.
- Line Level: channel discount information will be applied at the order line level. Retrieved line discount
amounts will be assigned to the corresponding channel order lines.
- Supporting data retrieval has been added for the following data types:
- Shipping Methods
- Shipping Carriers
This functionality can simplify setup activities by allowing users to instantly populate CSM tables with records that
have been retrieved from a default data load. See the in-depth feature description for more details.
- Shopify-specific accommodations have been made to support the addition of a new Channel Shipping Method
field has been added to the CSM Shipping Method and CSM Order tables and their related pages in CSM Core.
This field replaces the existing Ship Service Level field, which is where an external platform’s retrieved shipment
method code was stored. The existing field entered these retrieved values as Business Central codes, which
resulted in a format that was incompatible with some platforms. The new field retrieves these values as text,
which will support all data retrieval scenarios. See the upgrade instructions for more details.
- Shopify-specific accommodations have been made to support the addition of a new Single Capture Boolean field
to the CSM Payment Method table. When this option is enabled for a CSM order’s assigned payment method,
CSM will capture and send the payment to the sales channel when the related Business Central sales order is fully
shipped and invoiced. If the sales order is partially shipped and invoiced, no payment capture is recorded.
Because Shopify does not permit multiple credit card payment capture activities against the same transaction,
this option should be enabled for the relevant CSM payment method records.
- Shopify gift cards can now be issued and managed from within Business Central. See the in-depth feature
description for more details.
- It is now possible to run the Get External Inventory Supply action against multiple selected CSM listing records.
- Several improvements have been made to the way in which CSM handles API request errors that are due to
Shopify being unable to provide a response to the request:
- Previously, failure to obtain a response for any request would abort the entire automation routine. This
has been changed so that the automation routine continues to run after an API request returns a no
response error.
- The Last External Update Status field on the CSM API Message record that is created for an erroneous API
provides a value of Error.
- The Last External Update Result field on the CSM API Message record that is created for an erroneous API
request now presents the erroneous result information (previously this field remained blank).
- The Response FastTab on the CSM API Message record that is created for an erroneous API request now
presents the actual error message (previously this field defaulted to a value of No Response).
Corrections
- CSM for Shopify’s API set was making calls that involved objects removed by Shopify in their REST Admin API. This
has been corrected.
- The CSM for Shopify default automation record data load had the Auto Post SO field enabled for multiple
BUILDSALESORDER functions, resulting in the potential for inadvertent sales order posting in new installations.
This has been corrected.
- If a retrieved channel order resulted in the automatic creation of a sales credit memo, deleting that channel order
and re-retrieving it would instruct CSM to generate a second credit memo. This has been corrected.
- A hexadecimal error was being generated when attempting to parse non-English characters, such as Arabic or
Chinese. This has been corrected.
Miscellaneous
- CSM for Shopify’s automated test scripts have been expanded to include additional testing scenarios.
- CSM for Shopify’s default demo data load has been updated to support new features introduced with this release.