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 pre-configured Shopify web store template.
The template is easy to setup and includes various configuration options relating to the import and export of data between Acctivate and Shopify. Likewise, data mapping changes can be made allowing for complete control over the data flow from Shopify to Acctivate.
The Shopify template allows for importing and exporting the following information:
Import
- Sales Orders
- Customers
Export
- Inventory availability
- Shipment information
Setup
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 from the Shopify 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 → Import Sales Orders
- Click Create to create a new template.
Each screen of the template is outlined below.
Add a Template
- In the Add Template screen, enter the following information:
- ID: Enter the web store ID. This name must be unique and it's recommended that there are no spaces . It is limited to 15 characters. This name can be displayed in the Order Manager as the Origin ID.
- Name: This is the user friendly name that will appear in the Web Store Sync window. This can be up to 50 characters and may contain spaces.
- Notes: Optionally, enter any Notes. Notes entered here are only visible when editing this web store template.
- Type: Select the Type of Web Store.
- Click Next.
Source
- On the Source screen, use the drop-down in the upper right and select Shopify.
- Enter the Access Key that was previously generated from the Shopify App.
- Click Next
Options
The Options screen allows you to adjust various import and export options. A description of the available options are listed below, however the default options are recommended for most cases.
If you want to sync orders from a certain time point, set the Timestamp of the last web order imported option.
Click Next to proceed.
Template Option | Value | Definition |
---|---|---|
Automatically retry importing skipped orders | Yes/No | 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. |
Comma-separated Warehouse IDs for inventory export | WH ID | List the specific Warehouse ID you wish to use for exporting item availability. If exporting multiple warehouses, separate each ID by a comma. The availability of the warehouses included will be summed up and sent to Shopify. |
Create customers for guests | Yes/No | When set to Yes, Acctivate will create a customer for "guest" customers (customers who have checked out without setting up a customer account for your Shopify store) by using the customer information included in the Sales Order. When set to No, if Acctivate cannot match to an existing customer, the customer will be left blank on the sales order. Regardless of the option selection, Acctivate will always attempt to match to an existing customer first. |
Create reminders for warnings (Business Alerts) | Yes/No | 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. |
Date/Time format | yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z' |
Acctivate will use this date/time format instead of the syncing computer's date/time format when parsing Shopify date/times. If this option value is blank, Acctivate will use the syncing computer's date/time format. |
Default tax code on detail disc/charge to parent's | Yes/No | If an item has a discount or additional charge, the discount or charge will be imported as it's own order line. When this option is set to Yes, that discount/charge line will use the tax code that is assigned to the related "parent" product. If set to No, the discount/charge will default to the tax code assigned to it. |
Export carrier when exporting shipments | Yes/No | Allows the carrier information to be sent back with shipping information from order |
Export inv qty by stocking unit not sales unit | Yes/No | 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. |
Export inventory | Yes/No | When set to Yes, the product's Available quantity is sent back to Shopify. For more information on the inventory availability export, refer to the Web Store Item Availability documentation. |
Export inventory by alternate product ID | Yes/No | 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 tab of the Enter 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 shipments | Yes/No | If set to Yes, Acctivate will export shipment information to Shopify during the web store sync. |
Have stores send shipment notifications | Yes/No | When set to Yes, Shopify will send a shipment notification to the customer once an Acctivate shipment has been exported to Shopify. |
Import customers | Yes/No | When this option is set to No, Acctivate only imports orders and then creates customers from the sales order information. With this option set to Yes, customer information will be imported separately from Orders and customers will be created based on the Shopify customer account information. In some cases, a customer may create an account your Shopify store, but not create an order, so it's possible for customers to be created without a related order. |
Import orders | Yes/No | When set to Yes, Acctivate will import sales orders from Shopify. When set to No, Acctivate will not import orders, but will (optionally) import customers. |
Import payment transaction list (req xtra mapping) | Yes/No | It's recommended this is set to Yes. When set to Yes, payment transaction information is imported with the order. May require changes to the mapping. |
Locale for Date formats | en-US and more. |
Dates are formatted based on the locale defined here. Represented as the ISO 639-1 code followed by the ISO 3166-1 Alpha-2 code, e.g., en-US , en-GB , en-CA , etc. |
Show advanced configuration settings | Yes/No | Generally used by the Acctivate Support team. Setting this option to Yes will unlock more advanced template options as well as allow the adding and editing of the Source Values. |
Timestamp of the last web order imported | Timestamp | 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. |
URL is for webservice instead of storefront | Yes/No | Typically, this option should remain it's default setting (No). When set to No, the store front URL entered on the Source screen will be formatted to match the web store's web service URL (this formatting is not seen in the template, but rather occurs during the API calls made by Acctivate). If the URL entered on the Source screen is the web service URL, then set this option to Yes to prevent additional formatting of the URL. |
Use HTTP Basic Auth instead of OAuth | Yes/No | Legacy. This option should be set to No. |
Verbose logging | Yes/No | When set to Yes, Acctivate will create logs of each the web store requests and responses, as well as data transformations for each sync. When set to No, only the sync messages log is saved. Logs can be located in the Web Store log folder. It's recommended that this option is set to No unless you are troubleshooting. |
Source Values
This screen is only accessible when the Show advanced configuration settings option is set to Yes.
This screen allows for advanced mappings and is primarily used by the Acctivate Support team. See the Source Values configuration page for more information on the information and options found here.
To proceed, click Next.
Mapping
This screen includes the customer and sales order mappings.
The Customer Document mapping only applies when the Import customers option is enabled, otherwise, a customer record is created based on the Order Document.
When a Web store field is mapped to an Acctivate field, the web store's value will be imported into the Acctivate field. If a Default value is mapped, then Acctivate will use the Default value for all orders created. If both are mapped, the mapped field will take priority over the default value.
Conversion can be managed on this screen by clicking on the Acctivate field and then clicking Show Conversions at the bottom of the window. Enter the From value (the web store value) and enter the To value as the value it should be converted to.
See the Mapping configuration documentation for more information.
To proceed, click Next.
Import
The Import screen will allow you to begin the import by clicking Import Orders. Otherwise, close the window and confirm that you want to save the template when prompted.
Additional Setup and Considerations
Creating Customers in a QuickBooks Online company
QuickBooks Online requires non-taxable customers to have an exemption reason provided. Read our KB article on mapping options for non-taxable customers in QuickBooks Online companies.
Matching Products
When importing in sales orders from Shopify, the Shopify SKU will be matched to an Acctivate product according to the following hierarchy:
- Web store specific Alternate Product ID
- Product ID
- Alternate Product IDs unrelated to this web store template
- UPC
- Customer Product ID for the Customer on the sales order.
Exporting Inventory
In order to export inventory availability, perform the following:
- In Shopify, SKUs must have the "Track quantity" option enabled in order for Acctivate to update their inventory.
- In Acctivate, the Product must be have the Available on web option enabled.
- The Export inventory option must be set to Yes.
- Optionally, you can export inventory for specific warehouses. See the Comma-separated Warehouse IDs for inventory export option.
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 inventory 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.
Exporting Shipments
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.
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 ID, or you can enter multiple Shopify ID's separated by a comma. The Shopify Order ID is the internal order ID and not the order number. The Shopify Order ID can be found by logging into your Shopify store and selecting the order. The URL for the order will contain the Shopify Order ID.
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.