Shopify Connector
Shopify Connector — Setup & Usage Guide
Table of Contents
Overview
Prerequisites
Creating a Shopify Connector
Onboarding Wizard
Step 1 — Connect to Shopify (OAuth)
Step 2 — Configure DAM API Key
Step 3 — Field Mappings
Step 4 — Webhook Setup
Dashboard
Settings
Webhook Management
Sync Operations
DAM → Shopify (Automatic)
Shopify → DAM (Automatic)
Metafield Sync
Webhook Logs & Monitoring
Troubleshooting
1. Overview
The Shopify Connector enables bidirectional synchronization between your Scaleflex DAM and your Shopify store:
DAM → Shopify: When you upload or update an asset in your DAM, it is automatically pushed to the correct Shopify product's media gallery (or metafield).
Shopify → DAM: When product images are added or updated in Shopify, they are automatically pulled into your DAM and organized by product SKU.
The connector works through Shopify webhooks and DAM webhooks, so syncs happen in near real-time without any manual intervention.
2. Prerequisites
Before setting up the Shopify Connector, make sure you have:
Shopify store
Admin access to a Shopify store (any plan)
Shopify Custom App
A custom app created in your Shopify Partners or Shopify Admin with the correct API scopes
Required OAuth scopes
write_products, read_products , write_files, read_files
Scaleflex DAM account
A DAM account with a Hub API Key
DAM metadata fields
At least one text field configured in your DAM to hold the product SKU
Creating a Shopify Custom App
If you do not already have a Shopify Custom App, follow these steps:
In your Shopify Admin, go to Settings → Apps and sales channels → Develop apps -> Build apps in Dev Dashboard.
Click Create app and give it a name (e.g., "Scaleflex DAM Connector").

Add the scopes following:
write_productsread_productswrite_filesread_files
Add the following URL as a Redirect URLs (We will provide this URL when setting up the connector in the Hub):

Install the app on your store and copy the Client ID and Client Secret in the Settings.
3. Creating a Shopify Connector
Log in to the Scaleflex DAM -> Settings -> Automations -> Integration platform.
Navigate to Connectors and click Add Connector.
Select Shopify as the connector type.
Fill in the following fields:
Connector Name
A friendly name for this connector (e.g., "My Shopify Store")
Shopify Store Domain
Your store's .myshopify.com domain (e.g., example.myshopify.com)
Client ID
The API key from your Shopify Custom App
Client Secret
The API secret key from your Shopify Custom App
Click Save. The connector is created and the onboarding wizard opens automatically.
4. Onboarding Wizard
The onboarding wizard guides you through all the required setup steps. You must complete all steps before the connector becomes active.
Step 1 — Connect to Shopify (OAuth)
This step authorizes the integration to access your Shopify store.
Click Connect to Shopify.
You are redirected to the Shopify OAuth authorization page.
Review the requested permissions and click Install app.
You are redirected back to the onboarding wizard with a success confirmation.
Note: If you see an error on redirect, verify that the Allowed redirection URL in your Shopify app settings matches exactly the URL shown in the connector.
After a successful connection, the connector stores your access token securely. It also automatically registers an APP_UNINSTALLED webhook so the connector is notified if the app is removed from your Shopify store.
Step 2 — Configure DAM API Key
This step connects the integration to your Scaleflex DAM account.
Enter your DAM HUB API Key (starts with
sk_live_...).Click Test Connection to verify the key is valid.
If the test succeeds, click Next.
Where to find your HUB API Key: Log in to your Scaleflex DAM, go to Settings → Access → API Keys.
Step 3 — Field Mappings
This is the most important configuration step. You define which DAM metadata fields carry the information needed to sync assets with Shopify.
Product SKU Field (required)
The Product SKU Field is a metadata field in your DAM. When an asset has a value in this field, the connector uses that value to find the matching Shopify product by SKU and sync the asset to it.
Select the DAM field that contains the Shopify product SKU.
Example: if your DAM field is named
product_skuand an asset hasproduct_sku = "SHIRT-001", the connector will find the Shopify product with that SKU and add the asset to its media gallery.
Variant SKU Field (optional)
The Variant SKU Field lets you pin a specific media item to one or more product variants rather than the whole product.
Select the DAM field that contains the variant SKU.
The field value format:
VARIANT-SKUorVARIANT-SKU:position(for ordering).Example:
"RED-SHIRT-SM:0,RED-SHIRT-MD:1"pins the asset as the first image for size Small and the second image for size Medium.
Preset Field (optional)
The Preset Field tells the connector which image transformation preset to apply before pushing to Shopify.
Select the DAM field that holds the preset name.
If an asset does not have a preset value, the connector pushes the original CDN URL.
Metafield Configuration (optional)
If you want to sync DAM assets to Shopify product metafields (instead of, or in addition to, the media gallery):
Enable the Metafield Sync toggle.
Select the Metafield Target Field — a DAM metadata field whose value specifies which Shopify metafield to populate.
Click Load Metafields to fetch the list of metafield definitions from your Shopify store.
Select the metafields you want to support from the list.
Click Sync Metafields to DAM — this populates the selected DAM field's dropdown options with the available metafield identifiers.
How it works: When an asset in the DAM has the Metafield Target Field set to, for example, pd_custom_product_image, the connector sets that asset as the value of the custom.product_image metafield on the Shopify product.
Step 4 — Webhook Setup
This step shows you the incoming webhook URL that the DAM will use to notify the connector when an asset changes.
The webhook URL is pre-configured and contains embedded credentials. You do not need to set anything up manually here — just copy the URL and configure it in your DAM:
Copy the Webhook URL displayed on screen.
In your Scaleflex DAM, go to Settings → Automations → Webhooks.
Create a new webhook subscription pointing to this URL.
Select the events: "On upload" and "On change metadata".

Select "Data to send" the same as the picture example.
Save the webhook in your DAM.
Security note: The webhook URL contains a unique hash. Keep this URL confidential — treat it like a password.
After completing this step, click Finish Setup to complete the onboarding.
5. Dashboard
After completing onboarding, you land on the Dashboard, which shows a real-time overview of your connector's activity.
Summary Cards
Assets Synced
Total number of asset sync operations recorded
Failed
Number of sync attempts that ended in an error
Conflicts
Assets where sync was skipped due to a conflict
Success Rate
Percentage of successful syncs
Webhooks Received
Total DAM webhook events received by this connector
Recent Activity
A live list of the last 10 webhook events, showing the file, trigger type, status, and time. Click any row to view the full execution trace.
Sync Breakdowns
Charts showing distribution by:
Direction — DAM→Shopify vs. Shopify→DAM
Target type — Media gallery vs. Metafield
Media type — Image, Video, 3D Model, etc.
Note: If the app was uninstalled from your Shopify store, a warning banner appears at the top of the dashboard. Use the Reconnect button to re-authorize via OAuth.
6. Settings
Go to Settings to adjust the connector configuration after onboarding.
General Tab
Connector Name
Display name for this connector
DAM HUB API Key
Update the DAM API key (with Test button)
Reconnect to Shopify
Re-run the OAuth flow to refresh the access token
Field Mappings Tab
Update any of the field mappings configured during onboarding:
Product SKU Field
Variant SKU Field
Preset Field
Metafield Target Field + metafield selection
Folder Structure Tab
Controls how uploaded Shopify assets are organized inside your DAM.
DAM Upload Folder
Any folder path
The root folder where Shopify→DAM assets are stored (e.g., /shopify/products)
Folder Structure
Flat
Flat: all files in one folder
On Update Policy
Keep / Replace / Replace & Delete
Controls what happens when a DAM asset is updated and pushed to Shopify again: Keep = skip if media already exists; Replace = upload new version and remove old media; Replace & Delete = replace and delete the old Shopify file from the store's file library
Webhooks Tab
Manage the Shopify webhook subscriptions that trigger Shopify→DAM sync.
PRODUCTS_CREATE
Triggered when a new product is created in Shopify
PRODUCTS_UPDATE
Triggered when a product (including its images) is updated in Shopify
For each topic, click Install to register the webhook or Uninstall to remove it.
Recommendation: Install both
PRODUCTS_CREATEandPRODUCTS_UPDATEto ensure all product image changes are automatically synced to your DAM.
7. Webhook Management
Installing Webhooks
Webhooks must be installed individually per topic. The connector registers these webhooks directly with Shopify using your access token.
Go to Settings → Webhooks.
For each topic, click Install.
A green badge confirms the webhook is active. The display shows the webhook ID and creation date.
What Happens if a Webhook Fires
When Shopify sends a webhook, the connector:
Verifies the HMAC signature using your Client Secret (rejects invalid requests).
Creates a log entry with the full payload.
Dispatches an async background job to process the sync.
Updates the log with the outcome (Success, Partial, or Failed).
App Uninstalled Webhook
An APP_UNINSTALLED webhook is automatically registered when you complete onboarding. If the Shopify app is uninstalled, the connector marks itself as disconnected and shows a banner on the Dashboard. The connector stops processing webhooks until reconnected via OAuth.
8. Sync Operations
8.1 DAM → Shopify (Automatic)
This sync is triggered automatically when a file is uploaded or metadata is changed in your DAM.
How it works:
A file in your DAM has a value in the Product SKU Field (e.g.,
product_sku = "SHIRT-001").You upload the file or change its metadata.
The DAM sends a webhook to the connector's incoming URL.
The connector:
Reads the product SKU from the asset's metadata.
Finds the matching Shopify product by SKU.
Applies the configured preset to the CDN URL (if any).
Uploads the asset to the product's media gallery.
Records the result in the webhook log.
Multiple SKUs: An asset can be synced to multiple products. Set the Product SKU Field to a comma-separated list (e.g., SHIRT-001, SHIRT-002).
Variant pinning: Set the Variant SKU Field to pin the asset to a specific variant within the product (e.g., RED-SHIRT-SM:0). The number after the colon sets the display position.
Update behavior: Controlled by the On Update Policy in Settings:
Keep— If the product already has a media item from this asset, skip the re-upload.Replace— Remove the old media item and upload the new version.Replace & Delete— Same as Replace, but also delete the old file from Shopify's file library.
8.2 Shopify → DAM (Automatic)
This sync is triggered automatically when a product's images are added or changed in Shopify.
How it works:
A product is created or updated in Shopify (with images).
Shopify sends a
PRODUCTS_CREATEorPRODUCTS_UPDATEwebhook to the connector.The connector:
Reads all media items from the product payload.
Skips images that were originally pushed from the DAM (avoids duplication).
Uploads new images to the DAM (in the configured folder + folder structure).
Tags each asset with the product's SKU metadata.
Records each asset in the mapping table.
Deduplication: The connector tracks each image by its Shopify image ID. If an image has already been synced, it is skipped on subsequent updates.
Loop prevention: The connector uses a short-lived lock to prevent a DAM→Shopify sync from triggering a Shopify→DAM sync in response (and vice versa).
9. Metafield Sync
Metafields allow you to store structured data on Shopify products beyond the default fields. The Shopify Connector can sync DAM assets directly into metafields.
Supported Metafield Types
file_reference
The asset is uploaded to Shopify's file library and the file GID is stored in the metafield
single_line_text_field
The asset's CDN URL (with preset applied) is stored as text
How to Use Metafields
During onboarding (or in Settings → Field Mappings), enable metafield sync and select the metafields you want to support.
In your DAM, set the Metafield Target Field on the asset to the metafield identifier (e.g.,
pd_custom_product_imagefor a product-level metafield, orpv_custom_variant_imagefor a variant-level metafield).When the asset is uploaded or updated, the connector automatically sets the metafield value on the correct Shopify product or variant.
Metafield identifier format:
pd_{namespace}_{key}— Product-level metafield (e.g.,pd_custom_product_image)pv_{namespace}_{key}— Variant-level metafield (e.g.,pv_custom_variant_image)
Metafield Sync Logs
Go to Settings → Metafield Logs to see the history of metafield definition syncs (the job that populates the DAM field's dropdown options from your Shopify store's metafield definitions).
10. Webhook Logs & Monitoring
Go to Logs in the navigation to view the full history of sync activity.
Tabs
Sync Logs
All DAM→Shopify sync events (one row per webhook received)
Shopify→DAM
All Shopify→DAM image import logs
Asset Mappings
All tracked DAM↔Shopify asset relationships
Sync Logs — Filters
You can filter by:
Status — Success, Partial, Failed, Pending, Processing
Search — Filter by file UUID or product SKU
Date range — Show logs from a specific time window
Auto-refresh — Enable live refresh to monitor in-progress syncs
Log Detail View
Click any log row to open the detail view, which shows:
Metadata: file UUID, trigger type (FILE_UPLOAD / FILE_CHG_META), status, timestamps
Payload: the raw webhook payload received from the DAM
Sync Results: which SKUs were synced, which failed, which preset was used, the final CDN URL
Step Trace: a step-by-step breakdown of the job execution (expand individual steps to see input/output data and timing)
Retrying Failed Syncs
If a sync failed (and it has not exceeded the retry limit), a Retry button appears on the detail page. Clicking it re-dispatches the sync job with the original webhook payload.
11. Troubleshooting
OAuth Connection Failed
Symptom: Redirect back from Shopify shows an error or redirects to an unexpected page.
Checks:
Verify the Allowed redirection URL in your Shopify app settings exactly matches the callback URL shown in the connector.
Ensure the Client ID and Client Secret were entered correctly during connector creation.
The OAuth state token is single-use. If the browser went back and retried, re-initiate the OAuth flow from the connector settings.
Assets Not Syncing to Shopify
Symptom: You upload a file to the DAM but nothing appears in Shopify.
Checks:
Verify the DAM asset has a value in the Product SKU Field.
Confirm a product with that exact SKU exists in Shopify.
Check that the DAM webhook (configured in Step 4 of onboarding) is active and pointing to the correct URL.
Go to Logs and check if a webhook log entry was created. If yes, expand the step trace to find the error.
Verify the connector's access token is still valid — go to Settings and click Reconnect to Shopify if needed.
Shopify Images Not Appearing in DAM
Symptom: You add images to a Shopify product but they do not appear in the DAM.
Checks:
Go to Settings → Webhooks and confirm that
PRODUCTS_UPDATEis installed (green status badge).Go to Logs → Shopify→DAM and check if a sync log entry was created after the product change.
If the image was originally pushed from the DAM (DAM→Shopify), it is intentionally skipped to avoid duplication.
App Uninstalled Banner
Symptom: Dashboard shows "App Uninstalled" warning.
Resolution:
Reinstall the Shopify Custom App in your Shopify Admin.
Return to the connector dashboard and click Reconnect.
Complete the OAuth flow.
The connector resumes processing once reconnected.
Metafields Not Appearing as Options
Symptom: The Metafield Target Field in the DAM does not show the expected metafield options.
Resolution:
Go to Settings → Field Mappings.
Click Load Metafields to refresh the list from Shopify.
Ensure the desired metafields are selected and click Sync Metafields to DAM.
Wait a few seconds and check Settings → Metafield Logs to confirm the sync completed successfully.
Rate Limiting
Symptom: Sync logs show errors mentioning "rate limit" or "429".
The connector automatically retries Shopify API calls up to 3 times with backoff when rate-limited. If you see persistent rate limit errors, this usually indicates very high concurrent sync volume. The connector will process the backlog automatically — no manual action is required.
For additional support, contact your Scaleflex account manager or visit the support portal.
Last updated