Marketplace Integration

Marketplace Integration Management: Trendyol, Hepsiburada, Amazon

We'd build single-panel stock, price, and order synchronisation, automated product listing, and order orchestration for Trendyol, Hepsiburada, Amazon, and N11: an integration layer that closes over-sell, wrong-price, and late-shipment risk at the source.

An Excel sheet on Trendyol, a separate panel on Hepsiburada, another screen on Amazon, an entirely different flow on N11. Most businesses selling across multiple marketplaces in Turkey still manage stock, price, and orders by hand, channel by channel. The result is three kinds of loss at once: selling the last unit on two marketplaces at the same time and having to cancel (over-sell), forgetting to update a campaign price on one channel and selling at a loss, and noticing an order too late, missing the marketplace's delivery window (SLA), and taking a penalty or score hit. As revenue grows, these three compound into operational debt. When we talk about marketplace integration, this is exactly the first thing we touch: building an orchestration layer that pushes stock, price, and orders from a single centre, event-driven and idempotent, to every channel, and that automates product listing.

The Cost of Managing Each Channel by Hand

The last unit sells on two marketplaces at the same time (over-sell); the order is cancelled, the marketplace store score drops, the customer is lost, and as the cancellation rate climbs, storefront visibility falls too.

A campaign or markup price is updated on one channel and forgotten on another; the product sells at the wrong price for days: either at a loss, or sitting pricier than the competition and never selling.

The order reaches the office late; the marketplace's hand-off-to-courier window (a specific cut-off on Trendyol, for example) is missed, triggering a late-shipment penalty and an SLA breach.

Each product has to be opened by hand on every marketplace; category and mandatory-attribute mapping is person-dependent, a 200-product launch drags on for days, and listing mistakes turn into rejected listings.

It is invisible which channel is actually profitable; because commission, shipping, and return line items are not broken out per channel, management cannot answer 'which marketplace should we grow' with data.

Our Approach

On a marketplace integration project our first decision is always to set a single source of truth. The root of multi-channel chaos is that each marketplace keeps its own stock and price separately and none of them is aware of the others. So we'd consolidate stock, price, and product master data on a central PIM and PostgreSQL, and position the marketplaces as nothing more than a "reflection" of that centre. No channel is an authority on its own; even an order arriving from a channel is just an event to decrement the central counter; the marketplace does not own that stock. If this principle is not set from day one, over-sell never fully closes no matter how fast you synchronise.

The second critical decision is event-driven synchronisation. Walking every channel one by one to update it whenever stock or price changes (polling) is both slow and rate-limit hungry. Instead we'd publish the change as an event to RabbitMQ or Kafka, and have a separate consumer service for each marketplace write that event to its own API. This architecture solves two things at once: the change propagates to all channels within seconds, and because each channel runs at its own pace, a slow one does not block the others. We keep hot data (live stock, active orders) in Redis, managing both read load and concurrency locks at this layer.

The third layer is the wall everyone working with marketplaces eventually hits: rate limits, retries, and idempotency. Trendyol, Hepsiburada, Amazon SP-API, and N11 each impose a different rate limit and error behaviour. We put a token-bucket rate limiter in front of each channel; requests are pulled from the queue at a controlled pace, so a spike never hits the API directly. On transient errors (429, 5xx) we retry with jittered exponential backoff; persistent failures land in a dead-letter queue. The most critical point is idempotency: for writes such as order confirmation and stock update, we assign each operation an idempotency key so that if a retry fires it twice, no duplicate record is created. This is the only mechanism that keeps the system safe in the "the network dropped, did the request go through or not" uncertainty.

The final layer is product listing automation and order orchestration. We'd take a product defined once in the central PIM, translate it through a per-channel mapping layer into each marketplace's own category tree and mandatory attribute set, and list it automatically; incoming orders are collected in a single queue and managed with a state machine (new → confirmed → shipped → delivered). The whole operation is gathered into one Next.js-based panel; which channel is being throttled, which listing was rejected, which order is approaching its SLA is all visible here. Sentry-based error and latency monitoring is set up from the start; the scenario where the integration silently breaks is the most expensive scenario.

Process

01

Channel & Data Model Analysis

We review which marketplaces (Trendyol, Hepsiburada, Amazon, N11), the current stock/price flow, and the product catalogue. The central PIM data model and a per-channel mapping table (category, attribute) are produced.

02

Central Stock/Price Core

Single source of truth: PostgreSQL plus central PIM, with hot stock and distributed locks on Redis. Atomic stock decrement and a per-channel safety buffer (buffer stock) logic are built.

03

Event-Driven Sync Layer

Stock/price change events on RabbitMQ/Kafka; a separate consumer service per marketplace. Token-bucket rate limiting, jittered retry, a dead-letter queue, and idempotency keys.

04

Product Listing + Order Orchestration

Automated listing from the central product (category/attribute mapping, barcode-GTIN matching), orders collected in a single queue, managed with a state machine, shipping/SLA tracking.

05

Panel, Monitoring + Go-Live

A single Next.js panel (channel health, listing status, SLA alerts, per-channel profitability) with Sentry-based error/latency monitoring. A pilot on one channel first, then a phased rollout to all marketplaces and hyper-care.

Our Preferred Technology Stack

We typically reach for the following, adapted per project to the marketplaces you work with, your product count, and your order volume.

Teknik Stack
Trendyol / Hepsiburada APIAmazon SP-APIN11 marketplace APIRabbitMQ / Kafka (event sync)PostgreSQLRedis (hot stock + distributed locks)Central PIM (product master)Token-bucket rate limitingJittered retry + dead-letter queueIdempotency keysNext.js (management panel)Sentry (error + latency monitoring)

Sıkça Sorulan Sorular

We work on a single source of truth principle: the master stock counter lives on a central PIM and PostgreSQL, and no marketplace is an authority on its own. When an order drops on one channel, stock is decremented atomically and the change is published event-driven to all channels over RabbitMQ/Kafka. The real cause of over-sell is concurrency: if the same last unit sells on two marketplaces at once, you get a clash. We solve this with a distributed lock and reservation logic on Redis; on top of that, each channel can be given a small safety buffer (buffer stock). We bring sync latency down to seconds; the remaining risk is closed by receiving instant order notifications through marketplace webhooks.

Let's Talk About Your Marketplace Integration

Book a 15-to-30-minute discovery call, free, no commitment. We learn the marketplaces you work with, your current stock/price flow, and your order volume, then come back with an architectural direction and a clear cost range.