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 attribute | Amazon column | Transform in Textfinity |
|---|---|---|
| Variant SKU | item_sku | rename (must be unique and never reused) |
| Variant barcode (UPC/EAN) | external_product_id | rename |
| — (not in Shopify) | external_product_id_type | conditional rule: barcode matches regexp \d{12}$ → add static value UPC, otherwise EAN |
| Product title + option values | item_name | combine (brand, title, color, size) |
| Vendor | brand_name | rename |
| Vendor or metafield | manufacturer | rename; add static value if single-brand |
| — (category-specific) | feed_product_type | add static value, e.g. "shirt" |
| Variant price | standard_price | rename (number only, no currency) |
| Inventory quantity | quantity | rename, or an advanced rule that blanks FBA SKUs |
| Product image | main_image_url | rename |
| Other images | other_image_url1…8 | replace from regexp to split |
| Body (HTML) | product_description | remove from regexp <[^>]+> |
| Metafields or description | bullet_point1–5 | rename from metafields, or replace from regexp on the description |
| Metafield (Shopify tags are not imported) | generic_keywords | rename from a product metafield such as product.metafield.custom.search_terms |
| Product id | parent_sku (children) | rename |
| — (derived) | parent_child / relationship_type / variation_theme | static values per row set: Parent / Child, Variation, SizeColor |
| — (always) | update_delete | add 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.
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).
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.
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 25How 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.
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.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.
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.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.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.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.
Tell us your store and channels. We reply within 24 hours.