Skip to content
FunksjonerPriserPartnerBloggHjelpOm ossKontakt
Kom i gangLogg inn
Tilbake til Bloggen
guides2026-07-216 min lesing

Ett lager, tre markedsplasser: Getir + Trendyol GO + Yemeksepeti integrasjon

En döner-kjede med 4 filialer i Izmir driver tre tyrkiske leveringsplattformer fra én meny. thMenu master record, webhook fan-out og atomisk UPDATE i D1.

th

thMenu Team

thmenu.com

En döner-kjede med 4 filialer i Izmir Alsancak er tilkoblet Getir Yemek, Trendyol GO og Yemeksepeti samtidig. I stedet for å vedlikeholde tre separate menyer bruker de thMenu som master record; lagerfradrag skjer på ett sted, og en webhook fan-out oppdaterer de tre plattformene.

Master record-arkitektur

Kolonnen products.stock_quantity i D1_MENU er den eneste kanoniske kilden. Ved ordrebekreftelse: UPDATE products SET stock_quantity = stock_quantity - 1 WHERE id = ? AND stock_quantity > 0. 0 rader = utsolgt.

Ved suksess går en hendelse til Cloudflare Queue. Tre workers patcher API-ene parallelt. Gjennomsnittlig fan-out-latens 340 ms.

Konfliktløsning

Scenario: 5 lahmacun på lager. I løpet av samme sekund kommer 5 ordrer fra tre plattformer. Atomisk UPDATE serialiserer — den siste finner 0 og avvises. Slutttilstand 0, tre "utsolgt"-signaler.

D1 har ikke eksplisitte row locks, men WHERE stock > 0 spiller samme rolle. Null over-sell på 6 måneder.

Drift-avstemming

Yemeksepeti-webhook har 30 s forsinkelse, Trendyol er øyeblikkelig, Getir poller hvert 5. sekund. En timesvis cron sammenligner alle tre med master.

  • Yemeksepeti 5, Getir 3: master til 5, PATCH Getir
  • Master 0, plattform 2: umiddelbar PATCH 0
  • Drift > 3: Slack-varsel

FAQ

Må jeg legge inn menyer manuelt på hver plattform? Nei, master record + fan-out automatiserer alt.

Hvem får prioritet ved race? FIFO etter timestamp, taperen får 422.

Er cron manuell? Nei, timesvis på Workers med Slack-varsel ved stort drift.

Var dette nyttig? Del det.