Syncing ShipStation data with the Acumatica Commerce Connector

A common integration companies with existing Shopify accounts have is to link Shopify directly to ShipStation for label generation and management. Product availability is managed inside of Shopify. Once they graduate to a more feature rich ERP however, the inventory is managed inside of the ERP instead of Shopify, with Shopify and Shipstation being extensions of the core ERP.

I recently implemented a Commerce Edition install of Acumatica who followed the pattern above. We used the out of the box Shipstation integration for Acumatica, and the Commerce Edition for talking to Shopify. One of the pain points we ran into was getting the ShipStation tracking and carrier information back into Shopify. Acumatica only allows you to map from the following field (as of 2021R2):

The Carrier is synced from the ShipVia field
The tracking number is synced from the Tracking Number screen on the Packages tab

This would be all well and good if the customer was using the out of the box Carrier Integration from Acumatica. However, their shipment info writes here:

Additionally, the ability to map to any shipment fields is not implemented yet (again, as of 2021R2). How I solved this is with a simple SOShipmentEntry customization, when the shipstation fields are updated, it creates a package and assigns the written tracking number to it (be sure all your ship vias have the “DEFAULT” box assigned to them):

Additionally, I created a cross reference between the ShipVia and the carrier field, because unless your ship via is exactly “USPS” “UPS” or “Fedex” it will not tell shopify what the carrier is properly. You should create the substitution list with exactly the same ID:

And now, when your shipments sync using the Commerce connector, the tracking info will populate from ShipStation properly!