Onlineshop-Widget
SDK-Referenz
Die vollständige ScalarcutTiling.mount-API: jede Option, jeder Callback und jede Methode des zurückgegebenen Handles.
Das SDK hat einen einzigen Einstiegspunkt, ScalarcutTiling.mount(target, options). Es gibt ein Handle zurück, mit dem Sie das Widget nach dem Laden steuern.
mount(target, options)
const planner = ScalarcutTiling.mount('#sc-tiling', {
widgetKey: 'YOUR_WIDGET_KEY',
// ... options below
});
target ist eine CSS-Selektor-Zeichenkette oder ein Element. Das Widget rendert in einen neuen iframe darin.
Optionen
| Option | Typ | Pflicht | Beschreibung |
|---|---|---|---|
widgetKey |
string |
Ja | Der Widget-Schlüssel Ihres Kontos. |
catalog |
string |
Nein | Katalog-Slug, auf den der Planer fixiert wird. |
sku |
string |
Nein | SKU, der beim Laden vorausgewählt wird. |
locale |
string |
Nein | UI-Locale — en, ru, de, pl, it, es, fr oder pt. |
currency |
string |
Nein | Anzeige-Währungscode, z. B. USD, EUR oder BYN. |
height |
number |
Nein | Start-Desktop-Framehöhe in Pixeln. Standard 880. |
embedOrigin |
string |
Nein | Origin des Embed-Hosts. Standard ist der Origin des SDK-Skripts selbst, daher müssen Sie dies selten setzen. |
onReady |
() => void |
Nein | Wird aufgerufen, wenn das Widget fertig gebootet hat. |
onBomUpdated |
(payload) => void |
Nein | Wird bei jeder Änderung der Materialliste aufgerufen. |
onAddToCart |
(payload) => void |
Nein | Wird aufgerufen, wenn der Käufer auf „In den Warenkorb" klickt. |
onError |
(payload) => void |
Nein | Wird aufgerufen, wenn das Widget einen Fehler meldet. |
onResize |
(height) => void |
Nein | Wird aufgerufen, wenn das Widget eine neue Höhe anfordert. |
Callbacks
onAddToCart(payload) ist der, den Sie am häufigsten verwenden:
onAddToCart(payload) {
// payload = { lines: [{ sku, qty, unit }], layoutFingerprint, layoutToken }
payload.lines.forEach((line) => {
yourStore.addToCart(line.sku, line.qty, line.unit);
});
}
Jede Zeile trägt einen SKU, eine numerische Menge und eine Einheit (box für Fliesen; kg und l für Verbrauchsmaterial, wenn diese Option für Ihren Shop aktiviert ist). Siehe Warenkorb-Integration.
onBomUpdated(payload) liefert einen Live-Schnappschuss der Kalkulation, damit Ihre Seite neben dem Widget so etwas wie „Zu bestellende Fliesen: 34" anzeigen kann:
onBomUpdated(payload) {
console.log(payload); // areas, piece counts, boxes, consumables
}
onError(payload) trägt eine maschinenlesbare Ursache, die Sie an Ihr Support-Team weiterreichen können.
Handle-Methoden
mount gibt ein Handle zurück:
| Methode | Beschreibung |
|---|---|
setSku(sku) |
Wechselt den aktiven SKU, ohne das ganze Widget neu zu rendern. |
setLocale(locale) |
Wechselt die UI-Sprache und lädt den Frame neu. |
setCurrency(currency) |
Wechselt die Anzeige-Währung und lädt den Frame neu. |
exportBlueprint() |
Fordert das Widget auf, das aktuelle Blueprint-PDF herunterzuladen. |
requestAddToCart() |
Löst „In den Warenkorb" programmatisch aus, wie die Schaltfläche im Widget. |
destroy() |
Entfernt den iframe und meldet den Listener ab. Rufen Sie es auf, wenn das Widget nicht mehr gebraucht wird, z. B. bei Single-Page-Navigation. |
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 und Währung laden neu, SKU nicht
setLocale und setCurrency ändern Sprache und Währung des Widgets und laden den Frame neu. setSku lädt nicht neu — es tauscht das Material an Ort und Stelle und behält das Layout des Käufers.
Fehler
mount wirft sofort, wenn das Ziel fehlt, widgetKey nicht gesetzt ist oder der Embed-Origin nicht bestimmt werden kann. Umschließen Sie den Aufruf, wenn Ihre Seite den Container bedingt rendert:
try {
ScalarcutTiling.mount('#sc-tiling', { widgetKey: 'YOUR_WIDGET_KEY' });
} catch (error) {
console.warn('Scalarcut not mounted:', error.message);
}