Skip to content
Awin
Ad platforms

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.

01 · ShopifyProduct in the catalog
Linen shirt SandNordlin · Men's shirtsSKU-2048 · S–XL
Price
49 €
In stock
0 pcs
When out of stock
02 · awin.csvUpdated just now
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,49.00,49.00,EUR,Nordlin,Shirts,Apparel > Clothing > Shirts,8594000123453,0,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,49.00,49.00,EUR,Nordlin,Shirts,Apparel > Clothing > Shirts,8594000123460,0,1,Sand,L,New,,8236409175213
−20% off compare-at
Productrrp_​priceprice
Linen shirt Sand49.00 €39.20 €
Mug Fjord 350 ml15.00 €12.00 €
Backpack Ridge 28 l89.00 €71.20 €
Soy candle Les19.00 €15.20 €
Wool scarf Fjell39.00 €31.20 €
42.20 €saved across these products
5 / 5products with a reference price
Sale prices

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.

Feed health

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.

Feed quality · awin.csv
76 / 100
To review: 4
in_stock left blank on the whole feedAwin reads a blank in_stock as NO stock ("Leaving the field blank will also assume there is no stock"), so an unmapped availability column hides the entire catalogue.
Empty merchant_category on 14 productsThe advertiser FAQ lists Merchant category among the mandatory fields, and "the merchant_category column is unmapped or missing" is one of the four named amber feed-health errors.
Empty description on 6 productsdescription is required and Awin's advice is to strip HTML to plain text. Missing descriptions are another of the four amber feed-health errors, and these products have none in Shopify.
No image on 4 productsimage_url is required in the template deliberately: a row with no image is a row no content publisher will place, and the merchant-facing FAQ lists Image URL as mandatory.

Setup

Live in five steps

From a bare Shopify store to a listed offer: the whole setup fits into one coffee break.

  1. 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.

  2. Install Feedflock

    Add Feedflock from the Shopify App Store. It reads your products, variants, stock and images directly through the Shopify API.

  3. 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.

  4. 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.

  5. 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

awin.csv
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
Live preview
Linen shirt Sand

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

01

A CSV, exactly as Awin describes it

  • Flat CSV, UTF-8 (ZIP or GZIP accepted); 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
  • XML is still documented (DTD 1.4), but Awin's advice is "whenever possible, please prefer a CSV file"
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.

02

What happens after you paste the URL

  • Awin retrieves the feed over HTTP(S), FTP or SFTP (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.

03

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.

04

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 to GTIN, UPC and ISBN, 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.

feedflock · mcp

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

CSV. Awin still documents an XML form with a DTD, but its own advice is "whenever possible, please prefer a CSV file", and the feed feature is built around delimited text: comma, semi-colon, pipe or tab, UTF-8, optionally ZIP or GZIP. Feedflock emits comma-separated CSV with the quoting Awin's spec requires.
Because feed health is a UI status, not an HTTP response. The most common cause after a successful upload is category mapping: your merchant_category strings must be mapped to the Awin Category Tree in Toolbox → My Product Feeds, and until they are, the feed stays amber. Rows with bad required values become "failed products" listed in a downloadable error file, while the rest of the feed imports without telling you.
Because tracking is Awin's job. Awin assigns each product_id its own awID and builds the tracked affiliate deeplink for publishers from it. Your deep_link is the plain product URL; UTM parameters for your own analytics are optional, not required, and add nothing but maintenance when campaigns change.
No. Awin states plainly that it does not validate the EAN, the GTIN, the UPC or the ISBN, and there is not even an implied length. A wrong barcode passes silently, so the check has to happen on your side. Feedflock fills the columns from the Shopify barcode and reports implausible values before the feed ships.
Up to 10 feeds per programme and one million products per feed, with a ten-minute timeout on each fetch. The schedule is daily (up to four times a day) or weekly, and Awin recommends updating at least every 24 hours. A feed left untouched for three years is scheduled for automatic deletion.
Awin keeps the first row and ignores every later one, even if the rest of the details differ. And because each product_id gets its own awID used in the affiliate deeplinks, changing an id orphans every link a publisher already placed. Feedflock uses the Shopify variant id, which is unique per row and never changes.
Yes. Filter by collection, tag, vendor, price or stock level, or leave out individual variants. The CSV is one row per variant, so excluding a size or colour removes exactly that row; sold-out variants can either leave the feed or stay in it flagged in_stock = 0.

Get on every marketplace that matters this afternoon.

Install free, connect your first feed in minutes, and let Feedflock keep it fresh and validated.

.myshopify.com