WWooshPayment docs
Integrazione store

Debug dello script tag Shopify

Lo script di redirect WooshPayment non intercetta il bottone Check out di Shopify? Ecco le cause più frequenti e come fixarle in 10 minuti.

3 min di lettura

TLDR: se clicchi "Check out" su Shopify e atterri sul checkout Shopify default invece che sul tuo WooshPayment, il problema è quasi sempre uno di questi: 1) script non caricato, 2) tema custom con selettori esotici, 3) cache CDN del tema, 4) CSP restrittivo. Segui la sequenza diagnostica sotto.

Diagnostica in 3 minuti

Apri il tuo store, aggiungi un prodotto al carrello, poi DevTools (F12).

Check 1 — lo script è caricato?

DevTools → Network → filtra per wooshpayment. Ricarica la pagina carrello. Devi vedere:

checkout-interceptor.js   200   api.wooshpayment.com   ~3 KB

Se NON lo vedi:

  • Lo script viene installato in automatico via Shopify ScriptTag API al callback OAuth. Se manca, l'install è stata revocata o c'è un'OAuth scaduta.
  • Fix in 1 click: WooshPayment → Integrazioni → bottone "Reinstalla script tag". L'app fa una nuova chiamata POST /admin/api/2024-10/script_tags.json con l'accessToken corrente. Lo script torna attivo entro 30 secondi (poi serve un hard refresh del tema su Shopify per evitare cache).
  • Se la reinstall fallisce con "OAuth scaduta", rifai la connessione da Impostazioni → Connessione Shopify.

Niente copia/incolla nel tema. L'install è completamente API-driven: scriviamo lo script_src direttamente nell'oggetto ScriptTag di Shopify. Non devi mai aprire theme.liquid.

Check 2 — lo script si esegue?

Console del browser sulla pagina carrello: cerca log [WooPay]. Se vedi [WooPay] Failed to create session: … significa che lo script è arrivato ma la chiamata POST /api/checkout/create ha fallito. Apri il dettaglio nella Network tab e leggi lo status + corpo della risposta:

  • 400 Carrello non valido → prezzi cambiati fra add-to-cart e checkout, il cliente refresha
  • 401 → token Shopify revocato lato store, reinstalla l'app
  • 403 → origine dello store non in allowlist CORS, scrivici

Check 3 — il tema usa un pattern noto?

Lo script intercetta:

  1. Form submit verso /cart o /checkout (Dawn, Sense, Refresh e la maggior parte dei temi)
  2. history.pushState verso /checkout (SPA delle vetrine moderne)
  3. window.location.assign/replace verso /checkout

Se il tuo tema usa un selettore esotico (es. handler proprio che chiama XMLHttpRequest senza passare da location), lo script non lo vede. Scrivici con URL store + nome tema e aggiungiamo il pattern.

Cause specifiche

Cache CDN del tema

Shopify Plus a volte ha Cloudflare/Fastly davanti che cachano theme.liquid per 30 min. Dopo aver installato lo script tag, forza un purge:

Shopify Admin → Online Store → Temi → "Azioni" → Pubblica (ri-pubblicare invalida il CDN).

CSP del tema

Se il tema imposta un Content-Security-Policy restrittivo, lo script viene bloccato. Console mostrerà:

Refused to load script 'https://api.wooshpayment.com/api/checkout-interceptor.js' because it violates CSP

Fix: aggiungi api.wooshpayment.com agli script-src del tema, oppure rimuovi il meta CSP custom (Shopify ne imposta uno default sicuro).

Tema headless (Hydrogen/Remix)

WooshPayment non supporta nativamente storefront Hydrogen. Devi invocare l'API REST direttamente:

const res = await fetch('https://api.wooshpayment.com/api/checkout/create', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ shop, cartToken, items, totalPrice, currency }),
})
const { checkoutUrl } = await res.json()
window.location.href = checkoutUrl

Vedi API reference per il payload completo.

Apps "Buy Now" o sticky checkout

App tipo ReConvert, OneClickUpsell, EasyAccess possono bypassare il tuo carrello e chiamare /checkout direttamente in modi che non passano dai pattern intercettati. Disattiva l'app, verifica, riattivala step by step.

Quando contattarci

Dopo i check sopra, se non funziona scrivi a noreply@wooshpayment.com con:

  • URL del tuo store
  • Nome del tema (Online Store → Temi → nome accanto al thumb)
  • Screenshot console + Network tab
  • Eventuale log [WooPay] visibile in console