Conversion
Amazon feed to Google Shopping
If your cleanest product data lives in an Amazon inventory file (or your Google feed is the clean one and Amazon is next), the two formats map almost column for column, with a handful of differences that cause every rejection: item_sku versus id, bullet points with no Google home, numeric prices versus '24.99 USD', and Amazon's parent/child rows versus Google's item_group_id. The table below is the mapping in both directions, with sample files.
We connect your store, build the feed and keep it in sync. Updated 2026-10-27.
At a glance
- Amazon's inventory file columns (item_sku, item_name, external_product_id, standard_price, main_image_url, bullet_point1–5) map to Google's id, title, gtin, price, image_link and description; Google has no bullet points, Amazon has no availability word.
- Google needs link and availability, which an Amazon file does not carry: link comes from your own store URL (Google ads must land on your site), availability from quantity.
- Going the other way, Google's single item_group_id becomes Amazon's Parent row plus Child rows with parent_sku, relationship_type and variation_theme.
- Textfinity reads the Amazon export (TSV/CSV by URL) or the Google feed and produces the other format on a schedule; Amazon uploads stay manual because Amazon does not fetch URLs.
Amazon inventory file to Google Shopping: attribute mapping
Columns on the left are the common core of Amazon's category templates; attributes on the right are from Google's product data specification. The last column says what changes.
| Amazon column | Google attribute | Difference / transform |
|---|---|---|
| item_sku | id | rename; both must be unique and stable |
| parent_sku (child rows) | item_group_id | rename; parent rows are filtered out |
| item_name | title | rename; Google max 150 chars, so trim with feed hygiene's length check |
| product_description | description | rename; Google max 5,000 chars, plain text |
| bullet_point1–5 | description or product_highlight | combine with ' ' into description, or map to product_highlight (2–100 entries, ≤150 chars) |
| external_product_id (type UPC/EAN) | gtin | rename; Google validates the check digit |
| brand_name | brand | rename |
| manufacturer / part_number | mpn | rename when no GTIN |
| standard_price | price | add suffix " USD" (Google wants the ISO code) |
| sale_price + sale_from_date / sale_end_date | sale_price + sale_price_effective_date | add suffix; combine dates with '/' in ISO 8601 |
| quantity | availability | advanced: if [quantity] is empty then "out_of_stock" else if calc{[quantity]} > 0 then "in_stock" else "out_of_stock" |
| main_image_url | image_link | rename |
| other_image_url1–8 | additional_image_link | rename |
| — (not in Amazon file) | link | combine (store base URL, item_sku or handle) |
| — (not in Amazon file) | google_product_category | replace from google sheet keyed by item_type or feed_product_type, conditioned on is in google sheet list |
| item_type / feed_product_type | product_type | rename |
| color_name / size_name | color / size | rename |
| condition_type (New, UsedLikeNew…) | condition | add static value per condition: matches regexp Used → used, includes Refurbished → refurbished, else new |
| generic_keywords | — (no Google equivalent) | leave out; Google has no keyword field |
Google attribute names and limits from the Merchant Center product data specification, checked 2026-10-27. Amazon column names as used in inventory file templates (Seller Central help requires login; names cross-checked against published third-party guides).
The six differences that break an Amazon to Google conversion
- Link. Amazon files have no landing page because the page is Amazon's. Google Shopping requires a link on your verified domain, so every row needs a URL built from your store's pattern (combine base URL + handle or SKU). If the products only exist on Amazon, there is nothing to convert.
- Availability. Amazon infers it from quantity; Google wants in_stock, out_of_stock, preorder or backorder. One advanced rule.
- Price format. Amazon's standard_price is a bare number in the marketplace currency; Google needs '24.99 USD'. Add suffix.
- Bullet points. Google has no bullets. Either fold them into the description with combine, or map them to product_highlight, which Google shows as highlights. Keep the description itself as product_description.
- Variations. Amazon's Parent row has no price or image and must not reach Google. Filter parent_child is equal to Parent → exclude, and map item_group_id from parent_sku on the children.
- Condition values. Amazon's condition_type has nine or so values (New, UsedLikeNew, Refurbished…); Google has three. Three conditional branches collapse them: anything starting with Used becomes used.
Google Shopping feed to Amazon: the reverse mapping
When the Google feed is the clean source, the hard part is structure, not names. Google's one row per variant with item_group_id becomes Amazon's Parent row plus Child rows, and Amazon wants columns Google never asked for: bullet points, manufacturer, feed_product_type, variation_theme and update_delete. In Textfinity that is two feeds from the same source: a parent feed filtered to one row per item_group_id (an "is in google sheet list" filter on a sheet of one variant id per group) with parent_child = Parent and no price, and a child feed with every variant, parent_sku = item_group_id, relationship_type = Variation. Bullets come from metafields or from the description split with replace from regexp; feed_product_type and variation_theme are static values per category template; price drops the currency suffix with remove from regexp ' USD'.
The output is a TSV (or CSV) on a stable URL. Download it and upload the tab-delimited file with identical headers, or paste the rows into Amazon's category template, under Catalog → Add Products via Upload, and read the processing report. Amazon does not fetch feed URLs and Textfinity has no Amazon API connection, so this step stays manual.
Sample: the same product in both formats
The snippet is a child row from an Amazon inventory file (tab-delimited, headers shortened to the columns that matter). The download is the Google Shopping CSV with the same product plus two more, in Google's spelling. Compare the price, availability and image columns to see every difference at once.
amazon-inventory.txt (source, child row)
item_sku parent_sku parent_child item_name brand_name external_product_id external_product_id_type standard_price quantity main_image_url color_name size_name
MCS-NAVY-M MCS-PARENT-9912 Child Merino Crew Sweater Navy M Loom 0194252051234 UPC 89.00 14 https://cdn.example/mcs-navy.jpg Navy MExamples
Worked examples, by situation
Three catalogs crossing between Amazon and Google. Each shows the row as it starts and as it ends.
Child row becomes a Google variant with link and availability added
Before
item_sku: MCS-NAVY-M parent_sku: MCS-PARENT-9912 standard_price: 89.00 quantity: 14 bullet_point1: 100% merino wool
After
id,item_group_id,title,price,availability,link,product_highlight MCS-NAVY-M,MCS-PARENT-9912,Merino Crew Sweater Navy M,89.00 USD,in_stock,https://store.example/p/merino-crew?sku=MCS-NAVY-M,100% merino wool
How we set it up
We add an exclude filter "parent_child is equal to Parent", then map id as a rename from item_sku, item_group_id from parent_sku, price with add suffix ' USD', availability with an advanced rule on quantity, link as a combine ("https://store.example/p/merino-crew?sku=", item_sku) and product_highlight as a rename from bullet_point1.
Google rows split into Amazon Parent and Child rows
Before
id,item_group_id,title,price,gtin VIT-D3-60,VIT-D3,Vitamin D3 2000 IU 60 caps,9.99 GBP,5060123456789
After
item_sku,parent_child,parent_sku,relationship_type,variation_theme,external_product_id,external_product_id_type,standard_price VIT-D3,Parent,,,Size,,, VIT-D3-60,Child,VIT-D3,Variation,Size,5060123456789,EAN,9.99
How we set it up
We set up two feeds. Parent feed: filtered to one row per item_group_id with an "is in google sheet list" filter on id, item_sku as a rename from item_group_id, static values Parent and Size, standard_price left empty. Child feed: standard_price via remove from regexp ' GBP'; external_product_id_type as the static value EAN under the conditional rule 'gtin matches regexp ^\d{13}$'.
Amazon condition_type collapsed to Google's three values, descriptions rebuilt
Before
condition_type: UsedVeryGood product_description: (empty) bullet_point1: 65" 4K panel bullet_point2: HDMI 2.1 x4
After
condition: used description: 65" 4K panel. HDMI 2.1 x4.
How we set it up
We map condition as static values with conditions (matches regexp Used → used, so UsedVeryGood and UsedLikeNew both land there; includes Refurbished → refurbished; else new). description is a combine of bullet_point1…5 with '. ' as delimiter, mapped only when product_description matches regexp ^\s*$ through a conditional rule.
Copy this plan
Plan: convert an Amazon feed to Google Shopping
About an hour. Reverse the roles for Google to Amazon.
01
Host the Amazon file on a URL
Export the inventory file or category listings report from Seller Central and put it on a URL Textfinity can read (a Google Sheet works). This step is outside Textfinity.
02
Add it as the source
Textfinity profiles the columns: empty UPCs, over-long item_names, parent rows without prices.
What we set up: We add the file URL (or Google Sheet) as the source in Textfinity.03
Create the Google Shopping feed and filter parents
Start from the Google template, then exclude parent rows so only sellable children reach Google.
What we set up: We start from the Google Shopping template and add an exclude filter "parent_child is equal to Parent".04
Map the direct renames
id, item_group_id, title, description, gtin, brand, image_link, additional_image_link, color, size, product_type.
What we set up: We map id as a rename from item_sku and item_group_id as a rename from parent_sku, then the other direct renames.05
Add what Google needs and Amazon lacks
link by combine, availability by advanced rule on quantity, price by add suffix, condition by conditional static values, google_product_category by lookup, bullets into product_highlight.
What we set up: We map link as a combine, availability as an advanced rule and condition as static values with conditions.06
Register the feed in Merchant Center
Add the feed URL as a scheduled fetch, then watch the Needs attention tab in Merchant Center (outside Textfinity).
What we set up: We register the URL with you: you give us access to Merchant Center, or we walk you through it.
Customization tips
Make it yours
Bullets to product_highlight, not into the title
It is tempting to pack bullet text into Google titles. Google caps titles at 150 characters and shows about 70, and promotional text is against the spec. product_highlight is the attribute built for bullet-style facts.
Keep Amazon SKUs as Google ids
Using item_sku as id lets you reconcile the two channels by one key and makes the reverse conversion trivial. Do not switch to ASIN as the Google id: ASINs are Amazon's and change when listings merge.
Separate currency per marketplace
An Amazon file is per marketplace and has no currency column. Set the add-suffix value to that marketplace's currency and build one Google feed per country rather than mixing rows.
Let the Amazon upload stay manual on purpose
Textfinity rebuilds the Amazon TSV on a schedule, but you decide when to upload. That is a feature for Amazon, where a bad upload with 'Purge and replace' ticked deletes listings. Use PartialUpdate for routine refreshes.
Downloads
Take the files
FAQ
Questions about amazon feed to google shopping
Can I upload my Amazon inventory file to Google Merchant Center as is?
No. The column names differ (item_sku vs id, item_name vs title), prices lack a currency code, there is no availability or link column, and Amazon's parent rows have no price. Convert it first; the mapping above covers every required Google attribute.
Where does the Google Shopping link come from if the product is on Amazon?
From your own website. Google Shopping ads and free listings must land on your verified domain, not on Amazon. Build the link from your store's URL pattern and the SKU; if the products are not on your site, Google Shopping is not the right destination for that catalog.
How do I convert a Google Shopping feed to an Amazon feed?
Map id to item_sku, title to item_name, gtin to external_product_id with its type, strip the currency from price into standard_price, and split variants into a Parent row plus Child rows with parent_sku, relationship_type and variation_theme. Add bullets, manufacturer and feed_product_type, which Google does not have, then upload the file in Seller Central.
Can Amazon fetch the converted feed from a URL?
No. Amazon ingests inventory files uploaded in Seller Central or data sent through its Selling Partner API. Textfinity produces the file on a URL for download; it has no Amazon API connection. Google, by contrast, fetches the feed URL on a schedule.
Set up for you
Have us convert your Amazon file to a Google Shopping feed.
Send us the hosted inventory file and your store's URL pattern. We map item_sku to id and quantity to availability in Textfinity and register the feed with you in Merchant Center; the software rebuilds it whenever the file changes.
Tell us your store and channels. We reply within 24 hours.