Paste the address. Nothing to install, nothing to export.
Shopify publishes every store's catalog behind the store itself, and Ducted reads it from the address alone - the whole store, or a single collection when that is what you own. No app to install, no API key, no export to schedule: the products are ready to map as soon as the address resolves.
Shopify's channel apps sync a store to a platform, which is fine when the store is yours. Plenty of catalogs are not: a creator whose merch lives as a collection on a shared retailer's store cannot install anything there, and an agency running feeds for several stores does not want an app per store per channel.
Ducted reads the catalog from the address instead. Nobody installs anything, nobody produces a file, and a product that sells out is marked out of stock on the next refresh.
A collection address reads that collection only. Creator stores such as Crowdmade, DFTBA or Fanjoy publish each creator's merch as a collection on one shared store, so a creator pastes their collection address and gets their own catalog - not the whole retailer's - and every refresh stays inside it.
Paste the store address instead and the whole catalog comes through. Either way the source is set once; Ducted reads every page of it on each refresh.
The catalog arrives as structured records, not page text. Every variant carries the fields a shopping feed actually needs.
Every size and colour arrives as its own record, grouped under its product - the shape Google Shopping requires for apparel. Each carries its own price, stock and SKU, its own image when the store sets one, and a link that opens the product page on that variant. A variant on sale carries both prices: the compare-at price as the regular price and the price the store charges as the sale price, the pair Google Shopping and Meta expect.
The fields arrive pre-marked, so a new project maps itself: create a Google Shopping or Meta catalog feed and id, title, description, link, images, price, sale price, availability, brand, colour and size are filled in before you touch anything, with item group matched by name.
GTINs are not in what Shopify publishes, so a channel that wants one gets it from a second source with Feed Mixer, or you let the brand and SKU stand in where the channel allows it.
Ducted re-reads the store on every scheduled refresh, so new products appear, a sold-out size switches to out of stock and a sale shows both prices without anyone touching the feed. The shape of the data is checked on every refresh as well: if Shopify changes what it publishes, Ducted tells you rather than quietly serving an empty feed.
One mapped catalog, one output feed per channel. Each template carries that platform's required fields, accepted values and format rules.
Create a free account and paste the store or collection address, or validate a product feed you already run.