Search
Menu
Türkçe See apps

Map the fields of an unrecognised supplier XML

When a supplier XML matches no known format, inspect the file, pick the product record, map each field from sample values and run a dry run.

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.

Not every supplier uses Ticimax, T-Soft, Google or Akakçe format. For any other product XML you tell Buinbu which element holds a product and where each value sits; from then on the source behaves like any other: dry run, apply and automatic updates.

When the mapping card appears

Add the source as usual: Import, Add source, paste the XML URL and choose Save and run a dry run. If the format is not recognised, the run ends with “Run failed: Unrecognized XML…” and the Field mapping card appears on the source page. The price rules you entered on the form stay valid for the mapped source.

1. Inspect the file

Choose Inspect file. Buinbu downloads only the first 256 KB of the file and looks for an element that repeats and has child elements. If it finds none, the card reads “No repeating product record found. Make sure the address is a product XML.”

2. Choose the product record

Under Product record, Element that holds each product (or variant) lists the candidates as <Urun> · 3 records, the shallowest first. The count covers the inspected part only, not the whole file. Pick the element that wraps exactly one product, or one variant when the supplier writes one record per size or colour. Changing the element inspects the file again.

3. Map the fields

Under Fields each target field has a list of the paths found in the first five records, each with a sample value: Fiyatlar/Satis — 749,90 TL. Fields whose path name looks familiar (barkod, stok, marka, price) are filled in for you; check each one, and choose — Not used — for anything you do not need. Required fields are marked with *.

FieldRequiredNotes
Product / variant codeYesUnique per record; also the SKU when SKU is not mapped
Product nameYes
Sale priceYes749,90, 1.249,90 TL and 349.90 TRY are read; a currency in the value is used
List (regular) priceKept as compare-at price only when higher than the sale price
StockNot mapped: stock is unknown, so new products are created untracked and existing stock stays
Barcode, SKUUsed for matching: barcode first, then SKU
Brand, Category, DescriptionCategory levels split at >; the last level becomes the product type
Main image, Additional imagesAdditional images takes every value of a repeating path
Variant group codeRecords with the same code become variants of one product
Option 1 value, Option 2 valueBecome options only when they differ inside a group
Cost priceWritten as cost per item when the currency matches the store’s
Currency fieldOverrides the currency in the price
VAT rate20, %20 and 0.2 all mean 20%

Save mapping and run a dry run stays disabled while a required field is empty, and the card lists them as “Required fields missing: …”.

Paths, attributes and nested elements

Paths are relative to the record element:

PathReads
AdThe text of the <Ad> child
Fiyatlar/Satis<Satis> inside <Fiyatlar>
@kodThe kod attribute of the record itself
Resimler/Resim/@urlThe url attribute of every <Resim>

A path can go up to four levels below the record and end with one attribute. The lists show paths up to three levels deep that had a value in the sampled records. For this file:

<Urun kod="K-100-S">
  <Ad>Linen Shirt</Ad>
  <Fiyatlar><Satis>749,90 TL</Satis><Liste>899,90</Liste></Fiyatlar>
  <Stok>12</Stok><Barkod>8690000000035</Barkod>
  <Grup>K-100</Grup><Renk>White</Renk><Beden>S</Beden><Kdv>%20</Kdv>
  <Resimler><Resim url="https://example.com/1.jpg"/></Resimler>
</Urun>

map Product / variant code to @kod, Sale price to Fiyatlar/Satis, List (regular) price to Fiyatlar/Liste, Variant group code to Grup, Option 1 value to Renk, Option 2 value to Beden and Additional images to Resimler/Resim/@url.

4. Options and pricing

  • Option 1 name and Option 2 name: the Shopify option names for the two option values, by default Renk and Beden. An option whose value is the same in the whole group is dropped; if no option differs, the variants get an option named Seçenek with the record code.
  • Currency (if no field): used when neither a currency field nor the price carries one; default TRY. Prices are never converted.
  • Prices include VAT: on by default. Turn it off when the file has net prices; with Add VAT when source prices exclude VAT on the source (default), the VAT rate field is added, or VAT rate when the source has none (%). In the example, 749,90 net with 20% VAT becomes 899.88.

5. Save and read the dry run

Choose Save mapping and run a dry run. The banner reads “Mapping saved; a dry run started.”, the card shows the Custom mapping badge and the source type becomes Custom mapping. Read Last report as for any source, then Apply to store on a paid plan (plans).

Change or remove the mapping

  • To adjust, choose Inspect file (Inspect again after a first inspection): the saved fields are kept as long as the record element is the same. Change them and save again; a new dry run starts.
  • Remove mapping deletes the mapping and runs a dry run with automatic detection. Use it when the supplier switches to a supported format; an unrecognised file fails again and the card returns.

Common problems

SymptomCauseFix
“Could not inspect the file: …”The URL cannot be downloadedOpen the URL in a browser; remove IP or login restrictions
“Product without an ID” issuesProduct / variant code is empty in some recordsPick a path every record has
One product per sizeVariant group code not mappedMap the field that is shared by the sizes
Prices about 20% too highVAT added to prices that already include itTurn Prices include VAT on
A field is missing from the listIt sits deeper than three levels, or the first five records leave it emptyAsk the supplier for a flatter file

Type to search docs, blog and release notes. Shortcut: Ctrl K or ⌘ K.

    Can't find what you need? Write to support.