Custom store API / Status mapping
Order status mapping
Put the Cafe24 status code in order_status on every item. Lillo works out the overall order status from the item statuses.
Cafe24 code → Lillo status
| Cafe24 `order_status` | Meaning | Lillo `status` |
|---|---|---|
N00 | Awaiting payment | pending_payment |
N10 | Paid, preparing items | paid |
N20 N21 N22 | Preparing / waiting / on hold | preparing |
N30 | In transit | shipping |
N40 | Delivered | delivered |
C00 C10 | Cancellation requested / accepted | cancel_requested |
C34 C40 | Canceled | canceled |
R00 R10 | Return requested / accepted | return_requested |
R40 | Returned | returned |
E00 E10 | Exchange requested / accepted | exchange_requested |
E40 | Exchanged | exchanged |
| — | Refunded | refunded (standard value only) |
Only send the standard status (extension) when your own status doesn't map cleanly to a Cafe24 code. If you send it, it takes priority. The display label is status_label (optional); without it, Lillo uses the Cafe24 label (e.g. “In transit”).
Shipment status
| `status` | Meaning |
|---|---|
standby | Waiting to ship |
shipping | In transit |
shipped | Delivered |
Statuses that allow writes (v1.1)
Writes are checked against the item order_status. If it doesn't allow the write, return 409 not_allowed_in_state along with the current order_status.
| Write | Allowed | Blocked |
|---|---|---|
Cancel cancellation | All target items not yet shipped (N00·N10·N20·N21·N22) | N30 and later, C*·R*·E* |
Return return | N40 (delivered) | Not yet shipped (→ cancel instead), N30 |
Exchange exchange | N30·N40 (if your policy only allows N40, return 409 for N30) | Not yet shipped, C*·R* |
Address receivers | Not yet shipped, N00–N22 | N30 and later |
Memo memos | Any status | — |
| Issue a coupon | Doesn't depend on order status (only member and coupon validity are checked) | — |
- If the item already has
C00·C10·R00·R10·E00·E10, return 409already_requested. - Lillo pre-checks the same rules before calling, but your store has the final say.