Shopify Integration with Axanta ERP

This guide explains how to integrate your Shopify store with Axanta ERP, synchronize products, and automatically create Sales Orders from Shopify orders using webhooks.

1. Install the Shopify Connector

  1. Navigate to Apps.
  2. Search for the Shopify Connector.
  3. Install the Shopify Connector.

 

During installation, the required Sales and Webhook modules will also be installed. Once installation is complete, you can configure your Shopify store in Axanta ERP.

2. Set Up a Shopify Instance in Axanta

Step 1: Create a New Instance

  1. Navigate to Apps > Webhook > Shopify > Instances.
  2. Click New to create an integration instance.
  3. Copy your Shopify store URL, for example yourstore.myshopify.com, and enter it in the Store URL field.

Step 2: Obtain API Credentials from Shopify

  1. Log in to your Shopify Admin dashboard.
  2. Navigate to Settings > Apps > Develop Apps.
  3. Select the application.
  4. Open App Settings to retrieve the Client ID and Client Secret.
  5. Go to Versions, select the active app version, and copy the API version string.



Step 3: Configure and Test the Connection

  1. Return to Axanta ERP and enter the Client ID, Client Secret, and API Version.
  2. Click Test Connection to verify communication between Axanta and Shopify.
  3. Click Generate Token to generate the access token required for API requests.
  4. Configure the field mappings between Shopify and Axanta.
  5. Fill in the recommended default fields to ensure the integration works as expected.
Note: Keep your Client Secret and access token confidential.


3. Configure Product Synchronization

Once the Shopify instance is configured, product synchronization follows the rules below.

Product Eligibility

Only products with the is_website_product enabled in Axanta are eligible for synchronization.

Product Publishing Status

The product's published status in Axanta determines its status in Shopify:

  • Unpublished in Axanta: The product is set to Draft in Shopify.
  • Published in Axanta: The product is set to Active in Shopify.


Product Images

To synchronize multiple product images:

  1. Open the product in Axanta ERP.
  2. Navigate to Website > URL.
  3. Add the direct URLs of the product images.

Ensure the image URLs are valid and publicly accessible so Shopify can retrieve the images.

Product, Image & Stock Synchronization Jobs

Data synchronization between Axanta ERP and Shopify runs asynchronously in the background as Sync Jobs. This ensures smooth operations without freezing the system when updating large catalogs, high-resolution media, or multi-warehouse stock levels.

1. Product Sync (Catalog, Variants & Pricing)

The product sync job pushes product names, descriptions, SKUs, sales prices, barcodes, and variants to Shopify:

  • Standalone Products: If the Product Model field is left blank, the product is published to Shopify as an individual product with a single variant.
  • Product Variants: Products that share the exact same Product Model in Axanta (e.g., POLO-SHIRT-01) are automatically grouped under a single product listing with multiple selectable variants on Shopify.
  • Manual Sync: Open your Shopify instance (Apps > Webhook > Shopify > Instances) and click Enqueue Products.
  • Scheduled Sync: The scheduled action Shopify: Enqueue Product Sync runs periodically to sync newly created and updated products.

2. Product Image Sync

Product images are synced independently from product data to prevent large files from slowing down regular catalog updates:

  • URL-Based Sync: Axanta sends public HTTPS image URLs from the product's Product Image URLs tab. Shopify downloads and hosts the images directly on its CDN.
  • Duplicate Prevention: The connector tracks synced images so unchanged photos are not re-uploaded during subsequent sync cycles.
  • Manual Sync: Click Enqueue Images on the Shopify instance record.
  • Scheduled Sync: The scheduled action Shopify: Enqueue Image Sync runs periodically in the background.

3. Stock & Inventory Sync

Stock synchronization operates strictly one-way from Axanta ERP to Shopify:

  • Physical On-Hand Stock: Axanta pushes its physical on-hand quantities (qty_available) per warehouse to Shopify's on-hand inventory. Shopify then calculates customer-facing availability based on unfulfilled orders.
  • Multi-Location Support: Stock is sent to matching Shopify locations based on your configured Location Mappings.
  • Manual Sync: Click Enqueue Stock on the Shopify instance record.
  • Scheduled Sync: The scheduled action Shopify: Enqueue Stock Sync runs every 15 minutes by default to keep inventory levels current.

Monitoring Sync Jobs & Error Handling

All automated operations can be tracked from Apps > Webhook > Shopify > Sync Jobs:

  • Job Statuses: Jobs display states including Pending, Processing, Waiting (for bulk operations), Done, and Failed.
  • Automatic Retries: If Shopify returns a temporary rate limit or network error, the job automatically reschedules with exponential backoff.
Important: Always perform inventory adjustments and purchase receipts directly in Axanta. Any manual stock changes made in Shopify Admin will be overwritten during the next stock sync cycle.

4. Configure Shopify Webhooks

Webhooks allow Shopify to notify Axanta ERP when the configured order event occurs.

Step 1: Retrieve the Webhook URL from Axanta

  1. Navigate to Apps > Webhook > Shopify > Instances.
  2. Open the configured Shopify instance.
  3. Locate Order Webhook URL.
  4. Copy the webhook URL.

Step 2: Create a Webhook in Shopify

  1. Log in to Shopify Admin.
  2. Navigate to Settings > Notifications > Webhooks.
  3. Click Create Webhook.
  4. Configure the webhook based on how you want Axanta ERP to process the Shopify order.


Option 1: Create a Sales Order when the Shopify order is created

  • Event: Order Creation
  • Format: JSON
  • URL: Paste the webhook URL copied from Axanta.
  • Webhook API Version: Select the same API version configured in Axanta.


Option 2: Create a Sales Order when the Shopify order is fulfilled

  • Event: Order Fulfillment
  • Format: JSON
  • URL: Paste the webhook URL copied from Axanta.
  • Webhook API Version: Select the same API version configured in Axanta.

Choose one option based on your business requirement. You do not need to configure both webhooks unless you specifically require both events to be processed.

  1. Save the webhook.
  2. Copy the webhook secret associated with the configured webhook.

Step 3: Configure the Webhook Secret in Axanta

  1. Return to Axanta ERP.
  2. Open the configured Shopify instance.
  3. Paste the copied secret into the Webhook Secret field.
  4. Save the instance.

Ensure the secret corresponds to the webhook configured in Shopify.

5. Automatic Sales Order Creation

After the integration and webhook configuration are complete, Axanta can receive order notifications from Shopify.

  1. A customer places an order on Shopify, or the configured order event occurs.
  2. Shopify sends the corresponding webhook notification to Axanta.
  3. Axanta receives and processes the incoming webhook.
  4. Axanta creates the corresponding Sales Order according to the configured integration logic.

The webhook event and the order_type configuration determine how the incoming order is processed.

Note: The order_type can be configured from the webhook settings under 'Order Type'.

6. Configure Scheduled Actions (Automated Background Sync)

Axanta ERP uses automated Scheduled Actions (Cron Jobs) to keep your Shopify catalog, media, and stock synchronized in the background without requiring manual intervention.

Overview of Shopify Scheduled Actions

The following automated actions are provided by the Shopify Connector:

Scheduled Action Name Default Interval Default State Description
Shopify: Process Sync Jobs Every 5 Minutes Active Processes all pending queue jobs (products, images, stock, order fulfillment, and cancellations) and polls Shopify bulk operation results.
Shopify: Enqueue Stock Sync Every 15 Minutes Inactive Automatically identifies recent warehouse inventory changes in Axanta and queues them to update Shopify on-hand stock.
Shopify: Enqueue Product Sync Every 1 Hour Inactive Scans for newly added or updated website products in Axanta and queues them for catalog export to Shopify.
Shopify: Enqueue Image Sync Every 6 Hours Inactive Scans for new or updated public image URLs on products and queues them for image upload to Shopify.
Shopify: Cleanup Old Jobs Daily Active Automatically deletes completed (Done) sync jobs older than 30 days to maintain optimal database performance.

How to Enable and Configure Scheduled Actions

To activate or adjust the execution frequency of any scheduled sync action:

  1. Activate Developer Mode in Axanta ERP (Settings > General Settings > Activate Developer Mode).
  2. Navigate to Settings > Technical > Automation > Scheduled Actions.
  3. In the search bar, filter by Shopify: to view all Shopify-related cron jobs.
  4. Open the desired scheduled action (e.g., Shopify: Enqueue Stock Sync).
  5. Toggle the Active switch to ON.
  6. (Optional) Adjust the Execute Every frequency according to your business requirements. While the system allows setting any interval, it is strongly recommended to keep the interval at 15 minutes or higher (e.g., 15 minutes for stock sync, 1 hour for product catalog sync) to prevent Shopify API rate-limiting and allow bulk background tasks to finish smoothly.
  7. Click Save.
Best Practice: Keep Shopify: Process Sync Jobs active at all times. This is the master queue runner responsible for executing all enqueued export and import tasks.