Retail Commerce: Support of Shopify Business Customers

In Shopify, it is possible to sell goods and services to business customers without using third-party apps. A business customer is set up in the Shopify store as a company. A company may have multiple locations, and multiple customers may be associated with the same company. Each customer that is associated with a company may be assigned either the Ordering only role or the Location admin role in any of the company's locations. When a customer associated with a company signs in to the Shopify store, they select the location for which they are placing an order, and they are offered the prices and payment terms that have been set up in the store for that company location.

For more information about setting up companies in Shopify, see the Shopify documentation.

Important:
Business-to-business functionality in Shopify is available on the Shopify Plus subscription plan.

In MYOB Acumatica 2024.1, it has become possible to synchronize business customers between MYOB Acumatica and a Shopify store, as well as to synchronize orders that have been placed by contacts associated with business customers. This functionality is available if both the Shopify Connector feature and the Business-to-Business Entities feature are enabled on the Enable/Disable Features (CS100000) form.

The Company Entity

To synchronize business customers between MYOB Acumatica and a Shopify store, the e-commerce manager first needs to activate the new entity, Company, on the Entity Settings tab of the Shopify Stores (BC201010) form (which is shown in the following screenshot).

Figure 1. The new Company entity on the Shopify Stores form


The Company entity can be imported, exported, or synchronized in both directions. That is, the synchronization direction for it can be set to Import, Export, or Bidirectional on the Shopify Stores form or on the Entities (BC202000) form.

On the Entities form, the fields of the new entity are available for filtering and mapping.

Import of Business Customers

During the import of a company from a Shopify store to MYOB Acumatica, the system does the following:

  • Creates a customer for the company on the Customers (AR303000) form
  • For each location that has been defined for the company in the Shopify store, creates a customer location on the Customer Locations (AR303020) form
  • For each customer associated with the company in the Shopify store, creates a contact on the Contacts (CR302000) form

As is the case with individual customers imported from a Shopify store, the identifier of the imported business customer is generated based on the numbering sequence selected in the Customer Numbering Sequence box on the Customer Settings tab of the Shopify Stores form. The customer class, which provides the default settings for the customer, is assigned based on the value selected in the Customer Class box of the Customer Settings tab of the Shopify Stores form. On the Customers form, the new Customer Category box is set to Organization, which indicates that the customer is a business customer.

The identifiers of imported locations are generated based on the numbering sequence specified in the Location Numbering Sequence box on the Customer Settings tab of the Shopify Stores form.

The contacts are assigned roles in the customer locations based on the roles the customers had in each of the locations in the Shopify store as follows:

  • If the customer has the Ordering only role in the Shopify store, the contact is assigned the User role in MYOB Acumatica.
  • If the customer has the Location admin role in the Shopify store, the contact is assigned the Admin role in MYOB Acumatica.

The Locations tab of the Contacts form shows the locations in which a contact is assigned a role. Similarly, the Contacts tab of the Customer Locations form shows all contacts that are assigned a role in a particular location.

If a customer associated with a company is deleted in the Shopify store after the company has been synchronized, during the next synchronization, the corresponding contact in MYOB Acumatica becomes inactive. Similarly, if a location is deleted in the Shopify store, the corresponding customer location in MYOB Acumatica becomes inactive.

Export of Business Customers

If the synchronization direction is set to Export or Bidirectional for the Company entity for the store on the Entity Settings tab of the Shopify Stores (BC201010) form, business customers can be exported to the Shopify store. Customers are exported only if the Customer Category box contains Organization on the Customers (AR303000) form.

During the export of a business customer, the system does the following in the Shopify store:

  • Creates a company.
  • Creates a company location for each customer location created for the business customer on the Customer Locations (AR303020) form.

    If changes have been made to a location after the company has been synchronized, these changes are exported to the Shopify store during the next synchronization. However, if a location is deactivated or deleted in MYOB Acumatica, the corresponding company location is not updated in the Shopify store.

  • Creates a customer for each contact created for the business customer on the Contacts (CR302000) form and associates it with the company. The customers are assigned roles in the company's locations according to the contacts' roles in MYOB Acumatica as follows:
    • If the contact has the User role in MYOB Acumatica, the customer is assigned the Ordering only role in Shopify.
    • If the contact has the Admin role in MYOB Acumatica, the customer is assigned the Location admin role in Shopify.

    If changes have been made to a contact after the company has been synchronized, these changes are exported to the Shopify store during the next synchronization. However, if the contact is deactivated or deleted in MYOB Acumatica, the corresponding customer is not updated in the Shopify store.

Import of an Order Placed on Behalf of a Company

Orders that a customer has placed in a Shopify store on behalf of a company are synchronized during the synchronization of the Sales Order entity. During the import of each order to MYOB Acumatica, the system does the following:

  • If the company for which the order has been placed has not yet been imported, imports it first along with its locations and contacts
  • Creates a sales order on the Sales Orders (SO301000) form and inserts the following in the Summary area:
    • In the Customer box: The identifier of the company on behalf of which the order was placed
    • In the Contact box: The identifier of the customer that placed the order
    • In the Location box: The identifier of the location that was selected during the order placement
    • In the Customer Order Nbr. box: The identifier of the customer's purchase order if it has been specified in the PO number box on the order page in the Shopify store
  • On the Addresses tab of the Sales Orders form, inserts the following:
    • The shipping address, based on the settings of the company's location that was selected during order placement
    • The shipping contact, based on the settings of the customer that placed the order
    • The billing details, based on the settings of the company's location that was selected during order placement

Export of an Order Placed on Behalf of a Company

In MYOB Acumatica, a business customer is a customer for which Customer Category is set to Organization on the Customers (AR303000) form. Orders that have been created in MYOB Acumatica for a business customer are exported to a Shopify store during the synchronization of the Sales Order entity. During the export of such an order, the system does the following in the Shopify store:

  • If the business customer has not been synchronized yet, exports the business customer, as described in the Export of Business Customers section
  • Creates an order as follows:
    • Specifies the business customer (which is exported to the Shopify store as a company) as the purchasing entity
    • Specifies the contact that was selected in the order in MYOB Acumatica as the customer
    • Inserts the shipping and billing addresses from the location that was selected in the order in MYOB Acumatica
    • Inserts the identifier of the customer's purchase order in the PO number box if it has been specified in the Customer Order Nbr. box in the Summary area of the Sales Orders (SO301000) form

Changes to the Customers, Customer Locations, and Contacts Forms

To support the new functionality, multiple changes have been introduced on the Customers (AR303000), Customer Locations (AR303020), and Contacts (CR302000) forms.
Attention:
The UI elements described below appear only if both the Shopify Connector feature and the Business-to-Business Entities feature are enabled on the Enable/Disable Features (CS100000) form.

On the Customers form, a new box, Customer Category, has been added to the Summary area (see the screenshot below). During the creation of a customer, a user can select either of the following options in this box:

  • Individual: The customer is an individual.
  • Organization: The customer is a business.

For a customer imported from a Shopify store during the synchronization of the Customer entity, the customer is created on the Customers form with Customer Category set to Individual. For a company imported from a Shopify store during the synchronization of the Company entity, a customer is created on the Customers form with Customer Category set to Organization.

Figure 2. The Customer Category box on the Customers form


On the Customer Locations form, the Contacts tab has been added (see the following screenshot). The tab displays a table with the following columns:

  • Contact: The contact that is associated with the customer's location
  • Role: The role assigned to the contact in the location, which can be Admin or User
Figure 3. The Contacts tab on the Customer Locations form


On the Contacts form, the Locations tab has been added (see the following screenshot). The tab displays a table with the following columns:

  • Location: The customer location that the contact is associated with
  • Role: The role assigned to the contact in the location, which can be Admin or User
Figure 4. The Locations tab on the Contacts form