Import a supplier's Google, Meta or Akakçe XML
Paste a supplier feed in Google/Meta RSS (Cimri style included) or Akakçe format, see how fields map, how variants group by item_group_id and how stock is read.
Setup Requires the free plan or higher Verified: October 2026 · v0.1 Draft
Draft: written from the product plan before launch. Screenshots are added when the app is released and the steps are re-verified.
Many suppliers already publish a product feed for Google Merchant Center, Meta, Cimri or Akakçe. Buinbu can read that same file and bring the products into your store: you paste the URL, a dry run shows what would change, and you apply it when it looks right.
Before you start
- The feed URL from your supplier. It must be a public
httporhttpsaddress; a login page or an IP allow list blocks the download. If the supplier protects the file with a password parameter, keep it in the URL. - Barcodes or SKUs on your existing Shopify products if the supplier’s items should update them.
- Dry runs work on every plan; applying needs a paid plan (plans).
1. Add the source
- Open Import and choose Add source.
- Under Source address paste the XML URL and give the source a Name.
- Under Price rules set the Profit margin (%) and Round prices up to .90 if you want them. Both formats carry consumer prices, so they are treated as VAT-included and Add VAT when source prices exclude VAT has no effect here. T-Soft option names are not used either.
- Choose Save and run a dry run. The source page opens and its title shows the detected format: Google / Meta XML or Akakçe XML.
How the format is detected
The start of the file decides, after the Ticimax and T-Soft checks:
| Format | Recognised by | Record |
|---|---|---|
| Google / Meta XML | An rss file with item elements and the g: namespace (or g:id, g:price); also Atom feed with entry | item or entry |
| Akakçe XML | product elements with productBrand and productCategory or shipPrice | product |
Cimri feeds use the Google format, often without the g: prefix on title, description and link; both spellings are read. If neither format is recognised, the run fails with “Unrecognized XML” and the Field mapping card appears: see Map the fields of an unrecognised XML.
Google / Meta fields
Each field is read with or without the g: prefix.
| Shopify | Source field | Notes |
|---|---|---|
| Title | title | Grouped items: the part all titles share |
| Description | description | HTML is cleaned of scripts and forms |
| Vendor | brand | |
| Product type | Last level of product_type, else google_product_category | Levels split at > |
| Images | image_link, additional_image_link | Up to 20 per product |
| SKU | id (or sku_id) | Unique per item; mpn is not used |
| Barcode | gtin | |
| Price | sale_price when lower than price, else price | 349.90 TRY, 349,90 TL, 1.249,90 TL are all read |
| Compare-at price | price when a lower sale_price exists | |
| Stock | quantity, inventory, quantity_to_sell_on_facebook or stock | See below |
| Status | availability | discontinued items are skipped as “Inactive in source” |
Variants and item_group_id
Items with the same item_group_id become one product with variants. The options are the fields whose value changes inside the group, in this order and at most three: color as Renk, size as Beden, material as Malzeme, pattern as Desen. A field with the same value across the whole group, for example one colour, does not become an option.
- Two items with the same option combination: the second is skipped (“Duplicate option combination”).
- Items in a group that differ in no option: each becomes a variant of an option named Seçenek, valued by its
id. - Items without
item_group_idbecome single products. - Description, brand and category come from the group’s first item; images from all items.
Stock
The first number found in the quantity fields is the stock. Without one, out of stock means 0, and any other availability means the quantity is unknown: new products are created with inventory tracking off, and existing products keep their stock.
Akakçe fields
| Shopify | Akakçe element | Notes |
|---|---|---|
| Title | name | |
| Description | description | |
| Vendor | productBrand | |
| Product type | Last level of productCategory | Levels split at > |
| Images | imgUrl, additionalimages/imgUrl | |
| SKU | sku | Also the source ID; barcode when sku is missing |
| Barcode | barcode | |
| Price | price | No currency in the file: read as TRY, VAT-included |
| Stock | quantity | 9999 means “not tracked”: treated as unknown, like an untracked Shopify product |
Akakçe files have no variants: every product becomes one single-variant product, and there is no compare-at price. shipPrice and dayOfDelivery are not imported.
2. Read the dry run
Last report counts Records, To create, To update, Unchanged, Skipped, Price changes and Stock changes. Examples shows up to 20 rows per kind and Issues lists codes such as DUPLICATE_VARIANT or AMBIGUOUS_MATCH. Matching runs barcode first, then SKU: a supplier id that differs from your SKUs still matches when the barcode is the same.
3. Apply
Choose Apply to store and confirm. New products are created as drafts; matched products get only price, compare-at price and stock. To repeat this on a schedule, see Keep an import source up to date automatically.
Common problems
| Symptom | Cause | Fix |
|---|---|---|
| “Unrecognized XML” | The feed lacks the g: namespace or Akakçe elements | Map it yourself under Field mapping |
| Every size is a separate product | The supplier’s items have no item_group_id | Ask the supplier to add it |
| Options named Renk and Beden | Option names are fixed for this format | Rename the options in Shopify after import |
| Stock stays unchanged | in stock without a quantity field, or Akakçe 9999 | Ask the supplier for quantities |
| “Matches several store variants” | The same barcode or SKU is on more than one variant | Make barcodes unique in Shopify |