Prima della prima passata
Viene installata disattivata
L'azione Sincronizza ordini Shopify gira ogni 5 minuti, ma si installa disattivata: finché qualcuno non la attiva non ci sono passate. Esiste nei rami 17, 18, 19 e 20. In Odoo 17.0 è configurata per ripetersi senza fine.

Il nome dell'azione dipende dalla lingua del tuo Odoo: con Odoo in spagnolo è Sincronizar pedidos de Shopify; in tedesco, Shopify-Bestellungen synchronisieren; in francese, Synchroniser les commandes Shopify; in italiano, Sincronizza ordini Shopify; in portoghese, Sincronizar encomendas Shopify.

La esegue solo un amministratore
La prima cosa che il metodo controlla è che chi lo esegue sia amministratore del sistema. Se non lo è, si ferma con Only an administrator can run this scheduled action. e non arriva a guardare nessun negozio.
Non tutti i negozi entrano nel giro
L'azione si occupa solo dei negozi che sono attivi, hanno la sincronizzazione degli ordini abilitata e conservano un token di accesso o il segreto API dell'app. Il codice spiega l'ultimo requisito: un negozio con credenziali client può non avere un token salvato finché la sua prima chiamata non lo genera, quindi basta che abbia le credenziali. A decidere chi entra è questo filtro.
Le schede dei negozi si aprono da Shopify › Configurazione › Negozi (Shopify › Configuration › Stores). Ogni tratto del menu richiede un permesso: Configurazione (Configuration) richiede Operatore (Operator) e Shopify richiede Visualizzatore (Viewer). Se non ne hai uno, non vedi quel tratto.

Cosa succede a ogni passata
Un negozio tranquillo non scorre tutto il suo storico
La prima ricerca unisce i termini di importazione del negozio con un filtro di data. Se non trova nulla, il codice ripete la ricerca senza il filtro di data solo quando il negozio non ha mai importato ordini. Se ne aveva già importato qualcuno, la passata finisce lì: il codice tratta quel risultato come lo stato normale di un negozio senza movimento, e ripetere la ricerca senza filtro scorrerebbe lo storico dall'ordine più vecchio a ogni passata.
Zero ordini non è un errore, ma lascia un messaggio
Se la passata non porta nessun ordine (nemmeno dopo la ricerca senza filtro, quando il negozio non aveva mai importato nulla), il codice non lo tratta come un guasto e lascia un messaggio nella scheda del negozio: La sincronizzazione degli ordini Shopify ha restituito 0 ordini per …. Verifica che questa app sia connessa al negozio previsto e aggiungi lo scope read_all_orders se ti servono ordini più vecchi di 60 giorni. Al posto dei puntini di sospensione compare il dominio del negozio. In quel caso la data dell'ultima sincronizzazione non cambia.
Se da giorni non vedi ordini, leggi quel messaggio: ti chiede di verificare che l'app sia connessa al negozio corretto e, se ti servono ordini più vecchi di 60 giorni, di aggiungere lo scope read_all_orders.
Se si ferma per il limite di pagine, la data non torna indietro
Quando la passata importa ordini, salva la data dell'ultima sincronizzazione, azzera il contatore degli errori consecutivi e cancella l'ultimo errore. Se si è fermata per il limite di pagine, salva la data dell'ultimo ordine importato invece dell'ora attuale, purché sia successiva all'ultima sincronizzazione salvata (o non ce ne fosse nessuna); se non lo è, salva l'ora attuale. Così la data non si sposta all'indietro: il codice lo evita perché una passata interrotta che era partita dall'inizio dello storico non obblighi a ripercorrerlo da capo mentre gli ordini di oggi aspettano.
In quel caso l'azione lascia inoltre un messaggio nella scheda del negozio per avvisare che restano ordini in sospeso e da quale data riprenderà la passata successiva.
Un negozio dopo l'altro, e quando fallisce davvero lascia traccia
L'azione scorre i negozi uno a uno e chiama la sincronizzazione di ciascuno dentro un blocco che intercetta gli errori. Se si verifica un errore imprevisto, il negozio aggiunge uno al suo contatore di errori consecutivi e salva l'ultimo errore. L'errore risale fino all'azione, che lo annota nel registro del server con il nome del negozio e passa al successivo: il guasto di un negozio non blocca gli altri.
Ci sono due eccezioni. Se FlexigoTech Cloud ha messo in pausa la sincronizzazione, il codice scarta il registro di quella passata perché non resti come fallita. E un avviso proprio del modulo, di quelli che Odoo mostra in una finestra di errore, non incrementa il contatore degli errori consecutivi.
Se sembra non fare nulla
- Controlla che l'azione sia attiva: si installa disattivata.
- Controlla che chi la esegue sia amministratore del sistema.
- Ricorda cosa chiede l'azione a ogni negozio: essere attivo, avere la sincronizzazione degli ordini abilitata e conservare un token di accesso o il segreto dell'app. Le schede si aprono da
Shopify › Configurazione › Negozi. - Leggi i messaggi della scheda del negozio: quello di zero ordini ti dice cosa verificare.
- Ricorda che, senza abbonamento o con il servizio sospeso, si ferma ciò che dà l'abbonamento; i dati restano nel tuo Odoo.
Abbonamento e assistenza
Il modulo è a pagamento unico per versione e richiede l'abbonamento a FlexigoTech Cloud: piano Connettore, 49 €/mese o 490 €/anno IVA esclusa, fino a 3 account della piattaforma. La connessione passa per FlexigoTech Cloud, che conserva cifrate le credenziali, sorveglia la sincronizzazione e avvisa via e-mail se fallisce. Il modulo è pubblicato per Odoo 17, 18, 19 e 20; consulta il prezzo di ogni versione nella scheda di Odoo Apps o nella pagina del modulo.
Per la giacenza c'è un altro articolo: cosa fa il pulsante di giacenza del modulo. Se vuoi implementare Odoo con Shopify o un connettore su misura, FlexigoTech implementa Odoo 17, 18, 19 e 20 e sviluppa connettori e integrazioni su misura.
Continua a leggere
Verificato nel codice del connettore (versione 17.0 e 20.0) e nelle fonti collegate
Fonti
- Codice del modulo: flexigobe_shopify_seller_connector 20.0 (d7e627b4): data/ir_cron_data.xml
- Codice del modulo: flexigobe_shopify_seller_connector 17.0 (437257e3): data/ir_cron_data.xml
- Codice del modulo: flexigobe_shopify_seller_connector 20.0 (d7e627b4): models/shopify_instance.py
- Codice del modulo: flexigobe_shopify_seller_connector 20.0 (d7e627b4): models/fgt_cloud.py
- apps.odoo.com/apps/modules/20.0/flexigobe_shopify_seller_connector
- flexigotech.com/precios.html
- flexigotech.com/en/services.html
