
Kwanko feed for Shopify
Kwanko (the French affiliate network formerly known as NetAffiliation) lets publishers promote your products for a commission, and the whole product supply is one feed your account manager registers and a robot re-downloads from your URL. Feedflock turns your Shopify catalog into exactly that file: comma-separated and quoted, prices with the ISO currency inside the value, one row per variant. It keeps the file current on a stable URL, regenerated as often as every hour.

A crossed price that is mandatory, and still often empty.
Kwanko's spec makes crossed_price mandatory even though it is a pre-discount reference: "the product excluding rebate / promotion / sale". The honest reading: fill it from your compare-at price when a product is on sale, and leave it empty when it is not, because an always-filled crossed price invents a permanent discount. Feedflock maps exactly that, so price always carries the price you actually charge, currency included.
Catch feed issues before Kwanko 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 Kwanko as an advertiser
Register your partner program with Kwanko (the former NetAffiliation). The program and its commissions are what publishers sign up to, and your Kwanko account manager is the one who registers the product feed.
Install Feedflock
Add Feedflock from the Shopify App Store. It reads your products, variants, stock and images directly through the Shopify API.
Pick the Kwanko template
A 26-column CSV (10 mandatory fields, the conditional manufacturer reference, 9 CSS fields and 6 useful ones), one row per variant, prices as "49.00 EUR", availability in Google's enum. The EAN, the category breadcrumb and both price columns are mapped from the start.
Finalise the columns before handover
Once integrated, Kwanko freezes the format, the field order and the column set: nothing may be added, deleted or reordered without informing them in advance. Settle the selection and order in Feedflock first; afterwards, changes go through your account manager.
Hand the feed URL to your account manager
Kwanko's robot downloads the feed from the URL at regular intervals (the interval is not stated); an FTP drop is the alternative on request. Want the feed tracked separately? Put the parameters (utm_source=affiliation and friends) directly into the product URLs.
https://feedflock.appfleece.com/f/demo-kwanko/kwanko.csv
The feed
What the channel receives
ean,title,id,price,crossed_price,category,url,image_url,brand,description,link,availability,stock "8594000123453","Linen shirt Sand M","gid://shopify/ProductVariant/46012345678901","49.00 EUR","","Clothing > Shirts > Men's shirts","https://shop.example/products/linen-shirt-sand?variant=46012345678901","https://cdn.shop.example/img/linen-shirt-sand.jpg","Nordlin","Breathable linen shirt with a relaxed regular fit.","https://shop.example/products/linen-shirt-sand?variant=46012345678901","in_stock","1"

Nordlin
Linen shirt Sand
49 €
Feed fields
ean
8594000123453
title
Linen shirt Sand M
id
gid://shopify/ProductVariant/46012345678901
price
49.00 EUR
category
Clothing › Shirts › Men's shirts
url
https://shop.example/products/linen-shirt-sand?variant=46012345678901
brand
Nordlin
description
Breathable linen shirt with a relaxed regular fit.
link
https://shop.example/products/linen-shirt-sand?variant=46012345678901
availability
in_stock
stock
1
The channel
A network of publishers, paid on commission
Kwanko is an affiliate network: content sites, cashback portals and price tools pick up your product data and send you traffic for a commission set in your program. The feed is how your catalog reaches all of them.
The barcode is your ticket in
Kwanko calls the universal reference the key element for successful promotion: products with an EAN or ISBN get proposed to publishers, products without one simply do not. Identification is not a formality here. It is distribution.
Built for performance marketing
The internal reference is the same code your retargeting pixel sends, tracking parameters ride inside the product URLs, and apparel merchants get free CSS listings when colour, gender, material and size are filled.
The feed
- All 26 columns in the spec article's order (10 mandatory, the conditional manufacturer reference, 9 CSS fields and 6 useful ones), with clean snake_case headers, which the article explicitly allows
- Prices exactly as the spec asks: amount, space, ISO 4217 code in one value ("49.00 EUR"), incl. VAT, dot or comma decimal, no thousands separator
- crossed_price mapped from the compare-at price and left empty when the product is not on sale, because an always-filled crossed price invents a permanent discount
- Both hard gates checked at generation: every row needs an EAN or ISBN and a clear '>'-separated category, or the feed is not integrated
- The enforced declarations checked too (the 1,000-character description and the availability, condition and adult enums), verified against Kwanko's own spec article
- One row per variant, with titles that pair product and variant: Kwanko has no declination grouping, so every variant is its own product with its own reference, the same one your retargeting pixel sends
- Column order and set settled before handover, because Kwanko freezes the format, the order and the column set once the feed is integrated
- Fetch tracking shows when Kwanko's robot last downloaded the feed and alerts you if the fetches stop
Deep dive
Free column names, frozen column order
- Flat
CSVby default: comma separator, double-quote enclosure,UTF-8, header row first - The column names are free: "The names of the columns or fields are free"
- Once integrated, the format (
CSVvsXML) must not change, and neither the field order nor the column set - Feedflock hosts the file on a stable
URLand regenerates it as often as every hour
Technical details
Kwanko's spec article gives with one hand: the names of the columns or fields are free, so the template's snake_case headers in the article's own order are a clean starting point, not a required spelling. The file itself is a flat CSV (fields separated by one delimiter, text protected by double quotes, UTF-8, the header row first), with XML (freely named tags) as the documented alternative.
And it takes with the other: once the catalog has been generated with the fields in a certain order, it should not be re-generated with a different one. No fields added or deleted, no format switch, without informing Kwanko in advance. That is why the template's workflow is: settle the column selection and order in Feedflock first, hand the URL to your account manager second. Feedflock renders the file on a stable public URL and regenerates it as often as every hour, so every robot download reads current prices and stock.
Two hard gates: the barcode and the breadcrumb
EAN/ISBN: "The feed without universal reference will not be integrated in our system"- Products lacking a universal reference are not proposed to publishers
- Categories: "The feeds without clear categories will not be integrated". Send the complete '>'-separated breadcrumb
- The enforced declarations: description ≤ 1,000 characters, availability / condition / adult enums
Technical details
Most channels degrade gracefully; Kwanko names two absolute gates. Without a universal reference (an EAN or an ISBN) the feed is not integrated at all, and individual products lacking one are not proposed to publishers. Without clear categories, the same verdict. The category is your own tree, but it must arrive as the complete breadcrumb with sub-categories separated by '>'. Their example runs "Clothes and accessories > Shoes > Sport shoes > Tennis shoes".
Below the gates sit the enforced declarations the template checks on every generation: the description capped at 1,000 characters (HTML allowed), availability restricted to Google's enum (in_stock, out_of_stock, preorder, backorder), condition to new / refurbished / used, adult to yes / no. Violations are reported with the products they affect, before the feed, and its publisher distribution, pays for them.
Prices that carry their own currency
- price and crossed_price both include the
ISO4217 code in the value: "9,99USD" - Dot or comma decimal, no thousands separator, prices including taxes
- crossed_price is the pre-discount reference: mandatory, and empty when there is no discount
- Useful companions: the 1/2/3 discount indicator, ecotax, warranty years and the 1–20 performance grade
Technical details
Kwanko has no currency column: the currency rides inside the price itself. "This cost must include the currency in the ISO 4217 code… For example 9,99 USD": dot or comma decimal, no thousands separator, the price including taxes. The template emits the same form, "49.00 EUR", for both the current price and the crossed price.
The crossed price deserves care: it is mandatory even though it is the pre-discount reference, "the product excluding rebate / promotion / sale". The template maps it from your compare-at price and leaves it empty when the product is not on sale, because an always-filled crossed price invents a permanent discount every publisher would repeat. Around the pair sit the useful fields: a discount indicator (1 on sale / 2 normal / 3 discount period), the ecotax, the warranty in years and a 1–20 performance grade by your own criteria to highlight your best products.
Every variant is a product
- No declination grouping: each declination is a single product with a unique reference
- The internal reference must match the retargeting pixel's product id when the campaign includes retargeting
- Tracking parameters go directly into the product redirection URLs
CSSextras: link, minimal shipping cost (0 = free), and colour / gender / material / size, required for Apparel & Accessories free listings
Technical details
"Our system does not manage product declination, each product declination must be considered as a single product with a unique reference." Per-variant rows are therefore exactly right, and the template's default title pairs the product and variant names so the rows never collide. The internal reference matters beyond the file: if your campaign includes partner retargeting, this code must be the one the retargeting pixel sends. The default mapping uses Shopify's variant id, which never changes.
Two more mechanics live outside the columns. Tracking goes in the URLs, not around them: "you should integrate your tracking information directly into the product redirection URLs", so utm_source=affiliation and friends travel with every link. And the CSS section carries the landing-page link, one minimal shipping cost (0 = free shipping, so the template leaves it unmapped rather than promising it for you) and the colour, gender, material and size that free Apparel & Accessories listings require.
The takeaway
One URL for Kwanko's robot, an hourly refresh, and a CSV that respects the spec article line for line: the currency inside every price, both hard gates checked, the columns settled before the freeze. Your Shopify catalog stays the single source of truth for every publisher in the network.
Claude · ChatGPT
Or set up your Kwanko feed in chat
Connect Feedflock to Claude or ChatGPT and ask. It creates the feed as a draft, maps your categories to Kwanko's own tree and tells you what is still missing. You approve every change.
Create a Kwanko 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.