The default behavior of the Acumatica commerce connector is to synchronize every customer from the external Ecommerce system. A lot of clients have expressed interest in keeping the customer data from cluttering their ERP and instead mapping all orders to a single “B2C” customer, with each order with an overridden shipto/billto address and contact. I will show you how to set up the entity mapping to make this occur.
we need to use only one customer for all the B2C orders created in Shopify, the Customer ID is B2C, and the Customer Name is B2C customer.
1. Create a new customer in the Acumatica system with customer ID B2C and name it B2C customer (for example)
2. Go to commerce> Shopify Stores > select the store you want to update.
3. Go to Entity Settings and select sales order, and then do the following in the import mapping:
Any new order will be directly assigned to B2C customer, any payment, refund, or return will follow the same customer (B2C) assigned to the order.
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):
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!