# Order TikTok via Jakmall — rekam lab (marketplace)

**Diperbarui:** 2026-06-04 02:29 — bos sudah proses & bayar (Sedang Diproses)  
**Contoh order:** `data/reference/order-tiktok-marketplace-contoh.json`  
**Contoh proses:** `data/reference/tiktok-order-process-contoh.json`  
**Tangkapan mentah:** `data/api-captures/2026-06-04/`

---

## Penting: beda dengan order website

| | Order **website** (MitraJual) | Order **TikTok** (marketplace) |
|--|------------------------------|--------------------------------|
| Masuk dari | Webhook / form lab `orders/` | TikTok Shop → sync Jakmall |
| UI Jakmall | `/mitra/checkout` dropship | `/mitra/purchase-history` → **Pesanan Baru** |
| Lab kita | `mitraonline/orders/` | **Tidak** lewat checkout dropship |
| ID contoh | `WEB-20260604-…` | `JWqjz1BJ2L` (Jakmall internal) |

---

## Order real yang sudah terekam (bos, 02:24)

| Field | Nilai |
|-------|--------|
| **Jakmall order id** | `JWqjz1BJ2L` |
| **Tab** | `marketplace_order` → `status_need_process` (Perlu Diproses) |
| **Total** | Rp 72.310 |
| **Item** | Rp 72.310 |
| **Affiliate fee** | Rp 2.200 |
| **Margin** | Rp 56.110 |
| **Cashless** | ya (`is_cashless: true`) |
| **COD** | tidak |
| **Marketplace order** | ya (`is_marketplace_order: true`) |
| **Toko channel** | TomboAti Nasional (TikTok Shop) |
| **Invoice marketplace** | `584348407969384417` |
| **Produk** | Remote AC K-1028E Putih · SKU `CHRC03WH` |
| **Kurir** | J&T REG |
| **Tujuan** | Kab. Bogor, Jawa Barat |
| **Bayar mitra (UI)** | Rp 16.200 (`payment_total` di marketplace_order) |
| **Tombol utama** | **Proses & Bayar Pesanan** (`process_and_create`) |
| **Status saat capture** | Pesanan Baru (Perlu Diproses) · MP: Menunggu Pengiriman |

Halaman saat capture:  
https://www.jakmall.com/mitra/purchase-history?tab=marketplace_order&tab_detail=status_need_process

---

## API — sebelum proses (02:24)

| Method | Endpoint | File |
|--------|----------|------|
| GET | `/_api/affiliate/purchase-history/tab?tab=marketplace_order` | `api-affiliate-purchase-history-tab.jsonl` |
| GET | `/_api/affiliate/purchase-history/filter` | `api-affiliate-purchase-history-filter.jsonl` |
| GET | `/_api/affiliate/purchase-history/order/list` · `tab_detail[]=status_need_process` | `api-affiliate-purchase-history-order-list.jsonl` |

---

## API — proses & bayar (02:28–02:29) ✅

Urutan saat bos klik **Proses & Bayar Pesanan**:

| # | Method | Endpoint | Status | File |
|---|--------|----------|--------|------|
| 1 | GET | `/_api/affiliate/purchase-history/order/payment-method` | 200 | `api-affiliate-purchase-history-order-payment-method.jsonl` |
| 2 | POST | `/_api/affiliate/purchase-history/order/deadline-check` | 200 | `api-affiliate-purchase-history-order-deadline-check.jsonl` |
| 3 | POST | `/_api/affiliate/purchase-history/order/confirm` | **202** | `api-affiliate-purchase-history-order-confirm.jsonl` |

**Body `confirm` (untuk otomasi nanti):**

```json
{
  "order_ids": ["JWqjz1BJ2L"],
  "payment_type": "jakwallet",
  "payment_billing": "pay_now",
  "password": "<PIN_JAKWALLET — dari setting operator, jangan commit>"
}
```

**Setelah sukses:** order pindah ke **Sedang Diproses** — `tab_detail[]=status_on_process` (list GET 02:29:12).

> **Keamanan:** capture mentah sempat menyimpan PIN; di file lab sudah diganti `[REDACTED]`. Untuk otomasi, simpan PIN di `config/` lokal (gitignore), bukan di JSON referensi.

---

## Cakupan kerja bos (operasional)

Bos **biasanya hanya sampai proses** — yaitu **Proses & Bayar** → order masuk **Sedang Diproses**.  
Langkah **Atur Pickup / Pengiriman / resi** biasanya **lanjut otomatis** di sisi Jakmall/gudang; **tidak perlu** direkam atau diotomasi di lab untuk alur harian.

**Untuk Fase D (otomasi lab), cukup API yang sudah terekam:**

1. Poll `order/list` · `status_need_process`  
2. `deadline-check` → `confirm` (jakwallet + PIN operator)

Pickup (`request-to-pickup`) = **opsional** — hanya jika nanti ada kebutuhan khusus.

---

## Checklist rekam (bos)

- [x] Tab Perlu Diproses — list order  
- [x] Proses & bayar Jakwallet — `confirm` + `payment-method`  
- [x] Sedang Diproses — list `status_on_process`  
- [x] **Cukup untuk alur bos** — pickup tidak wajib  

---

## Alur otomasi nanti (terpisah dari website)

Modul marketplace = **Fase D** di `docs/ROADMAP-OTOMASI.md`:

- Poll `order/list` → notifikasi order baru TikTok  
- Operator approve (atau auto) → `deadline-check` → `confirm` (jakwallet + PIN) → selesai di **Sedang Diproses**  
- **Tidak** perlu otomasi pickup/pengiriman (biasanya otomatis setelah proses)  
- **Tidak** dicampur dengan antrian `mitraonline/orders/` (website dropship)

---

## Dashboard lab

- Tangkapan API: http://localhost/mitraonline/captures.php  
- Peta belajar: http://localhost/mitraonline/learn.php  
- Referensi checkout website: `docs/REFERENSI-API-CAPTURE.md` (§8 beda alur)
