Integration

Shopify + Amazon

Amazon does not fetch a feed URL. It wants an inventory file in its own category template, uploaded in Seller Central. This page shows how to build that file from your Shopify catalog with Textfinity: the column mapping, the variation rows Amazon expects, the fields Shopify simply does not have, and where the result goes. No orders, no pricing tools, just the listing data done right.

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

At a glance

  • Amazon listing data travels as a category-specific inventory file (flat file): item_sku, external_product_id, item_name, brand_name, standard_price, quantity, main_image_url, product_description, bullet_point1–5 and more, with a Data Definitions tab marking what is required.
  • Variations need a parent row plus child rows linked by parent_sku, relationship_type = Variation and a variation_theme such as SizeColor.
  • Shopify has no bullet points, no manufacturer and no product-ID type; Textfinity fills them with combine, static values and metafields.
  • Textfinity outputs the file as TSV (Amazon's tab-delimited format) or CSV on a stable URL; you download it and upload in Seller Central (Catalog → Add Products via Upload). There is no Amazon API connection.

What a Shopify to Amazon product feed actually is

Every other channel on this site fetches a URL. Amazon is the exception: listings are created and updated through inventory files, tab-delimited text or Excel workbooks downloaded per product category from Seller Central, each with Instructions, Data Definitions, Template and Valid Values sheets. The Data Definitions sheet says which columns are required for that category, and Amazon rejects rows that miss them or use values outside the Valid Values list.

So the job is to produce rows that match the template's headers from Shopify's data. Textfinity's Amazon channel template gives you those headers; mapping fills them from Shopify products, variants and metafields; filters decide which products go; the output is a tab-delimited TSV you upload. Order management, FBA and pricing stay in Seller Central.

Shopify fields mapped to Amazon inventory file columns

The columns below are the common core across category templates. Your category's Data Definitions sheet is the final word on which are required.

Shopify attributeAmazon columnTransform in Textfinity
Variant SKUitem_skurename (must be unique and never reused)
Variant barcode (UPC/EAN)external_product_idrename
— (not in Shopify)external_product_id_typeconditional rule: barcode matches regexp \d{12}$ → add static value UPC, otherwise EAN
Product title + option valuesitem_namecombine (brand, title, color, size)
Vendorbrand_namerename
Vendor or metafieldmanufacturerrename; add static value if single-brand
— (category-specific)feed_product_typeadd static value, e.g. "shirt"
Variant pricestandard_pricerename (number only, no currency)
Inventory quantityquantityrename, or an advanced rule that blanks FBA SKUs
Product imagemain_image_urlrename
Other imagesother_image_url1…8replace from regexp to split
Body (HTML)product_descriptionremove from regexp <[^>]+>
Metafields or descriptionbullet_point1–5rename from metafields, or replace from regexp on the description
Metafield (Shopify tags are not imported)generic_keywordsrename from a product metafield such as product.metafield.custom.search_terms
Product idparent_sku (children)rename
— (derived)parent_child / relationship_type / variation_themestatic values per row set: Parent / Child, Variation, SizeColor
— (always)update_deleteadd static value "Update" (or "PartialUpdate")

Column names as used in Amazon's inventory file templates; required status depends on the category template's Data Definitions sheet. Checked 2026-10-27 against published third-party guides, since the Seller Central help pages require a seller login.

What has to be fixed between Shopify and Amazon

  • Product IDs. Amazon wants a UPC or EAN per child SKU unless you hold a GTIN exemption. Shopify's barcode field is often empty; feed hygiene's completeness check tells you how many rows lack one, and a filter rule 'variant.barcode is empty → exclude' keeps those out of the upload rather than failing the whole file.
  • Variations are two row types. Amazon expects one Parent row (no price, no quantity) and Child rows that carry parent_sku, relationship_type and the variation_theme. Build two feeds in Textfinity from the same shop, one filtered to the first variant per product with Parent values, one with all variants and Child values, and paste both into the template.
  • Bullet points do not exist in Shopify. Map bullet_point1–5 from metafields if you keep them, or split the description into sentences with replace from regexp, one capture group per bullet column. AI configs enhance or translate whole titles and descriptions; they do not write bullets.
  • Prices are numbers only, in the marketplace currency. Shopify Markets prices map per marketplace; leave the currency suffix off, unlike Google or Meta.
  • Quantity for FBA SKUs should be blank. An advanced rule on a 'fulfillment' metafield can empty the quantity for FBA items so merchant-fulfilled stock does not overwrite Amazon's count.

How the file gets into Seller Central

Textfinity publishes the Amazon feed as a TSV on a stable URL and rebuilds it on the shop's sync schedule, so the file you download is always the current catalog. In Seller Central go to Catalog → Add Products via Upload, download your category template once, and either paste the Textfinity rows into its Template sheet or upload the TSV directly with identical headers. Do not tick 'Purge and replace your inventory' unless you intend to delete every listing not in the file.

After upload, Amazon produces a processing report listing each rejected row with an error code and the column at fault. Send us the report: we fix the mapping, the feed rebuilds within about five minutes, and you download again and re-upload only the corrected rows. For stock and price changes between full uploads, a three-column Price & Quantity file (sku, price, quantity) is the quickest update, and a second Textfinity feed with just those columns produces it.

Examples

Worked examples, by situation

Three Shopify stores preparing an Amazon inventory file. Each shows the Shopify data and the rows Textfinity emits.

Apparel · Amazon US · 1,200 child SKUs · SizeColor variations

Parent and child rows from Shopify products and variants

Before

product.id: 9912  product.title: Merino Crew Sweater
variant.sku: MCS-NAVY-M  option1: Navy  option2: M
variant.barcode: 194252051234  price: 89.00

After

item_sku,parent_child,parent_sku,relationship_type,variation_theme,external_product_id,external_product_id_type,item_name,standard_price
MCS-PARENT-9912,Parent,,,SizeColor,,,Merino Crew Sweater,
MCS-NAVY-M,Child,MCS-PARENT-9912,Variation,SizeColor,194252051234,UPC,Merino Crew Sweater Navy M,89.00

How we set it up

We build two feeds from one shop. Parent feed: filter 'variant position is equal to 1', item_sku via add prefix 'MCS-PARENT-' on product id, static values Parent and SizeColor, price left empty. Child feed: all variants, parent_sku built with the same prefix rule, static values Child and Variation, item_name via combine (title, option1, option2).

Kitchenware · Amazon DE · 300 SKUs · EAN codes, German copy

EAN typed automatically, German description from an AI config

Before

variant.barcode: 4006381333931 (13 digits)
bullet points: none in Shopify
description: English only

After

external_product_id: 4006381333931
external_product_id_type: EAN
product_description: Emaillierter Gusseisen-Topf mit 5,2 Litern, spülmaschinenfest und ofenfest bis 250 °C … (accepted German AI description)

How we set it up

external_product_id_type via a conditional rule: barcode matches regexp \d{13}$ → add static value EAN, otherwise UPC (the mapping regexp is anchored at the start of the value). product_description from an AI config (enhance description, translated into German, 500 to 1,000 characters as Textfinity sets them) mapped with replace from AI config once the store accepts the generations, with the English description as fallback. AI configs do not write bullets, so bullet_point1–5 stay on metafields.

Electronics accessories · Amazon US · 2,000 SKUs · mixed FBA/FBM

Price & Quantity update file with FBA rows blanked

price-quantity.txt

sku	price	quantity
USBC-2M-BLK	12.99	140
USBC-2M-WHT	12.99	
HDMI-1M	9.49	25

How we set it up

We add a second feed with a custom column set (sku, price, quantity). quantity is an advanced expression: if [variant_metafield_custom_fulfillment] equals "FBA" then "" else [variant_inventoryQuantity], reading a Shopify variant metafield (advanced expressions name Shopify fields with underscores). Upload as the Price & Quantity file in Seller Central between full inventory uploads.

Copy this plan

Plan: Shopify catalog to Amazon inventory file

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

  1. 01

    Connect Shopify and check identifiers

    The native connection pulls variants, barcodes and metafields. Feed hygiene shows how many variants lack a barcode and which titles exceed Amazon's limits.

    What we set up: We connect your Shopify store and run feed hygiene to count the variants without a barcode and the titles over Amazon's limits.
  2. 02

    Download your category template from Seller Central

    Catalog → Add Products via Upload → pick the category. Read the Data Definitions sheet for the required columns and the Valid Values sheet for feed_product_type and variation_theme. 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

    Add bullets, keywords and static fields

    bullet_point1–5 from metafields or the description split by replace from regexp, generic_keywords from a metafield (the Shopify connection does not import tags), feed_product_type and update_delete as static values.

    What we set up: We map bullet_point1–5 as renames of metafields or with replace from regexp on the description, and set feed_product_type and update_delete as static values.
  5. 05

    Build the parent feed and the child feed

    Duplicate the feed; filter one to the first variant per product and set Parent values, keep the other for all variants with Child values. Exclude anything without a barcode unless you hold an exemption.

    What we set up: We add an exclude filter, variant.barcode is empty, and set parent_child as a static value in each feed.
  6. 06

    Upload in Seller Central and read the processing report

    Download the TSV from the feed URL, upload it or paste the rows into the template, then 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 feed per category template

Amazon templates differ by category, and a shirt row has columns a kitchen row does not. A filter on product type per feed keeps each upload matched to its template; the cost is one more feed to keep per category.

PartialUpdate for routine refreshes

update_delete = Update overwrites every column of the listing; PartialUpdate only touches the columns you send. Use Update for the first upload and PartialUpdate for a price-and-stock feed so you do not wipe bullets you edited in Seller Central.

Title length is per category

Amazon's title limits vary by category and marketplace. Set the combine order to brand, product, key attribute, size/color, then use feed hygiene's length distribution to see how many titles pass the limit you look up in the template.

Never reuse an item_sku

Amazon ties the SKU to the listing and its history. Map item_sku from the Shopify variant SKU and keep Shopify SKUs stable; if you must renumber, do it as new listings, not a rename.

FAQ

Questions about shopify amazon product feed

Can Amazon fetch a product feed URL from Shopify or a feed tool?

No. Amazon ingests listing data through inventory files uploaded in Seller Central or through its Selling Partner API. Textfinity produces the inventory file from your Shopify catalog on a stable URL that you download and upload; it does not connect to Amazon's API.

What columns does an Amazon inventory file need?

It depends on the category template, but item_sku, external_product_id and its type, item_name, brand_name, feed_product_type, standard_price, quantity, main_image_url, product_description and bullet points are the usual core. The template's Data Definitions sheet marks the required ones and the Valid Values sheet lists accepted values.

How do Shopify variants become Amazon variations?

Each variant is a Child row with its own item_sku and barcode, pointing to a Parent row through parent_sku, with relationship_type = Variation and a variation_theme such as Size, Color or SizeColor. The parent carries no price or quantity. Textfinity builds both row sets from the same shop with a filter and static values.

Do I need UPC or EAN codes to list Shopify products on Amazon?

Normally yes, one per child SKU, unless your brand has a GTIN exemption. Shopify stores them in the variant barcode field. Filter out variants with an empty barcode so they do not fail the upload, and fix them in Shopify rather than in the feed.

Set up for you

Send us your category template. We'll build your Amazon file from Shopify.

We connect Shopify, map item_sku, the identifiers and the variation rows to your template once. Textfinity rebuilds the TSV on a schedule, so every upload you make carries current stock and prices.

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

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