Shopify
Shopify is an e-commerce platform offering sales order, inventory, and customer management.
Overview
Acctivate can be integrated with your Shopify store using our Shopify web store integration.
Setting up a store is easy and includes various configuration options relating to the import and export of data between Acctivate and Shopify.
The Shopify web store integration allows for importing and exporting the following information:
Import
- Sales Orders
- Customers
Export
- Shipment information
- Inventory availability
Setup
Note
These instructions below are current and are for Acctivate's new Shopify integration which is configured in the Services section of the Configuration Manager.
The Shopify template in the Web Store Template window is considered legacy, as it uses APIs which Shopify is deprecating.
To setup the integration with Acctivate and Shopify, you'll need to install the Acctivate connector app from the Shopify store to obtain an Access Key which is then entered into your desktop installation of Acctivate.
- Add the Acctivate app to your Shopify store from the Shopify App Store: https://apps.shopify.com/acctivate When prompted, install the app.
- After a successful installation, you will be taken to a web page that generates an Access Key. Copy this Access Key to your clipboard as it will be entered into the web store setup window of Acctivate.
- In Acctivate, go to File → Configuration Management → Services → Shopify
- Click New to setup a new store. When prompted, paste the Access Key you copied and click Save & Close. This will trigger an initial download of configuration information.
You can add additional stores by clicking Add again. You can edit the store name in Acctivate by clicking the pencil icon next to the name above the tabs.
To make a store inactive, uncheck the Active checkbox.
Verbose logging is enabled by default, however once the initial setup is completed you can disable it if you wish.
The Reconnect button in the lower left can be used to re-establish the connection if necessary. The Test Connection button in the lower right can be used to confirm a successful connection to your Shopify store.
Conversions
The Conversions tab allows you to create conversions between Shopify data values and Acctivate.
When Acctivate is first connected Shopify, an initial download of Shopify lists will occur and Acctivate will attempt to auto map list values to Acctivate values.
The lists imported and mapped are:
- Carrier Company - The Carrier mappings are used during shipment export. For example, if the option "Export carrier when exporting shipments" is enabled on the Shipment Export tab, the carrier associated with the shipment in Acctivate will be converted to the Ship Via carrier based on the table mappings.
- Carrier Service - The Carrier mappings are used during order import.
- Ship Via - Used to convert a Shopify Carrier Service to an Acctivate Ship Via during sales order import.
- Terms Code - Used to assign the Terms Code during sales order import.
You can use the table below to create a conversion between the Shopify values and Acctivate value.
You can force a resync of the Shopify list values by clicking the Sync Codes button (note: any existing conversions will be kept).
Order Import
The Order Import tab includes configuration options that apply to the sales order import from Shopify.
- Import orders: When enabled, Acctivate will download sales orders from Shopify.
- Automatically retry importing skipped orders: If the Skip orders with warnings web store option is enabled, skipped orders will be added to the Web Orders tab of the Business Alerts window. If this option is set to Yes, Acctivate will try to import the skipped orders after completing the import of new orders. If set to No, Acctivate will not attempt to resync the skipped orders as part of the web store sync. Instead, you must resync the orders from the Business Alerts window.
- Create reminders for warnings (Business Alerts): When set to Yes, if orders are imported with warnings (e.g., the Skip orders with warnings is not enabled), Acctivate will create a note with the warnings and assign it to the user who performed the sync. Notes can be viewed in the Reminders tab of the Business Alerts window.
Configuration
- Timestamp of the last order imported: Each sync will start at this value. After a sync is completed, this timestamp will update to reflect the creation timestamp of the last order imported so that the next sync looks for orders created since the last sync.
- Default payment method: Web orders which have been paid will have their payment amount included on the Payments tab of the Enter Sales Order window and will use this payment method. Use a payment method that isn't configured for payment processing in Acctivate.
When importing sales orders, the web store sku will be matched to an Acctivate product according to a hierarchy. See the Sales Orders section of the Web Store Configuration docs
If no match can be made, a warning will be logged and the order will be skipped for retry later. You can setup the product and re-import the order. The product descriptions, ordered quantity, and price will also be imported in.
Customers
If the option Create Customers as 'Name (email)' if match not found is enabled, Acctivate will attempt to match to an existing customer using the following sequence:
- Web Customer ID
- Acctivate Customer ID
- Alternate Customer ID
- Company Email
- Account Number
If no match can be made, then Acctivate will create the customer as "Name (email)"
If the option Use customer is enabled, then the customer selected here will be used for all sales orders imported.
Sales Tax
- Import tax amount into order footer: When this option is enabled, the calculated tax will be imported into the Acctivate's tax field and the customer's tax category will be used or, if the customer is being created, the default tax category for new customers will be used. Review our Acctivate KB to learn how differences between web store and Acctivate tax calculations are handled. This option is recommended if Acctivate and your web store are integrated with AvaTax.
- Add as line item with product ID: When this option is enabled you will be required to select an Other Charge item that will be used to record the tax amount. The sales order and line items will be set to non-taxable, but the Tax Category for the customer will set. This option is recommended in most cases.
Shipment Export
The Shipment Export tab includes configuration options that apply during the Shipment Export step of the Shopify sync.
- Export Shipments: If set to Yes, Acctivate will export shipment information to Shopify during the web store sync.
- Export carrier when exporting shipments: Allows the carrier information to be sent back with shipping information from order.
- Have stores send shipment notifications: When set to Yes, Shopify will send a shipment notification to the customer once an Acctivate shipment has been exported to Shopify.
At the time of invoicing, Acctivate will determine the quantities shipped based on the items packaged in Packaging Manager, or the invoiced quantities. If the quantity packed in Packaging Manager varies from the invoiced quantity, the packed quantity will be used. If the items are not packaged in Packaging Manager, Acctivate will be unable to determine which products and quantities are in which package (if multiple packages/tracking numbers), therefore all the items and quantities will be associated with the first package in a shipment and only that package will be exported.
Shopify requires that shipped quantities be whole numbers. If the shipped quantity is a decimal number (e.g., 12.5), the quantity will be rounded up in the Shopify shipment export.
When exporting shipment information, Acctivate first downloads Shopify Fulfillment Orders, which split items based on the Shopify locations that will fulfill them.
Inventory Export
The Inventory Export tab includes configuration options that apply during the Inventory Export step of the Shopify sync.
- Export Inventory: Applies to products that have the Available on web option enabled. When enabled, the product's Available quantity is sent back to Shopify For more information on the inventory availability export, refer to the Additional Setup and Considerations section of this guide.
- Export by alternate product ID: Applies to products that have the Available on web option enabled. When set to No, Acctivate will export inventory availability by the Acctivate Product ID. When set to Yes, the inventory availability will be exported using the product's Primary Alt Product ID. Note: If the product has a web store specific Alternate Product ID (i.e., an Alternate Product ID linked to this template on the Alt ID's card of the Product window), then this option will be ignored and the web store specific Alt Product ID will be used for the inventory availability export (the Product ID and Primary Alt Product ID will not be exported).
- Export quantities in stocking units instead of sales units: Applies to products that have the Available on web option enabled. When set to No, a product's Available quantity will be converted to the product's default sales unit and exported (when the "Export inventory" option is set to Yes). If set to Yes, the product's Available quantity will be exported in stocking units.
- Warehouses: Applies to products that have the Available on web option enabled. By default, availability for all warehouses will be exported. Click the "All" button and select a specific warehouse, then use the plus sign button to add additional warehouses. The total availability will be sent to Shopify.
In order to export inventory availability, perform the following steps:
- In Shopify, SKUs must have the "Track quantity" option enabled in order for Acctivate to update their inventory.
- In Acctivate, the Product must have the Available on web option enabled.
- The Export inventory option must be set to Yes.
Additional information about exporting inventory:
- When a web store specific Alternate Product ID exists, that Alt ID will be used to match to a Shopify SKU. If no web store specific Alternate Product ID exists, then the Acctivate Product ID will be used unless the option Export by alternate product ID is enabled; in which case the Alt Product ID would be used to match to a Shopify SKU.
- When you run the first sync, no inventory availability will be exported. When you run the second sync (and subsequent syncs) only products with inventory transactions since the last sync will be included in the export. For that reason, when going live with your web store template it's recommended that you import or manually update your web store to match Acctivate's availability.
- Products that are marked as Available on Web are included in the ProductAvailabilityByTemplate data view. This data view includes the last transaction date, voided date, and updated date for certain transaction types. The most recent of these three dates for a product/warehouse combination (stored as the LastModifiedDate) is used to consider which products should be included in the web store inventory export. After a web store inventory export, the latest LastModifiedDate will be stored as a web store database option named LastTransactionDate. The next web store inventory sync will take the LastTransactionDate date and subtract one day from it, then compare this new date to the LastModifiedDate value. Any products with a LastModifiedDate date since the LastTransactionDate (minus one day) will be included in the export if it exists in the web store.
Usage
Refer to the Web Store section of the documentation for information on how to begin a sync with Shopify.
To import a specific sales order, you can use the More Options button on the Web Store Sync window to enter a Shopify order number, or you can enter multiple Shopify order number's separated by a comma.
Order Import Mappings
Below is a list of Acctivate order fields and a description of their corresponding source field in Shopify. Theses mapping cannot be altered:
- Order Date: The date the order was created in the web store.
- Customer: The customer for the sales order in Acctivate will depend on the Order Import options
- Customer Contact: The contact's First and Last Name, Email, and Phone number will be imported into the Contact section of the order.
- Billing Address: The billing address from the web store order.
- Shipping Address: The shipping address from the web store order.
- Web Order Number: The web store order number. Saved on the Additional Info tab of the Enter Sales Order window.
- PO: The customer PO Number, if provided.
- Terms Code: Comes from the Payment terms field for Shopify orders entered with "Payment due later" option.
- Ship Via: The carrier service of the web order can be converted to an Acctivate Ship Via on the Conversions tab of the Shopify configuration page.
- Carrier Service: The Carrier and Carrier Service in Shopify can be converted to an Acctivate Carrier and Carrier Service on the Conversions tab of the Shopify configuration page.
- Tax Code: The order will be non-taxable for Shopify orders which have the "Charge taxes" option disabled.
- Tax: The sales tax calculated by the web store.
- Ordered Total: The total amount of the web order.
- Products: The web store sku will be matched to an Acctivate product using a hierarchy. See the Order Import configuration section for more information.
- Shipping charge: If a shipping charge exists with the order, it will be imported in as a shipping line item.
- Payment Method: The web order's payment method will be converted to an Acctivate payment method based on the configured Payment Method conversions](xref:ConfigurationServices#shopify
- Payment Reference: The web store order number will be used as the payment reference.
- Payment Amount: The amount paid at the time of order entry will import into the Payments tab of the Enter Sales Order window.
It is suggested that Shopify discount codes are setup as Other Charge products in Acctivate. This will ensure that the discount code is associated with the correct GL account and allows you to run reports by discount code.
Note
Updates to sales orders imported from Shopify will not be pushed back to Shopify.
Furthermore, once a sales order has been imported from Shopify, Acctivate will not import changes made to the order in Shopify.
Customer Import Mappings
Acctivate will download customer profiles from Shopify. An Acctivate customer will be created with the following information:
- Customer Name: Created as "Name (email)"
- Billing Address
- Shipping Address
- Contact info: The customer's First Name, Last Name, Email, and Phone will be added as the billing contact and as a company contact.
- Tax Code: The customer's tax code will be set to be non-taxable if the "Charge taxes" option is disabled.
- Web Customer ID: The customer's web customer ID will be saved to assist in the customer matching sequence when orders are imported.
Customer requests to view or redact data
Shopify mandates that all applications that integrate with their API are General Data Protection Regulation (GDPR) compliant. To satisfy this requirement, Acctivate is required to process a Shopify customer's request to view their information or have their personal information redacted.
After importing sales orders and exporting inventory and shipping information to Shopify, Acctivate will check to see if any Shopify users have requested that their personal data be deleted. If any such requests exist, Acctivate will redact the customer's information.
If a Shopify customer has requested to view their personal information, a Customer Note will automatically be created during the Shopify sync. This note will read "Customer requested to receive a copy of their data."
For more information on the redaction criteria and fields to be redacted, see our web store redaction KB article.
Supported Shopify version messages
In order to provide its users the best experience, Shopify will release updated API endpoints and deprecate older API endpoints. Typically, an API endpoint is supported for 12 months by Shopify before being deprecated.
Acctivate versions are updated as necessary to sync with a currently supported Shopify version. For that reason, it's important that Acctivate is always up to date.
When performing a Shopify sync, the Shopify version supported by the Acctivate install will be compared against the minimum Shopify API version supported by Acctivate. If the Acctivate install's supported Shopify version is due for deprecation by Shopify within the next 90 days, then the following message will appear:
You must update to the current version of Acctivate by {some date} in order to avoid Shopify service disruptions.
It is recommended that you make plans to update Acctivate by the date indicated in the message.
If the deprecation date for the Acctivate install's supported Shopify version has passed, then the following message will appear:
The version of Acctivate you are using is not supported by Shopify. You must update to the current version of Acctivate in order to sync with Shopify.
You will not be allowed to sync with Shopify until you have updated Acctivate to the latest version.