Widget sklepu internetowego
Referencja SDK
Pełne API ScalarcutTiling.mount: każda opcja, każdy callback i każda metoda uchwytu, który zwraca.
SDK ma jeden punkt wejścia, ScalarcutTiling.mount(target, options). Zwraca uchwyt, którym możesz sterować widżetem po załadowaniu.
mount(target, options)
const planner = ScalarcutTiling.mount('#sc-tiling', {
widgetKey: 'YOUR_WIDGET_KEY',
// ... options below
});
target to ciąg selektora CSS lub Element. Widżet renderuje się w nowym iframe wewnątrz niego.
Opcje
| Opcja | Typ | Wymagana | Opis |
|---|---|---|---|
widgetKey |
string |
Tak | Klucz widżetu Twojego konta. |
catalog |
string |
Nie | Slug katalogu, do którego blokowany jest planer. |
sku |
string |
Nie | SKU do wstępnego wybrania przy ładowaniu. |
locale |
string |
Nie | Locale interfejsu — en, ru, de, pl, it, es, fr lub pt. |
currency |
string |
Nie | Kod wyświetlanej waluty, na przykład USD, EUR lub BYN. |
height |
number |
Nie | Początkowa wysokość ramki desktopowej w pikselach. Domyślnie 880. |
embedOrigin |
string |
Nie | Origin hosta osadzenia. Domyślnie origin samego skryptu SDK, więc rzadko musisz go ustawiać. |
onReady |
() => void |
Nie | Wywoływany, gdy widżet zakończy uruchamianie. |
onBomUpdated |
(payload) => void |
Nie | Wywoływany przy każdej zmianie zestawienia materiałów. |
onAddToCart |
(payload) => void |
Nie | Wywoływany, gdy kupujący kliknie „Dodaj do koszyka". |
onError |
(payload) => void |
Nie | Wywoływany, gdy widżet zgłosi błąd. |
onResize |
(height) => void |
Nie | Wywoływany, gdy widżet poprosi o nową wysokość. |
Callbacki
onAddToCart(payload) to ten, którego będziesz używać najczęściej:
onAddToCart(payload) {
// payload = { lines: [{ sku, qty, unit }], layoutFingerprint, layoutToken }
payload.lines.forEach((line) => {
yourStore.addToCart(line.sku, line.qty, line.unit);
});
}
Każda pozycja niesie SKU, ilość liczbową i jednostkę (box dla płytek; kg i l dla materiałów eksploatacyjnych, gdy ta opcja jest włączona dla Twojego sklepu). Zobacz Integracja koszyka.
onBomUpdated(payload) daje migawkę wyceny na żywo, aby Twoja strona mogła pokazać coś w rodzaju „Płytki do zamówienia: 34" obok widżetu:
onBomUpdated(payload) {
console.log(payload); // areas, piece counts, boxes, consumables
}
onError(payload) niesie czytelny maszynowo powód, który możesz przekazać swojemu zespołowi wsparcia.
Metody uchwytu
mount zwraca uchwyt:
| Metoda | Opis |
|---|---|
setSku(sku) |
Przełącza aktywny SKU bez ponownego renderowania całego widżetu. |
setLocale(locale) |
Zmienia język interfejsu i przeładowuje ramkę. |
setCurrency(currency) |
Zmienia wyświetlaną walutę i przeładowuje ramkę. |
exportBlueprint() |
Prosi widżet o pobranie bieżącego Blueprint PDF. |
requestAddToCart() |
Wywołuje „Dodaj do koszyka" programowo, jak przycisk w widżecie. |
destroy() |
Usuwa iframe i wypisuje się z nasłuchu. Wywołaj, gdy widżet nie jest już potrzebny, np. przy nawigacji SPA. |
const planner = ScalarcutTiling.mount('#sc-tiling', { widgetKey: 'YOUR_WIDGET_KEY' });
// Later, in response to a variant switch on your page:
planner.setSku('VARIANT_SKU');
// On navigation away:
planner.destroy();
Locale i waluta przeładowują, SKU nie
setLocale i setCurrency zmieniają język i walutę widżetu oraz przeładowują ramkę. setSku nie przeładowuje — zamienia materiał na miejscu i zachowuje układ kupującego.
Błędy
mount rzuca natychmiast, jeśli brakuje celu, nie ma widgetKey lub nie da się ustalić origina osadzenia. Owiń wywołanie, jeśli Twoja strona renderuje kontener warunkowo:
try {
ScalarcutTiling.mount('#sc-tiling', { widgetKey: 'YOUR_WIDGET_KEY' });
} catch (error) {
console.warn('Scalarcut not mounted:', error.message);
}