window.Scalev dari JavaScript browser. Runtime ini memberi konteks halaman yang aman, konteks store terpilih, helper checkout, forwarding analytics, helper prefill form, dan diagnostics tanpa mengekspos token API privat ke browser.
Halaman ini ditulis untuk developer dan AI agent yang membuat file HTML Mode. Gunakan method ini daripada memanggil URL Scalev privat secara langsung.
Ketersediaan
Runtime tersedia di halaman HTML Mode yang sudah dirender. Di preview editor lokal, beberapa method dapat mengembalikan data preview.Promise. Scalev.data.get() dan Scalev.diagnostics.get() bersifat synchronous.
Payload dan response method runtime memakai key object camelCase. Runtime menangani casing backend secara internal, jadi JavaScript halaman tidak perlu mengirim key snake_case. Runtime method juga mengembalikan hasil yang terlihat oleh JavaScript secara langsung. Container backend seperti data dan is_paginated dihapus sebelum array dikembalikan.
String enum dan blob milik provider tidak diubah. Contohnya success_page, direct_to_whatsapp, analytics parameters, metadata, dan customData tetap memakai nilai aslinya.
Konteks store
Saat Store Context dipilih,Scalev.data.get().store berisi ringkasan store terpilih, produk, dan bundle price option yang dipilih. Perlakukan data ini sebagai katalog checkout khusus halaman.
Saat HTML Checkout Page dipilih, Scalev.data.get().afterCheckout berisi tipe sukses setelah checkout yang dipilih dan konfigurasi tujuan publiknya.
Saat Store Context tidak dipilih, perlakukan store sebagai data yang tidak tersedia. Buat landing page biasa dan gunakan hanya method aman seperti Scalev.data.get(), Scalev.analytics.track(), dan Scalev.prefill.get().
Aturan keamanan
- Jangan taruh API key, JWT business user, storefront API key, customer token, cookie, atau credential di JavaScript halaman.
- Gunakan method
window.Scalevyang terdokumentasi, bukan URL Scalev privat atau API privat. - Buat order hanya setelah pengunjung sengaja submit form.
- Utamakan
Scalev.checkout.createOrder()saat submit; method ini memvalidasi payload sebelum order disimpan. - Gunakan hanya produk, bundle, harga, inventory, payment method, opsi pengiriman, dan identitas customer yang ada di runtime data.
Scalev.data.get()
Mengembalikan data publik halaman yang diinjeksi ke halaman yang dirender.
store.paymentMethodOptions untuk render pilihan payment. Render display, tampilkan logoUrl, dan submit value yang dipilih sebagai paymentMethod.
Value payment option sudah diratakan:
va:BRIberarti virtual account BRI.bt:BCA:paymentAccountUidberarti bank transfer manual untuk akun BCA tersebut.- Value seperti
cod,qris,invoice,alfamart, ataugopaytetap memakai nilai aslinya.
Method lokasi
Gunakan method ini untuk form alamat dan pengiriman.provinces, cities, dan subdistricts menerima query object opsional:
{ id, name }. Response subdistrict memakai id dan name untuk subdistrict, ditambah cityName, provinceName, dan display untuk label alamat.
Contoh response:
Scalev.checkout.validateDiscount(payload)
Memvalidasi kode diskon untuk payload checkout.
Scalev.checkout.shippingOptions(payload)
Mengembalikan opsi pengiriman untuk item, tujuan, dan payment method yang dipilih. Gunakan ini sebagai satu-satunya method lookup pengiriman.
shipping di estimateSummary dan createOrder. Runtime akan menyiapkan request checkout dari option tersebut. Opsi dapat berisi logoUrl saat courier code tersedia.
Contoh response:
Scalev.checkout.estimateSummary(payload)
Mengembalikan ringkasan checkout untuk halaman yang menampilkan breakdown biaya sebelum submit.
Method ini opsional. Kirim item, destination, payment, dan shipping yang sama seperti payload yang akan dikirim ke Scalev.checkout.createOrder(payload).
Hasil method ini tidak menggantikan validasi pembuatan order. Scalev tetap memvalidasi dan menerapkan shipping final, discount, biaya tambahan, dan total saat order dibuat.
estimateSummary hanya saat UI checkout menampilkan total sebelum submit. Jangan hitung atau submit otherIncome atau otherIncomeName; Scalev menghitung biaya tambahan yang dikonfigurasi di store pada estimateSummary dan menerapkannya lagi saat createOrder.
Scalev.checkout.createOrder(payload)
Membuat public order sungguhan dan memvalidasi payload. Panggil method ini hanya setelah pengunjung sengaja submit form.
- Object customer:
customer.name,customer.phone,customer.email - Object destination:
destination.address,destination.subdistrictId,destination.postalCode - Field payment:
paymentMethod - List item:
items[]dengan{ type: "product", variantUniqueId, quantity }atau{ type: "bundle", bundlePriceOptionUniqueId, quantity } - Field discount:
discountCode
items[] saat dibutuhkan. Gunakan validateDiscount untuk melihat estimasi discount code yang eligible, lalu kirim kode terpilih sebagai discountCode ke createOrder.
Untuk pilihan pengiriman, panggil Scalev.checkout.shippingOptions(payload), biarkan pengunjung memilih satu option, lalu kirim seluruh option itu sebagai shipping ke summary dan order.
Payload method yang direkomendasikan:
store.paymentMethodOptions[].display, render gambar payment dari store.paymentMethodOptions[].logoUrl, dan submit hanya value option terpilih sebagai paymentMethod.
Contoh response:
Error handling
Runtime method menolakPromise dengan JavaScript Error. Gunakan error.message untuk copy UI. Gunakan error.status, error.data, dan Scalev.diagnostics.get() hanya untuk debugging.
Scalev.analytics.track(provider, payload)
Meneruskan event analytics yang dikonfigurasi melalui Scalev.
facebooktiktokkwai
Scalev.prefill.get()
Membaca data prefill form yang aman untuk browser ini.
Scalev.prefill.save(form, metadata)
Menyimpan data prefill form yang aman di cookie terenkripsi scv_fd. Ini ditangani lokal oleh fe-public dan tidak memanggil Storefront atau page runtime API endpoint.

