Integrazione Shopify
Connetti Shopify a WooshPayment via OAuth Public App. ScriptTag auto-installato, ordini sincronizzati, scope minimi.
L'integrazione Shopify usa OAuth Public App per leggere il catalogo, creare gli ordini, e installare uno ScriptTag che intercetta il bottone "Checkout" e lo redirige sul tuo checkout WooshPayment.
Requisiti
- Store Shopify attivo (qualsiasi piano)
- Permessi di Admin sullo store
- Account WooshPayment (vedi Quickstart)
1. Avvia l'integrazione
Ci sono due entry point:
A) Dall'onboarding โ al primo accesso, step "Piattaforma" โ scegli Shopify โ form domain โ "Connetti".
B) Da Impostazioni โ Dashboard โ Impostazioni โ Connessione Shopify โ inserisci il tuo tuo-store.myshopify.com โ "Avvia OAuth".
Backend internals (per chi vuole capire):
- Il form fa
POST /api/auth/shopify/installconshopDomain+ un handoff token JWT (la tua sessione attuale) - Riceviamo URL OAuth Shopify e ti redirigiamo lรฌ
- Tu autorizzi sull'admin del tuo store
- Shopify ci rimanda al callback, scambiamo il code per
accessToken - Cifriamo l'accessToken (AES-256-GCM) e lo salviamo associato al tuo merchant
- Installiamo lo ScriptTag in automatico
- Ti rimandiamo in dashboard con
shopifyConnected: true
2. Scope OAuth richiesti
| Scope | A cosa serve |
|---|---|
read_products | Leggere titoli, prezzi, varianti, immagini per il checkout |
read_orders / write_orders | Creare l'ordine sul tuo Shopify dopo pagamento confermato |
read_checkouts / write_checkouts | Gestire la sessione checkout |
read_customers | Auto-fill indirizzo per clienti giร registrati |
read_script_tags / write_script_tags | Installare/aggiornare il ScriptTag di redirect |
Nessun permesso write_products o write_customers. WooshPayment legge il tuo catalogo e i tuoi clienti ma non li modifica mai.
3. Lo ScriptTag
Installato automaticamente al callback OAuth. Quando un cliente clicca "Checkout" dal carrello Shopify:
- Lo script intercetta il click prima della redirect nativa
- Cattura il carrello (line items + totale + currency)
- Chiama
POST /api/checkout/create(WooshPayment) - Redirige a
https://{tuo-slug}.wooshpayment.com/checkout/{token}(ocheckout.tuodominio.comse hai mappato un dominio custom)
Niente copia/incolla nel tema, niente modifica a theme.liquid. Quando disinstalli l'app da Shopify, lo ScriptTag viene rimosso automaticamente.
4. Verifica che funzioni
- Apri il tuo store in finestra in incognito (per saltare cache + cookie)
- Aggiungi un prodotto al carrello
- Clicca "Check out"
- Devi atterrare su
{tuo-slug}.wooshpayment.com/checkout/... - Completa un ordine pilota con carta di test Whop
4242 4242 4242 4242 - Verifica che l'ordine appaia anche in Shopify Admin โ Ordini con tag
WooshPaymente payment_statuspaid
5. Cosa succede dopo il pagamento
- Whop manda webhook
invoice_paidomembership_activatedahttps://api.wooshpayment.com/webhooks/whop/payment-update(firmato HMAC-SHA256) - WooshPayment marca la sessione
COMPLETED - Chiamiamo la Orders API di Shopify per creare l'ordine reale con
payment_status: paid - Shopify decrementa l'inventario e parte il flusso fulfillment standard
- Email "ordine confermato" al cliente la manda Shopify, non noi
- WooshPayment manda al merchant una notifica via Resend (
noreply@wooshpayment.com)
Errori comuni
Subito dopo OAuth la dashboard dice "Non connesso"
Bug noto di stale localStorage. Soluzione: refresh della pagina con Cmd+Shift+R. La store fa refreshMerchant() al mount e recupera lo stato corretto.
ScriptTag non sembra installato
Vai in Shopify Admin โ App โ WooshPayment. Se l'app c'รจ ma il bottone Checkout non redirige:
- Hard refresh dello store (Cmd+Shift+R) per pulire la cache JS
- Se persiste: disinstalla l'app da Shopify, torna in WooshPayment e ri-avvia l'OAuth dalle Impostazioni
- Se ancora niente: Script tag debug
Ordini non creati in Shopify
L'ordine compare in WooshPayment ma non su Shopify:
- Verifica in Dashboard โ Ordini lo stato della sessione. Se รจ
COMPLETEDmashopifyOrderIdรจ vuoto, il problema รจ la chiamata Orders API - Controlla che lo scope
write_orderssia ancora attivo: a volte una disinstallazione/reinstallazione parziale lascia scope vecchi - Soluzione veloce: disconnetti e ri-autorizza da Impostazioni
"Carrello non valido" lato cliente
Probabilmente i prezzi del prodotto sono cambiati tra add-to-cart e checkout. Il cliente refresha il carrello.
Disinstallare
- Shopify Admin โ App โ WooshPayment โ Disinstalla โ revoca permessi, ScriptTag rimosso
- In WooshPayment lo stato Shopify diventa "Non connesso"; il merchant resta ma senza poter creare ordini sul tuo store
Prossimi step
- Setup Whop per accettare carte
- Apple Pay
- Branding del checkout
- Pixel marketing
- Dominio custom