Widget negozio online

Riferimento SDK

L'API completa di ScalarcutTiling.mount: ogni opzione, ogni callback e ogni metodo dell'handle che restituisce.

L'SDK ha un unico punto di ingresso, ScalarcutTiling.mount(target, options). Restituisce un handle che puoi usare per pilotare il widget dopo il caricamento.

mount(target, options)

const planner = ScalarcutTiling.mount('#sc-tiling', {
  widgetKey: 'YOUR_WIDGET_KEY',
  // ... options below
});

target è una stringa di selettore CSS o un Element. Il widget viene renderizzato in un nuovo iframe al suo interno.

Opzioni

Opzione Tipo Obbligatoria Descrizione
widgetKey string Sì La chiave widget del tuo account.
catalog string No Slug del catalogo su cui bloccare il pianificatore.
sku string No SKU da preselezionare al caricamento.
locale string No Locale dell'interfaccia — en, ru, de, pl, it, es, fr o pt.
currency string No Codice valuta visualizzata, ad esempio USD, EUR o BYN.
height number No Altezza iniziale del frame desktop in pixel. Predefinita 880.
embedOrigin string No Origine dell'host di incorporamento. Predefinita all'origine dello script SDK stesso, quindi raramente devi impostarla.
onReady () => void No Chiamato quando il widget ha finito di avviarsi.
onBomUpdated (payload) => void No Chiamato ogni volta che cambia la distinta materiali.
onAddToCart (payload) => void No Chiamato quando l'acquirente clicca su «Aggiungi al carrello».
onError (payload) => void No Chiamato quando il widget segnala un errore.
onResize (height) => void No Chiamato quando il widget richiede una nuova altezza.

Callback

onAddToCart(payload) è quello che userai di più:

onAddToCart(payload) {
  // payload = { lines: [{ sku, qty, unit }], layoutFingerprint, layoutToken }
  payload.lines.forEach((line) => {
    yourStore.addToCart(line.sku, line.qty, line.unit);
  });
}

Ogni riga porta uno SKU, una quantità numerica e un'unità (box per le piastrelle; kg e l per i materiali di consumo quando questa opzione è abilitata per il tuo negozio). Vedi Integrazione del carrello.

onBomUpdated(payload) ti dà un'istantanea in tempo reale del preventivo, così la tua pagina può mostrare qualcosa come «Piastrelle da ordinare: 34» accanto al widget:

onBomUpdated(payload) {
  console.log(payload); // areas, piece counts, boxes, consumables
}

onError(payload) porta un motivo leggibile dalle macchine che puoi passare al tuo team di supporto.

Metodi dell'handle

mount restituisce un handle:

Metodo Descrizione
setSku(sku) Cambia lo SKU attivo senza ri-renderizzare l'intero widget.
setLocale(locale) Cambia la lingua dell'interfaccia e ricarica il frame.
setCurrency(currency) Cambia la valuta visualizzata e ricarica il frame.
exportBlueprint() Chiede al widget di scaricare il Blueprint PDF attuale.
requestAddToCart() Attiva «Aggiungi al carrello» programmaticamente, come il pulsante nel widget.
destroy() Rimuove l'iframe e disiscrive il listener. Chiamalo quando il widget non serve più, ad esempio nella navigazione 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 e valuta ricaricano, lo SKU no

setLocale e setCurrency cambiano lingua e valuta del widget e ricaricano il frame. setSku non ricarica — scambia il materiale sul posto e conserva la disposizione dell'acquirente.

Errori

mount lancia subito un'eccezione se manca il target, widgetKey è assente o l'origine di incorporamento non è determinabile. Avvolgi la chiamata se la tua pagina renderizza il contenitore in modo condizionale:

try {
  ScalarcutTiling.mount('#sc-tiling', { widgetKey: 'YOUR_WIDGET_KEY' });
} catch (error) {
  console.warn('Scalarcut not mounted:', error.message);
}