AI Class

AI Agent Sinkronisasi Stok & Order dengan n8n: Anti Oversell untuk Shopee/Tokopedia + WooCommerce

· 8 menit baca

AI Agent Sinkronisasi Stok & Order dengan n8n: Anti Oversell untuk Shopee/Tokopedia + WooCommerce

Kalau kamu jualan di banyak channel, kamu pasti pernah kena oversell: stok di WooCommerce bilang masih ada, tapi order Shopee/Tokopedia masuk barengan dan akhirnya backorder, batal, rating jeblok. Artikel ini bahas solusi yang bener-bener praktis: AI Agent Sinkronisasi Stok & Order dengan n8n untuk jaga stok real-time lintas marketplace, plus otak AI yang otomatis mendeteksi anomali, memperbaiki mapping SKU, dan kasih rekomendasi safety stock. Fokus kita bukan teori, tapi workflow produksi yang bisa kamu rakit minggu ini.

Masalah Nyata yang Kita Tembak

  • Oversell saat flash sale: order masuk bertubi-tubi, stok belum sempat ter-update lintas channel.
  • SKU berantakan: di marketplace namanya beda, variannya campur, mapping manual makan waktu.
  • Event yang hilang: webhook marketplace telat, atau gagal. Tiba-tiba ada order yang nggak pernah kesinkron.
  • Rate limit: API WooCommerce/marketplace throttle, update stok delay.
  • Tim sibuk padamkan api: cek mutasi stok manual, export CSV, import lagi. Capek.

Konsep Inti (Tanpa Basa-Basi)

  • Event-driven + idempotency: semua perubahan stok dan order jadi event unik. Setiap event diproses sekali (atau aman jika diulang).
  • Stock reservation: saat order masuk, kita reserve stok dulu dengan TTL (mis. 15 menit). Kalau pembayaran gagal, stok otomatis balik.
  • SKU normalization: satu sumber kebenaran untuk SKU/varian. Marketplace SKU → SKU pusat → WooCommerce SKU.
  • AI Agent: otak yang memantau anomali (stok minus, mismatch, event loncat), auto-suggest mapping SKU, dan memicu perbaikan.
  • Fallback polling: ketika webhook miss, polling terjadwal memastikan konsistensi.

Arsitektur Tingkat Tinggi: AI Agent Sinkronisasi Stok & Order dengan n8n

Komponen kunci yang perlu kamu rakit di n8n:

  • Inbound Webhook untuk Shopee/Tokopedia order-created/paid, plus WooCommerce order.created.
  • Normalization & Matching Layer (Code/Function node) untuk mapping SKU/variant ke katalog pusat.
  • Reservation & Concurrency Control (Redis via REST/HTTP atau Postgres row-level lock) untuk kunci stok.
  • Inventory Updater (HTTP Request ke WooCommerce/Marketplace API) dengan rate limit dan retry backoff.
  • Idempotency & Outbox (Postgres + unique key + status) untuk menjamin exactly-once secara praktis.
  • AI Agent (OpenAI/LLM node) sebagai anomaly reasoner dan SKU matcher berbasis embedding.
  • Observability (metrics, alert Slack/WhatsApp) agar tim tahu kalau ada drift/lag.

Workflow Teknis: AI Agent Sinkronisasi Stok & Order dengan n8n

1) Order Event Intake

  • Webhook » Shopee/Tokopedia Order Created: terima payload order_id, items[sku, qty], status (UNPAID/PAID), channel.
  • IF » Idempotency Check: cek ke Postgres tabel processed_events (pk: channel+order_id+event_type). Jika sudah ada, drop dengan log.
  • Function » Normalize Items: mapping marketplace_sku → canonical_sku via tabel sku_map.
  • Code » Stock Reservation:
    • Try SETNX reservation:key (canonical_sku) with qty, TTL 15 menit.
    • Jika stok tidak cukup → flag backorder, kirim ke AI Agent untuk rekomendasi (split shipment, substitute).
  • Postgres » Outbox: simpan event dengan status=reserved, version, timestamp.

2) Payment Confirmation & Commit

  • Webhook » Order Paid dari channel terkait.
  • Function » Consume Reservation: kurangi stok fisik (update inventory master) sesuai qty yang di-reserve.
  • HTTP » Update Stok ke WooCommerce: PATCH /wp-json/wc/v3/products/{id}/variations/{id} stock_quantity.
  • HTTP » Update Stok ke Semua Channel: broadcast ke Shopee/Tokopedia untuk sync stok terbaru.
  • Postgres » Mark Outbox Delivered: status=committed, with delivery receipts.

3) Cancellation/Timeout Handler

  • Cron » Sweep Expired Reservations: tiap 1 menit, cek reservation yang TTL-nya habis.
  • Function » Release: balikan stok, update inventory master.
  • HTTP » Re-sync: update stok semua channel.

4) Polling Fallback + Reconciliation

  • Cron » Poll Orders: endpoint list orders last 5 menit per channel untuk jaga-jaga webhook miss.
  • Function » Diff: bandingkan dengan outbox; kalau ada gap, masukkan ke Recovery Queue.
  • AI Agent » Anomaly Reasoner: jelaskan kenapa ada gap (rate limit? 500? sku map hilang?) dan sarankan aksi.
  • Worker Flow » Replay: proses ulang event dengan idempotency key yang sama.

5) SKU Mapping Otomatis dengan AI

  • Embedding: buat vektor dari judul produk, variasi, atribut marketplace.
  • Vector Search: cari kandidat canonical_sku terdekat di katalog.
  • LLM Validator: minta AI menilai kecocokan berdasarkan atribut (warna/ukuran/berat) dan threshold.
  • Human-in-the-loop: kalau confidence rendah, kirim ke Slack/WhatsApp untuk approval 1-klik, auto-update sku_map.

6) Rate Limit, Retry, dan Dead Letter

  • Rate Limited HTTP: n8n HTTP Request + limiter (X per detik) per host.
  • Retry Backoff: exponential retry untuk 429/5xx.
  • Dead Letter Queue: setelah N gagal, kirim ke DLQ dan ping AI Agent agar menyarankan remediasi.

Contoh Real: Brand Fashion Lokal, 3 Channel, 2 Gudang

Situasi:

  • Channel: Shopee, Tokopedia, WooCommerce.
  • 2 gudang (Jakarta & Bandung), SKU variannya banyak (warna/ukuran).
  • Masalah: oversell saat promo 12.12, webhook Tokopedia kadang delay, SKU map berantakan.

Implementasi dengan AI Agent Sinkronisasi Stok & Order dengan n8n:

  • Single Source of Truth: Postgres untuk master inventory per lokasi; field committed_qty, reserved_qty, available = committed - reserved.
  • Reservation: setiap order UNPAID tetap reserve qty kecil (mis. 1) selama 10 menit untuk varian high-demand, sisanya saat PAID.
  • SKU AI Matching: 2.500 listing lama di-scan; 87% auto-match, sisanya minta approval via Slack.
  • Fallback Polling: cron 1 menit untuk kedua marketplace; recovery gap rata-rata < 3 menit.
  • Observability: alert jika drift stok > 3 atau lag update > 60 detik.

Hasil 30 hari:

  • Oversell turun dari 2,8% ke 0,1%.
  • Waktu sync stok rata-rata 11 detik end-to-end.
  • Waktu onboarding SKU baru per minggu turun dari 4 jam ke 35 menit.

Langkah Rakit Cepat di n8n (Vibe Coding)

Goal: MVP jalan dalam 1–2 hari, aman untuk live test terbatas.

  • DB Setup:
    • Postgres: tables inventory(canonical_sku, location, committed, reserved, updated_at), sku_map(channel, external_sku, canonical_sku, confidence), processed_events(id, channel, order_id, type, status, ts), outbox(id, payload, status).
    • Index unik: processed_events(channel, order_id, type).
  • Node Inti:
    • Webhook nodes: /orders/shopee, /orders/tokopedia, /orders/woocommerce.
    • Function/Code: normalizeOrder(), computeReservationKey(), idempotencyKey().
    • HTTP Request: WooCommerce REST (Consumer Key/Secret), Shopee/Tokopedia API.
    • Postgres: upsert inventory & logs.
    • OpenAI: anomaly_reasoner, sku_matcher.
    • Slack/WhatsApp: approval sku_map dan incident alert.
  • Control Plane:
    • Rate limit per host: 5 rps, burst 10.
    • Retry: 3x, exponential (1s, 3s, 9s), then DLQ.
    • Timeout SLA: stok cross-channel < 30 detik.
  • Safety Checks:
    • IF: available < 0 → lock SKU dan kirim alert.
    • IF: mapping miss → stop update, trigger sku_matcher.

Detail Node yang Sering Ditanya

  • Idempotency: simpan hash payload (order_id+status+items) sebagai kunci. Jika sama, skip side-effect.
  • Reservation: pakai Redis REST (Upstash) via HTTP node. Key: inv:{sku}:resv. Value: qty, TTL 900s.
  • WooCommerce Update: endpoint /wc/v3/products/{id}/variations/{vid} atau /products/{id} kalau simple product. Pastikan manage_stock=true.
  • Shopee/Tokopedia: gunakan endpoint update stock per SKU; batch jika ada, tapi hormati rate limit.
  • Observability: catat metric latency end-to-end, failure rate, dan drift stok. Kirim ringkasan harian via AI Agent ke Slack.

AI Agent Sinkronisasi Stok & Order dengan n8n: Peran Otaknya

  • Anomaly Reasoner: saat stok tiba-tiba minus di satu channel, agent menganalisis log, membandingkan event, dan membuat fix plan otomatis (mis. replay 3 event terakhir, re-fetch stok, push re-sync batch).
  • SKU Matcher: embedding + rules untuk memetakan varian; jika ragu, kirim 3 kandidat terbaik ke manusia.
  • Safety Stock Advisor: hitung demand volatility per SKU, lead time, penalty marketplace; sarankan buffer dinamis (mis. +2 selama puncak).
  • Runbook Generator: saat insiden, agent bikin ringkasan dan langkah manual fallback yang jelas.

Strategi Produksi yang Jarang Dibahas (Bagian Penting)

  • Pilih “sumber kebenaran” stok: tentukan di mana kebenaran stok disimpan (DB pusat). Channel lain hanya view.
  • Eventual consistency dengan SLA: jangan kejar real-time absolut. Tetapkan SLA 30 detik; ukur dan penuhi itu konsisten.
  • Lock sempit, cepat lepas: reservation TTL pendek saat UNPAID untuk high-demand; full commit saat PAID agar throughput tinggi.
  • Batch dengan bijak: push stok dalam batch hanya ketika load tinggi; jangan batch order commit, rawan konflik.
  • Versioned sku_map: setiap perubahan mapping versi baru; pastikan audit trail, karena mapping salah itu sumber chaos.
  • Canary on update: saat deploy template baru, batasi 10% SKU dulu, pantau drift, baru full rollout.
  • Outbox pattern: tulis dulu ke outbox DB, proses pengiriman ke API secara asinkron; ini mengurangi kehilangan event saat n8n restart.
  • Dead letter dengan konteks: kirim payload + trace id + log singkat ke DLQ; AI Agent bisa langsung menyarankan perbaikan.
  • Demand spike mode: tombol satu klik untuk menambah safety stock + rate limit lebih agresif + interval polling dipercepat saat promo.

Integrasi API: Hal-hal Kecil yang Menyelamatkan Hari

  • WooCommerce: aktifkan webhooks order.created, order.updated. Gunakan Consumer Key/Secret dengan permission write.
  • Shopee/Tokopedia: pastikan verifikasi signature HMAC benar. Simpan refresh token dan jadwalkan auto-refresh.
  • Time sync: pakai UTC di semua tempat. Timestamp drift 2–3 menit bisa bikin reconciliation kacau.
  • Currency & rounding: meski stok bukan uang, rounding qty untuk bundle/break-pack harus jelas.
  • Multi-warehouse: gunakan prioritas lokasi untuk fulfillment; agent bisa sarankan transfer antar gudang jika imbalance parah.

Roadmap Upgrade

  • Per-variant safety stock dinamis berdasarkan elastisitas demand dari histori.
  • Auto-bundling awareness: stok bundle mengikuti komponen, agent hitung komposisi.
  • Adaptive polling: naikin frekuensi saat webhook error rate tinggi.
  • Cost-aware throttling: pilih batch vs single call tergantung biaya + rate limit.
  • LLM guardrails: policy-as-code untuk mencegah agent melakukan update liar.

Checklist Uji Coba Sebelum Go-Live

  • Simulasi 500 order dalam 5 menit; ukur latency dan error.
  • Matikan webhook 10 menit; pastikan polling + recovery gap < 5 menit.
  • Uji race condition: 2 order SKU sama secara paralel; tidak boleh available < 0.
  • Cabut internet 30 detik; saat nyambung, outbox harus replay otomatis.
  • Ganti mapping SKU di tengah hari; versi lama harus tetap idempotent.

Ringkasan: Kenapa Pendekatan Ini Beda

  • AI Agent + n8n bukan cuma sync biasa; ada otak yang mengerti kapan sistem “ngaco” dan bisa memperbaiki atau minta bantuan.
  • Reservation + idempotency mematikan akar oversell, bukan hanya menambal.
  • Vibe coding: kamu bisa mulai kecil, iterasi cepat, dan tetap punya fondasi produksi.

Penutup: Saatnya Build

Oversell itu mahal. Reputasi hilang, biaya operasional naik, dan tim burn out. Dengan AI Agent Sinkronisasi Stok & Order dengan n8n, kamu bisa punya orkestrasi yang tahan banting plus asisten cerdas yang jaga akurasi setiap menit. Mulai dari MVP: 1 channel marketplace + WooCommerce, reservation sederhana, dan observability dasar. Lalu iterasi ke AI SKU matcher dan anomaly reasoner.

Call to action: clone workflow inti, sambungkan kredensial API, dan uji di sandbox. Mau kami kirimkan template n8n + schema Postgres + prompt AI Agent yang sudah battle-tested? Join JIPRAKS Classroom dan mulai build SaaS cepat dengan AI versi kamu minggu ini.

Artikel terkait