Skip to content

Data feeds

A data feed pulls your data from a URL (XML, CSV or JSON) on a schedule, maps its fields to Zitena fields and writes it to your knowledge sources. Feeds are on the Knowledge Sources → Data feeds tab and need Data feeds in your plan. Reading is open to members; creating, editing and running feeds to admins; every change is written to the Change History.

How a data feed runs1. Download (https, SSRF-protected, ≤50 MB) → 2. Parse (XML / CSV / JSON) → 3. Map (fields and statuses) → 4. Validate (same model as the Data API) → 5. Write (knowledge sources, orders)Downloadhttps, SSRF-protected,≤50 MBParseXML / CSV / JSONMapfields and statusesValidatesame model as the DataAPIWriteknowledge sources,orders
  1. New feed: enter a name and URL. The URL must start with https://. If needed choose authentication: Basic (username/password) or Header (e.g. Authorization and a token). Passwords and tokens are write-only.

  2. Choose a target: products, orders, categories, kb (knowledge content) or customers.

  3. Format: auto (default), google_merchant, xml, csv or json. For XML and JSON, leave the record path empty to detect where records are.

  4. Preview: the file is downloaded and the first 5 records, the field list and the suggested mapping are shown. The preview updates as you change the mapping without downloading again.

  5. Choose a schedule and full sync and save; run it right away if you like.

Source field names are matched to Zitena fields by name: Turkish letters are simplified, the g: prefix and punctuation are ignored, and known export names (Google Merchant, WooCommerce CSV, Shopify, Ticimax, ikas) are recognised. A source field maps to only one target. If there is a preset for your platform, its known field names are preselected (only if they really exist in your file). A saved mapping of another feed writing to the same target takes priority if all its source fields exist in the file.

Target fields (* required):

TargetFields
productsurun_adi* (name), item_ref, urun_kodu (SKU), fiyat (price), normal_fiyat (list price), stok, stokta (in stock), kategori, marka (brand), url, gorsel (image), kisa_aciklama (description), uyumluluk (compatibility), renk, depolama, bellek, durum, kargo_suresi
ordersexternal_id*, status*, number, customer_name, phone, email, total, currency, items, carrier, tracking_number, tracking_url, shipping_method, shipping_city, payment_method, created_at, modified_at, customer_id
categorieskategori_id*, kategori_adi*, ust_kategori_id, yol, urun_sayisi
kbid*, baslik* (title), icerik* (content), bolum (section), url
customersThe customer fields of the Data API

Every mapped record goes through the same model as the Data API and becomes the same row as data sent through the API. The discounted price is only used if it is greater than zero and lower than the selling price, so a product without a discount never gets a price of 0. Dates are interpreted in Turkey time; formats such as 24.09.2026 10:15 are recognised. Row errors (up to 50) are shown in the run record.

In an order feed, source status values are mapped to the short names in your company’s status model. The suggestion goes by keyword to a group (e.g. “kargo”, “ship” → in transit; “iptal”, “refund” → cancelled), and from the group to your company’s first status in that group. Standard short names:

Short nameGroup
pending, on-holdpending
processingapproved
invoicedinvoiced
shippedin transit
delivered, completedcompleted
cancelled, refunded, failedcancelled

With full sync on, records missing from the feed are deactivated (not deleted; they come back when they reappear). Knowledge entries added by hand in the console (ek- prefix) are kept. Leave it off unless you are sure the file is always the complete list.

  • https only; the address is resolved again on every redirect and addresses leading to local/private networks are rejected.
  • At most 5 redirects (credentials are only sent to the same origin), 60 s timeout, 50 MB file limit.
  • Conditional requests with ETag / Last-Modified: if the file hasn’t changed (304), it isn’t processed again.
  • Requests use User-Agent: Zitena-Feed/1; allow it if your server blocks unknown agents.