Response order bisnis kini mengembalikan primary key order canonical sebagai
string UUIDv7 setelah migrasi tabel order ke partisi. Gunakan
id dari
response untuk panggilan API bisnis lanjutan seperti GET /v3/orders/{id}
dan PATCH /v3/orders/{id}. ID numerik legacy untuk order yang sudah
dimigrasikan tetap diterima di route berbasis ID dan payload bulk ids
untuk kompatibilitas.Menambahkan panduan Storefront API end-to-end untuk agent dan frontend developer yang membangun storefront custom. Panduan ini mencakup arsitektur direct frontend, checklist setup, helper fetch, alur katalog, guest dan customer cart checkout, auth customer, lokasi, reset password, rendering payment, subscription, akses course, dan checklist implementasi akhir.
Response public order untuk Storefront API dan HTML Mode kini memakai shape buyer-facing yang lebih kecil. Response tetap menyertakan
secret_slug, public_order_url, payment_url, status, total, line item, data tampilan pengiriman, instruksi payment seperti pg_payment_info, serta object map variants dan bundle_price_options yang sudah ada, tetapi tidak lagi mengekspos ID order internal, revenue khusus dashboard, platform fee, payment-status history, atau atribusi affiliate.Storefront API v3 kini memakai
GET /v3/stores/{store_id}/public/items dan GET /v3/stores/{store_id}/public/items/count untuk feed katalog public karena feed ini mengembalikan product dan bundle price option. Detail product tetap GET /v3/stores/{store_id}/public/products/{slug}, dan detail bundle price option adalah GET /v3/stores/{store_id}/public/bundle-price-options/{slug}. Card katalog memakai entity_type untuk membedakan product dari bundle_price_option, sementara item_type product tetap bermakna tipe product seperti physical atau digital. Payload public cart item dan direct checkout item memakai { "type": "bundle_price_option", "bundle_price_option_id": ... } untuk bundle price option.Storefront API v3 kini memakai satu endpoint untuk order creation per mode auth:
POST /v3/stores/{store_id}/public/checkout untuk public checkout dan POST /v3/stores/{store_id}/customers/me/checkout untuk customer terautentikasi. Path kompatibilitas checkout v3 yang deprecated sudah dihapus dari kontrak. Direct checkout items sekarang memakai union bertipe eksplisit untuk variant dan bundle price option, dan model sumber item yang sama dipakai oleh shipping options, checkout summary, dan final order creation.Menambahkan panduan Storefront API end-to-end untuk agent dan frontend developer yang membangun storefront custom. Panduan ini mencakup arsitektur direct frontend, checklist setup, helper fetch, alur katalog, guest dan customer cart checkout, auth customer, lokasi, reset password, rendering payment, subscription, akses course, dan checklist implementasi akhir.
Response public order untuk Storefront API dan HTML Mode kini memakai shape buyer-facing yang lebih kecil. Response tetap menyertakan
secret_slug, public_order_url, payment_url, status, total, line item, data tampilan pengiriman, instruksi payment seperti pg_payment_info, serta object map variants dan bundle_price_options yang sudah ada, tetapi tidak lagi mengekspos ID order internal, revenue khusus dashboard, platform fee, payment-status history, atau atribusi affiliate.Storefront API v3 kini memakai
GET /v3/stores/{store_id}/public/items dan GET /v3/stores/{store_id}/public/items/count untuk feed katalog public karena feed ini mengembalikan product dan bundle price option. Detail product tetap GET /v3/stores/{store_id}/public/products/{slug}, dan detail bundle price option adalah GET /v3/stores/{store_id}/public/bundle-price-options/{slug}. Card katalog memakai entity_type untuk membedakan product dari bundle_price_option, sementara item_type product tetap bermakna tipe product seperti physical atau digital. Payload public cart item dan direct checkout item memakai { "type": "bundle_price_option", "bundle_price_option_id": ... } untuk bundle price option.Storefront API v3 kini memakai satu endpoint untuk order creation per mode auth:
POST /v3/stores/{store_id}/public/checkout untuk public checkout dan POST /v3/stores/{store_id}/customers/me/checkout untuk customer terautentikasi. Path kompatibilitas checkout v3 yang deprecated sudah dihapus dari kontrak. Direct checkout items sekarang memakai union bertipe eksplisit untuk variant dan bundle price option, dan model sumber item yang sama dipakai oleh shipping options, checkout summary, dan final order creation.Storefront API untuk checkout produk fisik kini selesai setelah langkah shipping option dan checkout summary yang terdokumentasi. Guest checkout, guest cart checkout, dan authenticated customer checkout summary serta confirm menghitung ulang ongkir terpilih di server berdasarkan courier service, warehouse, alamat tujuan, metode pembayaran, dan item cart sebelum membuat order. Semua response penyelesaian checkout kini mengembalikan public order response yang sama dengan public order read, sehingga guest checkout, guest cart checkout, authenticated customer checkout confirm, dan hosted public order page mengekspos field order yang konsisten. Route pengecekan discount code publik kini memakai request
POST dengan body konteks checkout JSON dan mengembalikan typed ineligible response untuk kode yang tidak ditemukan. Storefront API v3 payment-method discovery dan checkout creation kini menolak no_payment, sehingga submission API langsung tidak dapat membuat order storefront tanpa pembayaran.OpenAPI juga kini mencakup kontrak customer account, customer cart, customer order, dan customer course yang bertipe. Public order response tetap mencakup buyer-facing order link, total, line item, shipping detail, dan field pembayaran seperti public_order_url, payment_url, dan pg_payment_info. Response order customer account kini memakai object order yang lebih kecil dan aman untuk buyer. Object ini mempertahankan total yang terlihat oleh buyer seperti gross_revenue serta field kompatibilitas minimal untuk portal customer Scalev, termasuk nama store, logo, unique ID, dan display flag. Object order customer account tidak menyertakan financial_entity, warehouse, origin_address, analytics bisnis/operator, net revenue, platform fee, provider, CRM, affiliate, dan data internal mentah.Endpoint storefront untuk customer terautentikasi kini mengembalikan response bertipe, bukan generic success envelope.
GET, PATCH, dan PATCH /password pada /customers/me/profile mengembalikan customer, store, dan is_generated_password_reset. Route cart (GET /customers/me/cart, tambah, update, dan hapus item) mengembalikan customer cart; tambah item cart kini mengembalikan 201. Route order memakai buyer-safe order response untuk list dan detail, dengan cursor pagination pada endpoint list. Route course mengembalikan response access, section, content, dan progress update yang bertipe.Storefront API kini mendokumentasikan persiapan guest checkout yang aman untuk browser, termasuk shipping options dan checkout summary. Public guest checkout dapat memakai guest cart token atau item variant langsung, mengembalikan field shipping option yang sama dengan hosted storefront, dan mengekspos summary seperti
product_price, shipping_cost, other_income, other_income_name, dan gross_revenue. OpenAPI juga kini mencakup named schema untuk endpoint checkout customer serta route storefront normal-shopping yang tersisa, seperti categories, variant pricing, cart merge, public order read/update, dan discount-code checks. Dokumentasi Storefront API kini mencakup panduan checkout dan rendering pembayaran berdasarkan perilaku hosted success page.Endpoint auth customer storefront kini mengembalikan response token JWT yang bertipe.
POST /public/auth/login mengembalikan access dan refresh token customer saat store dapat menyelesaikan login langsung, atau { "message": "..." } saat OTP sudah dikirim dan frontend perlu menampilkan langkah input OTP. POST /public/auth/otp/verify dan POST /public/auth/jwt/refresh juga mengembalikan token_type, expires_in, dan refresh_expires_in. Refresh token dirotasi pada setiap refresh, bersifat sekali pakai, dan mencabut token family saat refresh token yang sudah dirotasi digunakan ulang. Kirim access token sebagai Authorization: Bearer <token> ke route /customers/me/*. Link reset password kini memakai /reset-password?token=<reset-token> pada browser Origin saat origin tersebut cocok dengan allowed origin Storefront API, dan fallback ke custom domain hosted storefront jika tidak cocok. URL reset member area hosted reguler tidak berubah.Schema OpenAPI publik untuk route count katalog kini mendokumentasikan
{ "total": number }, dan GET /public/products/{slug} kini mendokumentasikan storefront product detail response, bukan public order schema.Response pembayaran order kini mendokumentasikan
pg_payment_info per tipe provider. Metode manual seperti bank_transfer dan cod mengembalikan object kosong; virtual account mengekspos referensi provider dan detail akun; QRIS mengekspos data QR atau payload gambar QR; e-wallet, kartu, dan invoice dapat mengekspos action provider, sementara browser sebaiknya memakai payment_url untuk redirect hosted. sub_payment_method didokumentasikan sebagai channel provider, misalnya kode bank virtual account, saat tersedia.Request Storefront API yang memakai
X-Scalev-Storefront-Api-Key atau X-Scalev-Guest-Token kini diberi rate limit sebagai request client/browser langsung. Request bisnis yang terautentikasi mesin tetap diberi rate limit per API key atau instalasi OAuth. Metadata rate limit dikembalikan dalam header X-Ratelimit-*.Setup Storefront API kini didokumentasikan terpisah dari konfigurasi hosted Storefront. Frontend storefront dapat memakai panggilan Storefront API langsung dengan CORS, identitas cart
X-Scalev-Guest-Token, endpoint payment-method publik dan guided location lookup, typed guest checkout, public order read yang diminimalkan, pembuatan pembayaran publik yang idempotent, dan store unique_id publik di seluruh route setup dan runtime. Response login customer kini mendokumentasikan hasil direct-token dan OTP-challenge, link reset password memakai /reset-password?token=<reset-token> pada origin storefront yang tervalidasi, request Storefront API didokumentasikan sebagai direct-client rate limited, dan response pembayaran mendokumentasikan kapan memakai payment_url dibanding pg_payment_info khusus provider.Order list search kini menerima
search_field, sehingga client dapat memilih satu kolom order yang dicari per request. Jika tidak diisi, search_field default ke order_id.Menerbitkan halaman dokumentasi developer Scalev pertama untuk autentikasi API, otorisasi OAuth, webhook, dan pembuatan order.

