Your affiliate network holds a file listing every product your merchants sell — the title, the current price, the image, the stock status and your tracking link, all of it kept up to date by the merchant. That file is a product feed, and almost nobody uses it. Most affiliate posts are still built by opening the merchant's website, copying a link, and pasting it into a paragraph.

This guide covers getting that file into WordPress: where to find it, how to import it, how to place products in a post, and the part most guides skip — keeping it current afterwards.

What a product feed actually is

A product feed is a spreadsheet your merchant maintains for you. It arrives as CSV, TSV, XML or JSON, usually behind a URL your network generates, and it is regenerated on the merchant's schedule — daily for most, hourly for some. A feed for a mid-sized fashion retailer holds twenty to eighty thousand rows.

Networks call it different things. AWIN says datafeed, CJ Affiliate says product catalog, Impact says product catalog too, Tradedoubler says product feed. It is the same object each time.

Step 1: Get the feed URL from your network

You need a URL, not a downloaded file. A downloaded file is a snapshot that starts going stale the moment you save it; the URL is the live version, and it is what lets prices update on their own later.

In every network the path is roughly the same:

  1. Log in and find the section named Product feeds, Datafeeds, or Product catalog.
  2. Pick the merchant whose products you want. You need an approved partnership with them first — a pending application will not show a feed.
  3. Choose a format if you are offered one. CSV is the safest default.
  4. Copy the generated URL. It will contain your publisher ID, which is what stamps your commission onto the links inside it.

Two things to check before you leave the page. Make sure the feed includes the deep link or tracking link column — some networks let you build a feed without it, and a feed without tracking links earns nothing. And if the network offers a compressed version, take it; a 60 MB file downloads considerably faster as a 6 MB one.

Per-network specifics are on the supported networks page.

Step 2: Import the feed into WordPress

WordPress cannot read a product feed on its own; it has no concept of a product outside of a shop plugin. You need something that fetches the file, works out which column means what, and stores the result.

With MyFeeds that is three fields: open MyFeeds → Feeds, paste the URL, and click Import. The plugin downloads the file, detects the format, maps the columns and writes every product into your own database. A 30,000-product feed takes two to five minutes and runs in the background, so you can close the tab.

The column mapping is the part that goes wrong most often, because no two networks name their fields the same way. One calls the price search_price, another product_price, a third price_amount. A good importer recognises the common patterns automatically and gives you a mapping editor for the rest. If your product titles import but your prices come through empty, that is a mapping problem, not a broken feed.

Step 3: Put the products in a post

Once the catalogue is in your database, it is searchable. Open any post, add the product block, and search by name, brand, colour or category the way you would search a shop. Pick the products you want and they land in the post as cards with the image, the price and your tracking link already attached.

This is the real change. You are no longer looking for products on the merchant's website and copying links; you are picking from a list you already own, and the link is correct by construction.

Step 4: Keep it current — the part that matters most

An import is a snapshot. Left alone, that snapshot is what makes affiliate posts rot: a price you quoted in March is wrong by June, a product that sold out still shows Buy Now, and a merchant that left the network takes your links with them. None of that announces itself. Your traffic stays flat and your earnings drift down.

So the import needs to repeat. MyFeeds re-reads every feed nightly and refreshes the cards already sitting in your posts, with a fuller import weekly to catch products added or withdrawn since. Prices in old posts correct themselves; sold-out items get flagged; and when a product disappears from the feed entirely, you get a list of every post that still points at it, so you can replace it instead of finding out from a reader.

Common problems

Some products did not import

Most importers skip rows missing something essential — no title, no price, no image, or no tracking link. That is usually correct behaviour: a card without a price is not a card you want published. Check the feed itself for incomplete rows before assuming the import failed.

The feed URL returns an error

Nearly always one of three things: the merchant partnership is not approved yet, the feed URL has an expiry the network did not mention, or the file is behind HTTP authentication that needs a username and password alongside the URL.

The format is unusual

Smaller merchants sometimes publish something idiosyncratic — a semicolon-delimited CSV with a byte-order mark, or XML with an unconventional structure. That is what a manual mapping editor is for: you tell it once which column is which, and it remembers.

Is this worth it for a small site?

There are two reasons to work from a feed, and only one of them is about volume.

If you publish a lot, the saving is obvious. Past thirty or forty posts you stop being able to remember which posts hold which products, and manual maintenance quietly stops happening — not because you decided to stop, but because checking them all takes an afternoon you never have. A feed keeps them current whether you get to it or not.

If you publish selectively, the saving is different but real. A feed turns your merchants' whole range into something you can search in the editor, so choosing the right product means comparing what is actually available rather than reconstructing it from memory of the merchant's website. You still pick every product yourself, deliberately; you just pick from a complete list instead of hunting for one. And the handful you did choose stay correct on their own — if you place six products a year and stand behind each one, six wrong prices matter more than sixty would on a site nobody reads closely.

Where it genuinely adds nothing is a post or two with a single link each, changed once and never revisited. That is a job for copy and paste.