Integration

WooCommerce + Amazon

Most 'WooCommerce Amazon' results are about pulling Amazon products into WordPress. This page is the other direction: taking the products you already sell in WooCommerce and producing the inventory file Amazon Seller Central accepts, from the store's export URL, with no plugin installed. Column mapping, variation rows, the fields WooCommerce lacks, and the upload.

We connect your store, build the feed and keep it in sync. Updated 2026-10-27.

At a glance

  • Amazon takes listings as a category inventory file (flat file), not a feed URL: item_sku, external_product_id, item_name, brand_name, standard_price, quantity, main_image_url, product_description, bullet_point1–5, uploaded in Seller Central.
  • WooCommerce's export has SKU, Name, Regular price, Stock, Images, Description and a GTIN/UPC/EAN column (WooCommerce 11.2+), but no brand, bullet points or product-ID type.
  • Variable products export as a parent row plus variation rows with a Parent column, which maps cleanly to Amazon's Parent/Child rows.
  • Textfinity reads the WooCommerce export URL, maps it to Amazon's columns and publishes a tab-delimited TSV you upload. No Amazon API connection, no order sync.

From WooCommerce export to Amazon inventory file

WooCommerce's exporter (Products → Export) writes a CSV with one row per product and one per variation. Amazon wants a category-specific inventory file whose columns are fixed by the template you download in Seller Central; its Data Definitions sheet says which are required and its Valid Values sheet lists accepted values for fields such as feed_product_type and variation_theme.

Textfinity sits between the two. We set it up for you: it reads the export URL (the file a feed plugin or a scheduled export already writes), the Amazon channel template maps WooCommerce's columns to Amazon's, filters drop the products that should not be listed, and you download the TSV it publishes. Nothing is installed in WordPress and the same export URL can serve Google, Meta and Pinterest feeds too.

WooCommerce columns mapped to Amazon columns

The core set below appears in most category templates. Your template's Data Definitions sheet decides what is required for your category.

WooCommerce columnAmazon columnTransform in Textfinity
SKUitem_skurename (unique, never reused)
GTIN, UPC, EAN, or ISBNexternal_product_idrename
— (derived)external_product_id_typeconditional: GTIN matches regexp \d{12}$ → UPC, otherwise EAN
Name (+ attribute values)item_namecombine (brand, Name, Attribute 1 value(s))
— (not exported)brand_nameadd static value or merged source keyed by SKU
— (not exported)manufactureradd static value
— (category-specific)feed_product_typeadd static value from the Valid Values sheet
Regular pricestandard_priceconditional: leave empty when Type is variable, otherwise rename
Sale pricesale_pricerename; Amazon takes its start and end dates in their own columns
Stockquantityrename; blank for FBA
Images (first)main_image_urlreplace from regexp: text before first comma
Images (rest)other_image_url1…replace from regexp
Descriptionproduct_descriptionremove from regexp <[^>]+>
Short descriptionbullet_point1replace from regexp on the first <li> item
Tagsgeneric_keywordsrename
Parent (variations)parent_skurename
Type (variable / variation)parent_childadvanced: if [Type] equals "variable" then "Parent" else "Child"
Attribute 1 namevariation_themeadd static value from the Valid Values sheet (e.g. SizeColor)
— (always)update_deleteadd static value "Update"

WooCommerce column names from the product CSV importer/exporter documentation; Amazon column names from inventory file templates as documented in third-party guides, since Seller Central help pages need a seller login. Checked 2026-10-27.

What has to be fixed between WooCommerce and Amazon

  • Brand is not a WooCommerce export column. Single-brand stores use a static value; multi-brand stores join a Google Sheet (SKU → brand) as a merged source. Amazon requires brand_name for most categories.
  • Product IDs are often missing. The GTIN/UPC/EAN column is new in WooCommerce and empty in many exports. Feed hygiene's completeness check shows the share, and a filter rule 'GTIN is empty → exclude' keeps the upload valid.
  • Descriptions and short descriptions carry HTML. Amazon's product_description is plain text; one 'remove from regexp' transform strips tags from both.
  • Variations need Amazon's row structure. The parent row (Type = variable) must carry no price or quantity and the child rows (Type = variation) must point at parent_sku. The advanced rule in the table sets parent_child from Type, and the standard_price rule's condition leaves the price empty on parent rows.
  • Sale prices. WooCommerce exports Regular price and Sale price separately, and so does Amazon: map Regular price to standard_price and Sale price to sale_price, whose dates go in their own columns. Advanced expressions cannot read column names with spaces such as Sale price, so these are rename and conditional rules.

Uploading the WooCommerce Amazon product feed

Textfinity publishes the feed as a TSV on a stable URL, rebuilt on the shop's sync schedule. In Seller Central: Catalog → Add Products via Upload, download the category template once, paste Textfinity's rows into the Template sheet (or upload the TSV itself with the same headers), upload, and read the processing report. Rejected rows name the column at fault; send us the report, we fix the mapping in Textfinity, and you re-download after the rebuild. Leave 'Purge and replace' unticked.

Between full uploads, a Price & Quantity file with just sku, price and quantity is the fastest way to push stock changes; a second Textfinity feed with those three columns and a filter to merchant-fulfilled SKUs produces it. Amazon does not fetch URLs, so each upload is a manual step; what Textfinity removes is the spreadsheet work before it.

Examples

Worked examples, by situation

Three WooCommerce stores preparing an Amazon inventory file. Each shows the export row and the Amazon rows Textfinity produces.

Footwear · Amazon US · 600 variations · SizeColor

Variable product and its variations become Parent and Child rows

Before

Type,SKU,Name,Parent,Attribute 1 value(s),Attribute 2 value(s),Regular price,Stock
variable,TRAIL-01,Trail Runner,,"Black, Olive","8, 9, 10",,
variation,TRAIL-01-BLK-9,Trail Runner - Black 9,TRAIL-01,Black,9,119.00,14

After

item_sku,parent_child,parent_sku,relationship_type,variation_theme,item_name,standard_price,quantity
TRAIL-01,Parent,,,SizeColor,Trail Runner,,
TRAIL-01-BLK-9,Child,TRAIL-01,Variation,SizeColor,Trail Runner Black 9,119.00,14

How we set it up

We set parent_child as an advanced expression on Type and parent_sku as a rename of Parent; relationship_type via advanced: if [Type] equals "variation" then "Variation" else ""; standard_price and quantity via conditional rules that leave the value empty when Type is variable; variation_theme as a static value for this feed, which is filtered to one product category.

Supplements · Amazon UK · 80 SKUs · bullets from short description

Short description split into bullet points, HTML removed

Before

Short description: <ul><li>60 capsules</li><li>Vegan</li><li>Made in the UK</li></ul>

After

bullet_point1: 60 capsules
bullet_point2: Vegan
bullet_point3: Made in the UK

How we set it up

We map three columns, each with 'replace from regexp' on Short description that keeps only the nth <li> text and drops the tags with everything else: (?s)^(?:.*?<li>){2}(.*?)</li>.*$ with \1 gives the second. For stores without structured short descriptions, we split the description by sentence with the same transform; AI configs rewrite whole titles and descriptions and do not write bullets.

Multi-brand toys · Amazon DE · 2,500 SKUs · brand from a sheet

Brand joined from a Google Sheet, EAN typed, rows without EAN excluded

Before

SKU,Name,GTIN,Regular price
TOY-7781,Wooden Stacking Rings,4007922014142,24.90
TOY-7790,Plush Fox,,19.90

After

item_sku,brand_name,external_product_id,external_product_id_type,standard_price
TOY-7781,Haba,4007922014142,EAN,24.90

How we set it up

We join a Google Sheet keyed by SKU as a merged source and map its brand column to brand_name. external_product_id_type is a conditional rule on GTIN (matches regexp \d{13}$ → EAN, otherwise UPC). An exclude filter, GTIN is empty, drops the Plush Fox row until a code exists.

Copy this plan

Plan: WooCommerce export to Amazon inventory file

Half a day the first time. Steps 2 and 6 are yours in Seller Central; the feed steps we set up in Textfinity for you.

  1. 01

    Add the WooCommerce export URL

    Use an existing plugin feed URL or a scheduled export saved to a public path or an SFTP server; CSV, or XML in Google Shopping format. Feed hygiene profiles identifiers, HTML and image URLs on import.

    What we set up: We add your CSV or XML export URL as the source and run feed hygiene on it.
  2. 02

    Download the Amazon category template

    Seller Central → Catalog → Add Products via Upload → choose category. Note the required columns and valid values, and send us the template so the feed matches it.

  3. 03

    Create the Amazon feed and map the core columns

    item_sku, external_product_id and type, item_name, brand_name, standard_price, quantity, main_image_url, product_description.

    What we set up: We build the feed from the Amazon channel template and map the core columns with rename, combine and remove from regexp.
  4. 04

    Set variation and static columns

    parent_child and relationship_type from Type, parent_sku from Parent, variation_theme, feed_product_type and update_delete as static values.

    What we set up: We set parent_child as an advanced expression and feed_product_type, variation_theme and update_delete as static values.
  5. 05

    Filter the upload

    Exclude drafts, products without a GTIN, and categories that belong to a different template.

    What we set up: We add exclude filters: Published is not equal to 1; GTIN is empty.
  6. 06

    Upload and read the processing report

    Download the TSV, upload it or paste the rows into the template, fix rejected rows from the report. This happens in Seller Central.

    What we set up: We give you the feed URL, which always serves the current TSV, and fix the mapping for any row the processing report rejects.

Customization tips

Make it yours

One Textfinity feed per Amazon category template

Templates differ per category, so a toys row and a supplements row cannot share an upload. A 'Categories includes' filter per feed keeps each file matched to its template; the cost is one more feed to keep per category.

Schedule the export before you download

Amazon does not fetch URLs, so the freshness of each upload is the freshness of the WooCommerce export plus Textfinity's sync. Run the WordPress export and the Textfinity sync shortly before your upload routine rather than overnight.

PartialUpdate after the first upload

update_delete = Update replaces every column; PartialUpdate only changes what you send. Switch the static value once listings exist so a price feed does not blank bullet points edited in Seller Central.

Keep WooCommerce SKUs as Amazon SKUs

Amazon ties history to item_sku and does not allow reuse. Map item_sku straight from SKU, and if WooCommerce SKUs are missing for variations, fix them in WooCommerce first; the feed should not invent identifiers.

FAQ

Questions about woocommerce amazon product feed

Can I send a WooCommerce product feed URL to Amazon?

No. Amazon does not fetch feed URLs; it accepts inventory files uploaded in Seller Central or data sent through the Selling Partner API. Textfinity builds the inventory file from the WooCommerce export and publishes it as a TSV on a URL you download and upload. It has no Amazon API connection.

Does this need a WooCommerce Amazon plugin?

Not for the listing file. Textfinity reads the store's CSV or Google Shopping XML export URL and produces Amazon's columns, so nothing is installed in WordPress. Order import and inventory sync back from Amazon are a different job that Textfinity does not do.

How do WooCommerce variations map to Amazon variations?

The variable product row becomes the Parent (no price or quantity), each variation row becomes a Child with parent_sku pointing at the parent's SKU, relationship_type = Variation and a variation_theme such as Size, Color or SizeColor. WooCommerce's Type and Parent columns give you everything needed to derive those with two rules.

What if my WooCommerce products have no GTIN?

Amazon requires a UPC or EAN per child SKU unless you hold a GTIN exemption. Fill the GTIN/UPC/EAN column in WooCommerce for the products you intend to list, and filter out the rest so the upload does not fail. Feed hygiene shows how many are missing before you start.

Set up for you

Send us your export URL. We'll set up your Amazon file from WooCommerce.

We set up the Amazon feed in Textfinity and map SKUs and variations to your category template once; the software rebuilds the TSV on a schedule, so each upload carries current prices and stock.

Have us build my Amazon fileOr email support@textfinity.io

Tell us your store and channels. We reply within 24 hours.