autodataworxAutomotive catalog integration

Documentation

User Guide.

Installing, configuring and operating automotive catalog sync for Shopify — from first install through daily catalog, fitment and order management.

For merchants
Shopify embedded app

AutoDataWorx pulls automotive aftermarket catalogs from your distributors into Shopify, keeps pricing and inventory current, and routes each order to whichever distributor can actually fill it.

This guide is for merchants. It covers installing the app, the first-run setup wizard, day-to-day operation, and what every setting does.

Before you start

You'll need three things:

  1. A Shopify store you own or have staff access to, with permission to install apps.
  2. At least one distributor account with API access: Turn 14, ASAP, or Wheel Pros. What you need is API credentials, not your web-portal login. See Chapter 2.
  3. An AutoDataWorx plan. The app uses Shopify Managed Pricing, so billing lands on your existing Shopify invoice.

The core idea

AutoDataWorx keeps a canonical catalog that's separate from your Shopify products. Distributor feeds flow into that catalog, and your settings decide what gets projected out to Shopify.

Distributors  ->  AutoDataWorx canonical catalog  ->  Your Shopify products
(Turn 14,         (correlated across sources,         (only what your filters
 ASAP,             deduplicated, ranked by             and publishing rules
 Wheel Pros)       source priority)                    allow through)

Two things follow from that, and both are worth getting straight early:

  • Nothing reaches your storefront until you allow it. Connecting a distributor publishes nothing at all. Enabling a brand starts a sync, and your publishing rules decide whether those products go live or land as drafts.
  • The same part from two distributors is one product. The app correlates identical products across sources, then uses your source-priority ranking to decide which distributor supplies the price, the inventory, and the product content.

Chapter 01

Installation

Installing AutoDataWorx takes about a minute. You'll approve a set of Shopify permissions, then pick a plan. The setup wizard starts on its own once that's done.

Open the AutoDataWorx install link while you're logged into the Shopify admin for the store you want it on.

If you run more than one store, check the store name in the top-left of the Shopify admin first. Shopify will happily install the app on whichever store you happen to be signed into.

1.2 Review and approve permissions

App permission screen
App permission screen

Shopify shows you what the app needs access to:

Permission Why AutoDataWorx needs it
View and edit store data — products, orders, Online Store, custom data To create and update the products it syncs, read orders so it can route them to a distributor, and write fitment data
View customer data To read the shipping address on an order so it can be submitted to the distributor for fulfillment
View staff and contributor data To attribute manual actions (approvals, re-routes) in the activity log

Click Install.

1.3 Choose a plan

Plan selection
Plan selection

AutoDataWorx uses Shopify Managed Pricing. Shopify bills you on your regular Shopify invoice, so you never enter card details into AutoDataWorx.

Select your plan, then confirm on the approval screen:

Approve subscription
Approve subscription

Click Approve. Shopify activates the subscription and drops you into the app.

Development stores. If you're installing on a Shopify development store, paid plans show as "Unavailable on dev stores" and can't be selected. A store needs a paid Shopify plan before it can approve a paid app subscription. Test plans, where they're offered, are marked "Free to test on this store", and regular pricing kicks in once the store goes live.

1.4 What happens next

You land on Step 1 of the setup wizard. Nothing has synced yet and no products exist — so far the app has only registered itself with your store.

Continue to Chapter 2: Setup wizard.

Troubleshooting installation

A blank screen or "page not found" after clicking the install link. You were probably signed into a different store, or into no store at all. Sign into the right Shopify admin, then reopen the install link.

The app keeps returning you to the plan-selection screen. Your subscription isn't active. Shopify blocks the app from loading until a plan is approved. Reopen the app from Apps in the Shopify admin and finish the approval. If your store is a development store, see the note in 1.3.

"No active subscription" banner inside the app. The plan was canceled, or it never activated in the first place. Go to Settings → Plan and click Open billing page to resubscribe. Syncing stays paused until there's an active plan.


Chapter 02

Setup wizard

The wizard runs once, on first open, and has six steps. It appears automatically after installation. You can leave and come back without losing anything, since progress is saved, and you can reopen it any time from Onboarding in the app's navigation.

Every step carries the same reminder:

Nothing reaches your storefront until the final step.

Take that at face value. Connecting a distributor, choosing filters, setting publishing rules — all of it happens before anything syncs. Products only start flowing when you enable a brand at Step 5.

Step Screen What you decide
1 Add your first connector Which distributor, and its credentials
2 Connect a catalog source Which source supplies product content
3 Publishing Whether products auto-publish, to which channels, at what status
4 Filters Which products are excluded, store-wide
5 Configure brands and sync Which brands sync, how often, default markup
6 Setup complete Review and finish

Step 1 — Add your first connector

Wizard step 1
Wizard step 1

Pick your distributor from the Connector dropdown. Three are supported:

Distributor Credentials required
Turn 14 Client ID and Client secret
ASAP API token (a bearer token)
Wheel Pros SFTP username and password

Selecting one reveals its credential fields.

ASAP credential form
ASAP credential form

Use API credentials, not your portal login. Every distributor issues API credentials separately from the username and password you use on their website. If you don't have them, ask your distributor account rep for API access.

Credentials are encrypted and stored in AWS Parameter Store. The app never shows them back to you: later screens display ••••• with a Reveal button that's guarded by your Shopify session.

Capabilities let you choose what this connector is allowed to provide. ASAP offers Catalog ingestion and Bulk product data sync. Turn 14 adds Inventory, Pricing, Order submission and Health check. Leave them all on unless you've got a specific reason not to; you can change this later in Settings → Connectors.

Click Connect. The app validates the credentials on the spot and shows a green check per capability. If validation fails, nothing is saved and an error tells you what went wrong.

There's also Skip for now, though no catalog can sync until you've connected at least one distributor.


Step 2 — Connect a catalog source

Wizard step 2
Wizard step 2

A catalog source supplies the product content that overlays distributor stock: fitment, descriptions, images and pricing metadata.

Pick your source from the dropdown. If you already connected it at Step 1, the app reuses those credentials and just confirms:

Catalog source connected
Catalog source connected

Both capability checks (Catalog ingestion, Bulk product data sync) need to pass. Click Continue to next step.


Step 3 — Publishing

Wizard step 3
Wizard step 3

This is where you decide whether synced products go live on their own.

Auto-publish synced products is the master switch:

  • On — products publish to the sales channels you select below as they sync.
  • Off — products still sync into Shopify but stay off every channel, so you can look them over before publishing them yourself.

Sales channels — where products appear: Online Store, Shop, Point of Sale. Select none and products won't appear anywhere.

Default product status — the status new products are created with:

  • Active — published immediately.
  • Draft — hidden until you review and set them Active.

Status and channels work independently. A product synced as Draft isn't visible to customers on any channel, no matter what your channel selection says. Only Active products are visible.

Onboarding a large catalog for the first time? A cautious combination is Auto-publish on, Online Store selected, Default status Draft. Products land in Shopify ready for review, and you publish in bulk once you're happy with them.

Click Save and continue.


Step 4 — Filters

Wizard step 4
Wizard step 4

Filters decide which products get excluded from your store. They apply to every brand you enable, and any brand can override them later from its own Filters tab.

Every filter starts off, so with none enabled you'll sync everything a brand offers. Each one has its own Enable this filter toggle, a Save filter button, and a Preview effect button that shows what the filter would exclude without actually applying it. Use Preview before you save.

There are five tabs:

Price

Price filter
Price filter

Excludes products priced outside a range. Set a minimum, a maximum, or both, and leave a field blank for no bound. Uses MAP price first, then listed price.

Inventory

Inventory filter
Inventory filter

Two independent rules:

  • Exclude zero-stock products — products with no warehouse stock get archived in Shopify.
  • Require source images — products with no images from any distributor get archived.

The fallback image you configure in Settings → Storefront & exports does not count as a source image here. It's applied after filtering.

Catalog

Catalog filter
Catalog filter

Three rules, each with a block or allow-only mode:

  • Keywords — match against Title, Description, or both.
  • Categories — block or allow specific categories.
  • Part Numbers — block or allow specific part numbers.

Enter one value per line.

Fitment

Fitment filter
Fitment filter

Restricts your catalog to specific vehicles. This is the filter most automotive merchants care about.

Set the mode to Allow only vehicles matching fitment or Block vehicles matching fitment, then build a vehicle list with the Make / Model / SubModel / Year-from / Year-to selector. Click Add for each vehicle. The fields hold onto their values so you can rattle off similar vehicles quickly (F-250, F-250 HD, F-350). Clear resets them.

  • Leave a field blank and it becomes a wildcard.
  • Leave the list empty with mode Allow and all fitment is included.
  • Include universal-fit products controls whether parts with no specific fitment (which match every vehicle) come along.

The filter also trims what publishes, not just which products publish. A part fitting both Silverado and F-150 passes a Chevrolet-only rule, because it does fit a Chevrolet. The Ford rows are then stripped from that product, so you don't get make:ford tags or Ford lines in the fitment data for a vehicle you filtered out. Universal-fit parts are exempt.

Profitability

Profitability filter
Profitability filter

Sets a minimum margin (%). Anything below the threshold gets archived.

This filter only applies to products with cost data from Turn 14. Products without cost data sit in pending status, neither archived nor published. ASAP-only products aren't affected.

Click Continue to next step.


Step 5 — Configure brands and sync

Wizard step 5
Wizard step 5

The brand list shows every brand your distributor credentials entitle you to. Tabs across the top narrow it down: All, Syncing, Not syncing, Pending first sync.

For each brand you can set:

Column Meaning
Sync The master on/off for this brand. Turning it on starts the first import.
Ignore inventory Inherit / On / Off — when On, products are never archived for zero stock
Auto-publish Inherit / On / Off — overrides the store-wide setting from Step 3
Status Current sync state

Inherit means "follow the store-wide default", which is almost always what you want until you have a reason to differ.

Brand enabled
Brand enabled

Below the list:

  • Sync cadence — how often the app re-checks your distributors. You can pick every 1, 4, 12 or 24 hours; every 4 hours is recommended. It applies to all sources, and you can override it per source afterwards.
  • Default markup over cost (%) — used only when both MAP and MSRP are missing. When pricing data exists, the app always follows the MAP → MSRP → markup-over-cost cascade.

Start with one small brand. Enable a large brand as your first sync and you'll wait a long time before finding out whether your settings were right. Turn on one modest brand, check the products look correct in Shopify, then enable the rest.

Click Save & continue (or Skip — configure brands later).


Step 6 — Setup complete

Wizard step 6
Wizard step 6

The app confirms how many brands are ready to sync. Enabling a brand kicks off its first import right away, and later syncs follow the cadence you chose.

Click Go to dashboard.


Verifying the first sync

Within a few minutes the dashboard shows products live:

Dashboard after first sync
Dashboard after first sync

And the products turn up in Shopify with images, prices, categories, product types and your brand as the Vendor:

Products in Shopify
Products in Shopify

If nothing's appeared after ten minutes or so, head to Chapter 5: Troubleshooting.


Chapter 03

Daily operation

Once setup is done, AutoDataWorx mostly runs itself. This chapter covers the screens you'll actually use.

The app's navigation has six entries: Home, Brands, Orders, Activity, Settings, and Onboarding.


3.1 Home

Dashboard
Dashboard

Four tiles summarize the state of your catalog:

Tile What it tells you
Products live How many products are currently projected to Shopify, and from how many sources
Brands enabled How many brands are syncing, out of those available to you
Sync health Healthy or an error count, plus your sync cadence
Needs attention Items requiring a decision from you — normally zero

Needs your attention lists anything the app couldn't resolve on its own. An empty list means everything is being handled automatically.

Catalog by source breaks the catalog down per distributor, with the last sync time and status for each.

The app version sits at the bottom of the page. Quote it when you contact support.


3.2 Brands

Brand list
Brand list

The full brand list, with the same controls as wizard Step 5: Sync, Ignore inventory, Auto-publish and Status. The tabs narrow it to Syncing, Not syncing, or Pending first sync.

This is where you turn brands on and off as your distributor agreements change.

Per-brand settings

Click any brand name to open its detail page.

Brand detail
Brand detail

The Overview tab shows how many canonical products the brand contributes and which sources cover it. Four more tabs configure the brand on its own, overriding your store-wide defaults for this brand only.

Fulfillment

Brand fulfillment
Brand fulfillment

Controls which distributor fills orders for this brand:

  • Stock threshold — skip a source as a fulfillment candidate when its stock falls below a minimum. Bear in mind stock data can be up to four hours old. Ignore stock for this rule considers sources regardless of stock, which is useful when a distributor's stock data isn't trustworthy.
  • Brand override — force a specific source for this brand and bypass the normal chain. Use it when you've got an exclusive arrangement with a distributor.
  • Source exclusion — never consider a given source for fulfillment, while still letting its catalog data sync.
  • Cost — once every elimination rule has run, whatever sources survive get sorted by wholesale cost, lowest first. Always on, nothing to configure.

Filters

Brand filters
Brand filters

The same five filter tabs as the global settings, scoped to this brand. Anything you leave unset inherits the global default, and Reset to global defaults clears your overrides.

Apply — re-sync <brand> re-evaluates every product in the brand against the current filters. Products that no longer pass get archived. Save your changes first, then apply.

Below the filters, Browse products lists the brand's canonical products with SKU, title and source, searchable by SKU or title. Click any row to edit that product's fitment.

Inventory

Brand inventory
Brand inventory

Ignore inventory for this brand — when On, the brand's products are never archived for zero stock, whatever your store-wide default says. Inherit follows the store default.

Publishing

Brand publishing
Brand publishing

Auto-publish for this brand — when On, newly projected products for this brand publish to your active sales channels automatically. When Off they land as drafts. Inherit follows the store default.


3.3 Per-product fitment

From a brand's Filters tab, click a product row to open its fitment editor.

Fitment editor
Fitment editor

Manual fitment lets you add year-make-model rows by hand. Fitment that came from the distributor shows up in the preview pane and gets merged with your manual rows at sync time, so adding manual fitment never throws away the distributor's data.

The Preview pane reproduces exactly what the sync will publish, in order: your merged rows, minus anything your fitment filter excludes, then the entry and tag caps from Settings → Product filters. It shows:

  • how many rows will result (N merged rows (N auto + N manual))
  • how many rows each step removed — filtered out, over the entry cap, over the tag cap — and what will actually publish after all three
  • the adw.fitment YAML that will be written to the product metafield
  • the derived tags applied to the Shopify product (for example universal-fit)

Rows outside your fitment filter are never silently dropped. Each one is flagged with a Filtered out badge, and a banner tells you how many there are and where to widen the filter if you want them published.

Filtered rows are still saved — they just don't publish. Widen the fitment filter (globally, or on this brand) and they start publishing with no re-entry needed. Universal-fit products skip the filter entirely.

Reach for this when a distributor's fitment data is missing or wrong on a specific part, or when you want to see why a vehicle you expected isn't appearing on the storefront.


3.4 Activity

Activity
Activity

Three views: Sync activity, Discontinued, and Activity log.

Recent sync runs lists each run with its timestamp, outcome, trigger and counts. For example:

Aug 2, 2026, 5:44 PM — completed (manual.brand-enable) — 22 processed, 0 errored

The trigger tells you why a run happened: a scheduled sync, a brand being enabled (manual.brand-enable), or a manual re-sync.

Re-sync to Shopify pushes your products to Shopify again from the latest catalog. It's rate-limited to once every few minutes per source.

Re-sync re-projects existing catalog data. It doesn't re-fetch from the distributor. Fresh distributor data arrives on your sync cadence, or when you enable a brand that hasn't been imported before.


3.5 Orders

Orders
Orders

The Orders screen lists only orders that need you. An empty screen is the normal, healthy state, and means everything else was routed and submitted automatically.

An order shows up here when it:

  • exhausts the preference chain (no source could fill it)
  • hits a fatal distributor failure
  • has a missing recipient phone number
  • can't be classified to a shipping method
  • is held pending regulatory-attestation consent

For each one you can approve it, re-route it to a different source, adjust quantities, or verify it.

Unpaid and pending-payment orders are never auto-submitted. They wait for your explicit approval.

If you'd rather look over every order before it goes to a distributor, turn on Manual order processing in Settings → Orders. See Chapter 4.


Chapter 04

Settings reference

Settings is organized into nine sections in a left-hand sidebar, grouped under Sources and Products.

Settings
Settings
Group Section
Sources Connectors, Source priority, Variant strategy
Products Publishing, Product filters, Catalog, Orders, Storefront & exports, Plan

4.1 Connectors

Connectors
Connectors

Manage your distributor connections here. Each connected source shows a health status and its stored credentials as •••••, with Reveal and Update buttons.

Per connector you can:

  • Disable — stop using the connector without deleting it.
  • Remove — disconnect entirely.
  • Refresh entitlements — re-read your brand access list from the distributor. Run this whenever your distributor grants you new brands.
  • Capabilities — toggle which data types this connector provides. Disabling a capability pulls the source out of the priority chain for that data type.

Capabilities vary by distributor. ASAP provides Catalog and Product content. Turn 14 provides Catalog, Health check, Inventory, Order submission, Pricing and Product content.

Turn 14 also has an Environment switch (Testing / Production). Switching is config-only, and your existing catalog data is left alone.

Connectors you haven't set up yet show their credential fields inline, so you can add a second or third distributor whenever you want.


4.2 Source priority

Source priority
Source priority

When more than one distributor carries the same part, this decides who wins, and it decides separately for each type of data. Sources are tried in order: rank 1 preferred, rank 2 the fallback. Reorder with Up / Down, then Save.

Priority is set independently for Catalog data, Pricing, Inventory and other data types, so you can take content from one distributor and pricing from another.

New brand discovery

Each source has an Auto-enable new brands switch. Turn it on and newly discovered brands from that source join your catalog automatically.

We'd recommend on for ASAP, since it's access-gated and you only ever see brands you're entitled to, and off for Turn 14, whose catalog is unrestricted — auto-enabling there would flood your storefront.


4.3 Variant strategy

Variant strategy
Variant strategy

Controls how products with multiple variants get built in Shopify.

Projection strategy:

  • Auto (default) — Strategy A on supported themes, Strategy C otherwise.
  • Force Strategy A — multi-variant projection. Only force this if you've confirmed your theme supports per-variant content swaps.
  • Force Strategy C — one product per SKU. The safe fallback.

Regroup policy — currently manual. When a variant group changes upstream (a SKU added or removed), the app logs the change and pauses that projection so customer carts and orders pinned to existing variants stay valid.


4.4 Publishing

The same controls as wizard Step 3: Auto-publish, Sales channels, and Default product status. See Chapter 2, Step 3.

There's one addition here:

Apply — re-publish all products re-publishes your existing catalog to the updated channel selection and applies the default status across all brands. It runs in the background and can take several minutes. Change your settings first, then apply.


4.5 Product filters

Product filters
Product filters

The store-wide defaults for all five filter families: Price, Inventory, Catalog, Fitment, Profitability. They're documented in detail in Chapter 2, Step 4.

Any brand can override these from its own Filters tab.

Apply — re-sync all brands re-evaluates your entire catalog against the current filters. Products that no longer pass get archived. Save first, then apply; it can take several minutes.

Fitment limits

Below the filter tabs, Fitment limits caps what a single product publishes. It sits next to the Fitment filter because the two compose: the filter decides which vehicles publish, these decide how many. Vehicles your filter excludes are stripped first, so both budgets are spent only on vehicles you actually sell for.

The two limits are independent and govern different things.

Maximum fitment entries per product — default 200, up to 800. Entries are counted per model year, so one "2000–2024 Ford F-150" application is 25 entries, not one. This controls the size of the fitment data attached to the product. Raising it makes that data larger and can break product-CSV export and re-import in Excel, which caps a single cell at 32,767 characters.

Maximum fitment tags per product — default 50, up to 250. This counts distinct make: and model: tags rather than model years, so a part fitting 25 years of one truck is 2 tags. Near-universal parts can otherwise emit hundreds, which crowds your collection rules and runs into Shopify's hard 250-tag ceiling.

Row depth and tag breadth are only loosely related, which is why these are two knobs rather than one. A gauge fitting 12,000 rows might be 400-plus tags, while a legitimate air spring fitting 2,300 rows is only ~53 real make/model combinations and deserves to keep them.

Products that hit either cap still publish — they publish trimmed. The per-product fitment editor shows exactly what each limit removed (Chapter 3).


4.6 Catalog

Catalog settings
Catalog settings

Ignore inventory by default — when enabled, synced products keep selling even when they're out of stock. Individual brands can override it.

Excluded productsDownload exclusions (CSV) gives you every product currently excluded by your filters, identified by brand and manufacturer part number, with the filter reason, outcome and date.

This is the fastest way to answer "why didn't this product load?".


4.7 Orders

Order settings
Order settings

Manual order processing:

  • On — incoming orders wait for your approval before submission. You see the chain-chosen source and cost, and can approve or re-route from the Orders screen.
  • Off (default) — orders are submitted automatically once evaluated.

The banner tells you which mode is active. Either way, the change applies to new orders only, so anything already in flight carries on as it was.


4.8 Storefront & exports

Storefront and exports
Storefront and exports

Storefront app block — the ADW Variant Content block keeps the product page title and description in sync with the selected variant, on products this app manages. Add the block in the theme editor opens your current theme with the block pre-selected; click Save in the editor to apply it.

If you'd rather do it by hand: Online Store → Themes → Customize → open a product template → Apps → add ADW Variant Content. The block only renders on app-managed products, so it's safe on mixed catalogs.

Fitment export (EasySearch)Download fitment (EasySearch CSV) exports Year/Make/Model/Submodel fitment for the Shopify Year Make Model — EasySearch app. Import it under the app's Database tab with "Look for SKUs in .CSV file" checked, and set your EasySearch Form Editor column order to Year / Make / Model / Submodel.

Universal-fit products and products without vehicle fitment don't make it into the export, since they have no specific vehicle rows.

Fallback image — upload an "image coming soon" picture for products with no image on any source. Note that it doesn't satisfy the Require source images filter, which runs first.


4.9 Plan

Plan
Plan

Shows your current plan, its status, and when it was last checked.

Open billing page takes you to Shopify's billing screen to subscribe, change plan, or update payment details. AutoDataWorx uses Shopify Managed Pricing, so every billing change happens on Shopify's side.


Chapter 05

Troubleshooting

Problems are grouped by what you're seeing. Start with the symptom.


Installation and access

The app opens on the plan screen and will not go further

Your subscription isn't active. Shopify blocks the app until a plan is approved. Reopen the app from Apps in the Shopify admin and approve one.

On a development store, paid plans show as "Unavailable on dev stores" and can't be selected. A store needs a paid Shopify plan before it can approve a paid app subscription.

"No active subscription" banner, and nothing syncs

Syncing pauses whenever there's no active plan. Go to Settings → Plan → Open billing page and resubscribe. Syncing picks up again on its own once the plan is active.

Blank screen or "page not found" from the install link

You were signed into a different store, or none at all. Sign into the right Shopify admin and reopen the link. If something still looks off, clear your browser cache.


Credentials and connectors

"We couldn't save your credentials"

Nearly always the wrong credential type. Distributors issue API credentials separately from the login you use on their website:

Distributor Needs
Turn 14 Client ID + Client secret
ASAP API token (bearer token)
Wheel Pros SFTP username + password

If you don't have API credentials, ask your distributor account rep. The app validates on save, so credentials never end up stored in a broken state.

A brand I am entitled to does not appear in the list

Your entitlement list is cached from the last time the app read it. Go to Settings → Connectors and click Refresh entitlements on that connector.

Turn 14 connected but no pricing appears

Check the Environment switch on the Turn 14 connector in Settings → Connectors. The Testing environment is a sandbox and its data is patchy, with some brands carrying no pricing at all. Switch to Production for live data.


Products not appearing

Work down this list in order.

1. Is the brand actually syncing? Brands → check the brand's Sync switch is on and its status isn't Not syncing.

2. Has the first sync run? ActivityRecent sync runs. Enabling a brand triggers an import right away (logged as manual.brand-enable). No run listed means the brand was never enabled successfully.

3. Were the products filtered out? This is the most common cause by far. Go to Settings → Catalog → Download exclusions (CSV). It lists every excluded product with the filter reason and date.

4. Are they in Shopify as drafts? If Default product status is Draft, products sync but stay hidden. Check Shopify's Products list with the Draft filter. Change the default in Settings → Publishing, then use Apply — re-publish all products.

5. Are they published to a channel? If Auto-publish is off, or no sales channels are selected, products exist but show up nowhere. Both settings live in Settings → Publishing.

Products synced but have no price

Pricing follows the MAP → MSRP → markup-over-cost cascade. A product with none of those can't be priced. Check that:

  • a source providing the Pricing capability is connected and ranked in Settings → Source priority
  • Default markup over cost (%) is set, since it's the last resort in the cascade

Products synced but have no images

Some distributor brands genuinely ship zero images, and that's not a bug. Either enable Require source images in Settings → Product filters → Inventory to exclude them, or set a Fallback image in Settings → Storefront & exports.

Margin filter is holding products in "pending"

The Profitability filter needs cost data from Turn 14. Products without it sit in pending, neither archived nor published. ASAP-only products aren't affected by this filter.


Sync behavior

How do I force a fresh import from the distributor?

Mostly you can't, and mostly you shouldn't need to. Distributor data is re-fetched on your sync cadence (Settings, set during wizard Step 5), and whenever you enable a brand that's never been imported.

Re-sync to Shopify on the Activity screen re-projects the catalog the app already holds; it doesn't re-fetch from the distributor. Use it after changing publishing or filter settings.

A sync run shows errors

Open ActivityRecent sync runs for the error count per run, and the Activity log view for the detail. Transient distributor timeouts get retried automatically. Persistent errors on one source usually mean expired credentials, so check the connector's health in Settings → Connectors.

Changing a filter did not remove existing products

Saving a filter changes it for future syncs only. To apply it to what's already in your store, use Apply — re-sync all brands (Settings → Product filters) or Apply — re-sync <brand> on a single brand's Filters tab. Both run in the background and can take several minutes.


Orders

An order is sitting on the Orders screen

That screen only shows orders that need a decision. The reason will be one of:

  • the preference chain was exhausted, so no source could fill it
  • a fatal distributor failure
  • a missing recipient phone number
  • it couldn't be classified to a shipping method
  • it's held pending regulatory-attestation consent

Approve it, re-route it to a different source, or adjust quantities from the order.

Orders are not being submitted at all

Check Settings → Orders. If Manual order processing is on, every order waits for your approval by design.

Also worth remembering: unpaid or pending-payment orders are never auto-submitted. They always hold.

An order went to the wrong distributor

Fulfillment is decided in this order: stock threshold, brand override, source exclusion, then lowest wholesale cost. To pin a brand to one distributor, use Brand override on that brand's Fulfillment tab.


Fitment

A product has wrong or missing vehicle fitment

Open the brand → Filters tab → click the product row, then add manual year-make-model rows. Manual fitment is merged with the distributor's data rather than replacing it.

A vehicle the part fits isn't showing on the storefront

Open the product's fitment editor and read the Preview pane — it itemizes every step that dropped rows. There are three possibilities:

  1. Excluded by your fitment filter. The row carries a Filtered out badge. Your filter trims out-of-filter vehicles off a product even when the product itself passes, so a Chevrolet-only rule strips the Ford rows from a part that fits both. Widen the filter in Settings → Product filters, or on the brand.
  2. Over the entry cap. Maximum fitment entries per product (default 200) bounds the fitment data. Remember entries count per model year, so one "2000–2024 Ford F-150" application spends 25 of them.
  3. Over the tag cap. Maximum fitment tags per product (default 50) bounds the distinct make:/model: tags, which is what collection rules match on. A part can therefore carry correct fitment data while not surfacing in a collection.

Raise the relevant limit in Settings → Product filters → Fitment limits. Both are documented in Chapter 4.

A Turn 14 product shows no fitment in the editor

Fixed on 2026-08-03. The editor derived fitment from the raw product payload, but Turn 14 delivers pre-resolved fitment separately, so Turn 14 products reported zero rows here while the sync published hundreds. The editor now reads that data. If you still see zero rows on a Turn 14 product, the distributor genuinely has no fitment for that part.

Fitment is not showing on my storefront

Fitment is written to the adw.fitment product metafield and as derived tags. Displaying it takes either a theme that reads the metafield, or the EasySearch integration — export via Settings → Storefront & exports → Download fitment (EasySearch CSV).

Universal-fit products and products with no vehicle fitment are left out of that export, because they have no specific vehicle rows.

Variant content does not change when a customer picks a variant

Add the ADW Variant Content block to your product template: Settings → Storefront & exports → Add the block in the theme editor, then Save in the theme editor.


Getting help

When you contact support, include:

  • your store domain
  • the app version from the bottom of the Home page
  • the timestamp of the relevant run from Activity
  • the exclusions CSV, if the question is "why isn't this product here?"