Panggilan balik yang disokong
| Panggilan balik | Apabila ia menyala | Muatan kunci |
|---|---|---|
onTryOnButtonClick | Pada butang klik, sebelum dialog dibuka. | name |
onAddToCartClicked | Apabila pengalaman menyiarkan mesej tambah pada troli; dayakan tambah pada troli dahulu. | name, garments, setIsLoading, closePopUp, onError |
Mengendalikan permintaan troli
TypeScript
import { init } from "@spreeai/web-sdk";
import "@spreeai/web-sdk/dist/web-sdk.css";
const sdk = await init({ clientId: "YOUR_ISSUED_CLIENT_ID" });
if (sdk) {
await sdk.renderTryOnButton({
elementId: "spreeai-try-on",
garments: [{ garmentId: "YOUR_READY_GARMENT_ID" }],
enableAddToCart: true,
events: {
onTryOnButtonClick: ({ name }) => {
// Forward this non-sensitive event to your analytics layer.
console.info(name);
},
onAddToCartClicked: async ({
garments, setIsLoading, closePopUp, onError,
}) => {
setIsLoading(true);
try {
// Implement this endpoint in YOUR storefront backend.
// Validate and map these garment IDs to your own cart variants.
const response = await fetch("/api/cart/from-spreeai", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ garments }),
});
if (!response.ok) throw new Error("Cart request failed");
closePopUp();
} catch {
onError("Could not add to bag. Please try again.");
} finally {
setIsLoading(false);
}
},
},
});
}Ukur tindakan yang betul
Panggilan balik klik butang mengukur niat untuk membuka percubaan; ia bukan bukti bahawa percubaan selesai atau pembelian telah berlaku. Gunakan penyepaduan analitis anda yang diluluskan untuk hasil hiliran. Jangan cipta panggilan balik penyiapan atau webhook pelayan yang tiada dalam API yang diterbitkan.
Semakan penerimaan
- Operasi troli yang berjaya menambah produk, varian dan kuantiti yang dimaksudkan.
- Permintaan yang gagal memastikan pembeli dimaklumkan dan mengosongkan keadaan pemuatan.
- Klik pendua tidak membuat mutasi pendua yang tidak diingini dalam pengendali anda sendiri.
- Analitis mengandungi metadata peristiwa sahaja, tanpa imej pelanggan, token atau data peribadi yang tidak diperlukan.