
Awin feed for Shopify
Awin is a global affiliate network: nobody buys from Awin. Cashback sites, content publishers and CSS partners pick up your products and promote them for a commission, and your whole product supply is one CSV file. Feedflock turns your Shopify catalog into exactly that file, with Awin's own column names so the mapping step completes itself, and keeps it current on a stable URL that Awin fetches on a schedule of up to four times a day.

Two reference prices, and Awin wants both.
Awin keeps two columns for the price before the discount: rrp_price for the recommended retail price and product_price_old for the original price, which Awin says stays empty when it is not above the current price. Its own note is "whenever possible, use also: rrp_price". Send both. Feedflock fills the pair from your compare-at price and leaves it empty when the product is not on sale, so price always carries the price you actually charge.
Catch feed issues before Awin does.
Before every generation Feedflock checks that every field the channel requires is filled, and, on templates verified against the channel's own spec, that the values fit its rules. Most problems are fixed with one click, without editing products in Shopify.
Setup
Live in five steps
From a bare Shopify store to a listed offer: the whole setup fits into one coffee break.
Join Awin as an advertiser
Open an advertiser programme with Awin. The programme (and its commission groups) is what publishers sign up to; the product CSV becomes one of the ways they can promote you.
Install Feedflock
Add Feedflock from the Shopify App Store. It reads your products, variants, stock and images directly through the Shopify API.
Pick the Awin template
Create a new feed and choose Awin. All 30 columns come from Awin's own column reference and the header row is spelled Awin's way, so Awin's automatic column mapping completes the setup screen for you: one row per variant, prices as bare dot-decimal numbers.
Fill what only you can decide
delivery_cost and delivery_time ship unmapped on purpose, since a 0.00 would tell every publisher the catalogue ships free. Set a flat cost and an honest lead time if you want them, and pick the language and condition values.
Add the feed in Awin and map categories
In Toolbox → My Product Feeds, add a feed over HTTP(S) and paste the hosted URL: file type CSV, comma delimiter, first line is the header, a schedule of up to four fetches a day. Then map your merchant_category strings to the Awin Category Tree in the UI: until you do, the feed health stays amber.
https://feedflock.appfleece.com/f/demo-awin/awin.csv
The feed
What the channel receives
product_id,product_name,description,deep_link,image_url,price,currency,brand_name,merchant_category,merchant_product_category_path,ean,mpn,in_stock,colour,size,condition,rrp_price,parent_product_id 46012345678901,"Linen shirt Sand","Breathable linen shirt with a relaxed regular fit, cut from washed European linen.",https://shop.example/products/linen-shirt-sand?variant=46012345678901,https://cdn.shop.example/img/linen-shirt-sand.jpg,49.00,EUR,Nordlin,Shirts,Apparel > Clothing > Shirts,8594000123453,NL-SND-M,1,Sand,M,New,,8236409175213 46012345678902,"Linen shirt Sand","Breathable linen shirt with a relaxed regular fit, cut from washed European linen.",https://shop.example/products/linen-shirt-sand?variant=46012345678902,https://cdn.shop.example/img/linen-shirt-sand.jpg,49.00,EUR,Nordlin,Shirts,Apparel > Clothing > Shirts,8594000123460,NL-SND-L,1,Sand,L,New,,8236409175213

Nordlin
Linen shirt Sand
49 €
Feed fields
product_id
46012345678901
product_name
Linen shirt Sand
description
Breathable linen shirt with a relaxed regular fit, cut from washed European linen.
deep_link
https://shop.example/products/linen-shirt-sand?variant=46012345678901
price
49.00
currency
EUR
brand_name
Nordlin
merchant_category
Shirts
merchant_product_category_path
Apparel > Clothing > Shirts
ean
8594000123453
mpn
NL-SND-M
in_stock
1
colour
Sand
size
M
condition
New
parent_product_id
8236409175213
The channel
Publishers sell for you
Awin is an affiliate network: cashback sites, content sites and Google CSS partners pick up your product data and send you traffic for a commission. The CSV is how your catalogue reaches them: Awin takes the file, assigns each row its own awID and republishes the result to publishers.
Tracking you never have to maintain
The deep_link column stays plain: no affiliate parameters, no tracking glue. Awin builds the tracked publisher deeplink itself from the awID, so there is nothing to update when campaigns or publishers change.
One format, every market
Awin is one global network with one standard feed format; the country sites are the same platform and the same columns, with currency and language per feed. Ten feeds per programme leave room for every market and currency you sell in.
The feed
- A header row spelled exactly as Awin's own column reference (product_id, product_name, deep_link and the rest), so Awin's automatic column mapping completes the upload screen for you
- Comma delimiter with double-quote enclosure and doubled embedded quotes, UTF-8, one row per variant, exactly the structure Awin's spec requires, with XML deliberately avoided ("whenever possible, please prefer a CSV file")
- All 30 columns from Awin's column reference. An invented column name would be dropped in silence, which is why the template sticks to the published list
- Prices as bare dot-decimal numbers with the ISO currency in its own column, and rrp_price / product_price_old filled from your compare-at price only when the product is actually on sale
- deep_link plain and pinned to the variant, no tracking parameters, because Awin assigns each row its awID and builds the affiliate deeplink itself
- in_stock as 1/0 derived from Shopify availability, avoiding the trap where a blank column reads as out of stock and a stray word publishes sold-out rows as available
- product_id on the Shopify variant id, unique and stable: a changed id orphans every link a publisher already placed, and a duplicate keeps only the first row
- Fetch tracking shows when the feed was last downloaded and alerts you if the fetches stop, since a failed scheduled feed is unscheduled by Awin automatically
Deep dive
A CSV, exactly as Awin describes it
- Flat
CSV,UTF-8 (ZIPorGZIPaccepted); comma, semi-colon, pipe and tab are the accepted delimiters - Any field containing the delimiter or a double-quote is wrapped in double quotes, embedded quotes doubled
- A header row of Awin's own column names triggers automatic column mapping on upload
XMLis still documented (DTD1.4), but Awin's advice is "whenever possible, please prefer aCSVfile"
Technical details
Awin's product feed feature accepts one file format, CSV, where "CSV" means delimited text with a choice of comma, semi-colon, pipe or tab. The quoting rule is explicit: a field containing the delimiter must be enclosed by double quotes, and a field containing double quotes must have them doubled. The exporter does exactly this, so a comma in a description never breaks a row, and the file goes out in UTF-8 as Awin asks.
The header row is optional but rewarded: when your column titles match Awin's platform names, automatic mapping of the columns completes the setup for you. That sentence is the reason the template's headers are spelled Awin's way, column for column. Get them right and you never see the mapping screen. An XML form is still documented with a DTD, but Awin's own advice is to prefer CSV as less error-prone.
What happens after you paste the URL
- Awin retrieves the feed over
HTTP(S),FTPorSFTP(with optional credentials), or you upload the file manually - The schedule is daily (up to four times a day) or weekly; Awin recommends an update at least every 24 hours
- The server must answer within a ten-minute timeout; caps are 10 feeds per programme and one million products per feed
- A failed scheduled feed is unscheduled automatically, so one bad fetch can silently stop all future ones
Technical details
A hosted HTTPS URL is Awin's first-listed ingestion method: it downloads the file, samples the headers, scans for errors like delimiters and incorrectly formatted data, runs the column mapping (skipped when the headers already match) and then waits for the one thing a file cannot do: the category mapping in the UI. A first upload is a setup session, not a fire-and-forget URL.
After that, Awin fetches on your schedule of up to four times a day, recommending an update at least every 24 hours because conversion drops when a listed price no longer matches the site. Two things deserve attention: the fetch has a ten-minute timeout, and a scheduled feed that errors is unscheduled automatically. Feedflock's hourly regeneration keeps the file current, and its fetch tracking tells you the moment the downloads stop.
Categories live in the UI, not in the file
- There is no published Awin category tree to put in the feed: merchant_category is your own free text
- After the first upload you map your strings to the Awin Category Tree in Toolbox → My Product Feeds
- An unmapped merchant_category is one of the four named amber feed-health errors
- Until the mapping is done, the feed is amber and those products are not fully usable by publishers
Technical details
Unlike a comparison site, Awin publishes no category tree for you to adopt. merchant_category and merchant_product_category_path carry your own words (the Shopify product type and a breadcrumb like "Apparel > Clothing > Shirts"), and Awin's system attempts to map them to its internal tree automatically. Due to the number of different category structures, that is not always possible.
What is left unmapped becomes a UI task: you finish the mapping in Toolbox → My Product Feeds, and until you do, the feed health is amber with a named error. Feedflock fills both columns from your product types so the auto-mapping has clean, consistent strings to work with, but the final click in the Awin interface is one only you can make.
Prices, barcodes and the things nobody validates
- price is "a number": dot decimal, no symbol, no thousands separator; the currency sits in its own column
- Awin never states whether the price is gross or net, so your price column carries what your shop charges
- Awin validates no barcode: "We do not validate the
EAN" applies equally toGTIN,UPCandISBN, so a typo passes - A duplicate product_id keeps the first row and ignores the rest; a changed id orphans placed publisher links
Technical details
The price column is deliberately simple: a bare number like 110.00 or 6.88, with the three-letter ISO code in the currency column (blank falls back to the programme currency). One thing Awin never says, on any page, is whether the price is gross or net. The column carries whatever your shop charges, so keep it consistent with the prices publishers will quote.
Just as striking is what Awin does not check. EAN, GTIN, UPC and ISBN are all accepted with "we do not validate" attached, so a mistyped barcode is neither an error nor a warning, and nothing will tell you. And identity is unforgiving in the other direction: product_id is the key Awin builds its awID and affiliate deeplinks on, a duplicate keeps only the first row, and changing an id orphans every link a publisher already placed. Feedflock keeps the id on the Shopify variant id, which never changes and is never reused.
The takeaway
One URL, an hourly refresh and a CSV that follows Awin's column reference name for name: automatic mapping on upload, plain deep links Awin wraps with tracking, and the 1/0 availability that keeps your catalogue visible. Your Shopify catalog stays the single source of truth for every publisher in the network.
Claude · ChatGPT
Or set up your Awin feed in chat
Connect Feedflock to Claude or ChatGPT and ask. It creates the feed as a draft, maps your categories to Awin's own tree and tells you what is still missing. You approve every change.
Create a Awin feed for my store and map my categories.
I'll create it as a draft and show you each change before I make it.
FAQ
Related feeds
Explore all 101 channelsGet on every marketplace that matters this afternoon.
Install free, connect your first feed in minutes, and let Feedflock keep it fresh and validated.