Selling on Trendyol Romania from your ERP
What's different about Trendyol's Romanian storefront
Trendyol's international marketplace runs on the same API as the Turkish one, but the Romanian storefront has its own rules, and a few of them aren't obvious until a call comes back 403 or a price lands wrong. The three that bite first: the currency is RON, not EUR; every request needs a registered User-Agent or the gateway rejects it; and price and stock don't update synchronously — you submit a batch and poll for the result.
This is a connector on the same engine that already runs Acumatica ⇄ eMAG in production for a Romanian seller. Trendyol RO is newer: the connector is built and tested, but several storefront specifics only get confirmed at sandbox onboarding. The ones still open are flagged below rather than dressed up as settled.
The mandatory User-Agent
Trendyol requires a User-Agent header on every call, formatted as {sellerId} - {integration company}. A missing or malformed one is a hard 403, not a soft warning. If you run the integration yourself, the company segment is your own name; operated through MEGZO, it's the registered integrator string. It's alphanumeric and short. This sounds trivial, but it's the single most common reason a freshly wired Trendyol account returns nothing — the credentials are fine, the header is empty.
Auth itself is HTTP Basic (API key and secret as username and password), the seller id is a path segment on every endpoint, and the staging gateway also wants your IP authorized. MEGZO routes all channel traffic through a fixed-IP egress hop, so the IP you whitelist stays stable.
Publishing offers: price and stock as an async batch
You don't set a Trendyol price and read back "done." You submit a price-and-inventory update keyed by barcode and get a batch request id. The change is pending until the batch processes. MEGZO reports that publish as pending truthfully — not a fake success — and the drift reconciliation confirms the value actually landed on the channel.
Stock is where oversell protection matters. MEGZO publishes channel stock = max(0, available − buffer), with the buffer configurable per tenant. The reference eMAG tenant runs a buffer of 2. The same formula and the same continuous reconciliation apply to Trendyol, so a unit counted down in the ERP isn't still for sale on the storefront a few minutes later. Prices flow from your ERP through field mapping you control — see how MEGZO maps a VAT-inclusive ERP price for the same mechanics on eMAG.
Pulling orders into the ERP, exactly once
Orders arrive as shipment packages. MEGZO picks them up two ways: a webhook wake-up where Trendyol delivers one, and a 5-minute pull heartbeat that sweeps live order statuses regardless. The sweep is the safety net — if a webhook is missed and a package has already moved past its initial status, the poll still finds it. Orders don't fall through.
Each Trendyol order becomes exactly one ERP Sales Order. That's enforced three ways: a unique order link, a per-order lock, and a duplicate pre-check on the ERP side before the SO is created. A retry after a timeout re-runs the work and lands on the existing order — it never mints a second one. Trendyol settles the seller, so orders come in as prepaid.
Invoices: MEGZO attaches, it does not generate
This boundary is firm. MEGZO never generates a fiscal or legal invoice, and never creates or submits anything to e-Factura / ANAF. Your ERP and ANAF own fiscal invoicing, full stop. Where invoice-to-channel is enabled, MEGZO fetches an already-produced invoice PDF (for example, an Acumatica file attachment) and attaches it to the order. It moves a document; it does not produce one.
What's confirmed vs. onboarding-dependent
Confirmed and built: RON pricing, the mandatory User-Agent, Basic auth, the async price/stock batch, order ingestion as packages, idempotent Sales Orders, oversell buffering, and returns and cancellation handling.
Pending sandbox confirmation for the RO storefront, and flagged in the connector rather than guessed:
- The literal storefront-code header value, and whether the order endpoints require it at all.
- The exact international order-list path for the RO marketplace.
- Whether order line prices arrive VAT-inclusive (MEGZO defaults to treating them as gross and stripping to ex-VAT for the ERP, which is the safe assumption for a consumer marketplace).
- Carrier provider codes for handing back a tracking number — and note that the seller can't force a package to "Shipped" on Trendyol the way an eMAG AWB auto-finalises; that transition is carrier-driven.
None of these block the build; they get pinned during Trendyol's international onboarding, which the seller's account drives.
Where this fits
Trendyol is one channel on a managed, per-tenant engine where your ERP stays the single source of truth — MEGZO is the sync layer, not the place your catalog lives. That's the difference from running everything inside BaseLinker. The same orders flow that pours eMAG into Acumatica pours Trendyol in too, with no engine changes. See all integrations, the other guides, or get started.