{"id":6761,"date":"2026-10-01T18:01:53","date_gmt":"2026-10-01T17:01:53","guid":{"rendered":"https:\/\/www.atlantisevo.com\/doc\/?post_type=manual_documentation&#038;p=6761"},"modified":"2026-10-01T18:02:36","modified_gmt":"2026-10-01T17:02:36","slug":"shopify","status":"publish","type":"manual_documentation","link":"https:\/\/www.atlantisevo.com\/doc\/manuale\/e-commerce\/shopify\/","title":{"rendered":"Shopify"},"content":{"rendered":"<div id=\"toctoc\"><\/div><p>Il collegamento con <strong>Shopify<\/strong> tiene allineati il gestionale e un negozio online Shopify. Il gestionale pubblica sul negozio gli articoli, i prezzi, le immagini e le giacenze. Dal negozio arrivano gli ordini, che diventano <strong>ordini cliente<\/strong>, insieme ai clienti che li hanno fatti. Quando l&#8217;ordine viene evaso con un DDT o una fattura, la spedizione torna su Shopify con il corriere e il numero di tracking.<\/p>\n<p>Da quando il collegamento \u00e8 attivo, <strong>il gestionale \u00e8 il master<\/strong>. Articoli, prezzi e giacenze si modificano nel gestionale; su Shopify si gestiscono solo la vetrina (collezioni, temi, canali di vendita) e le impostazioni del negozio.<\/p>\n<p>Le funzioni si trovano in <strong>e-Commerce \u2192 Shopify<\/strong>:<\/p>\n<table>\n<thead>\n<tr>\n<th>Voce<\/th>\n<th>A cosa serve<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Anagrafica siti<\/strong><\/td>\n<td>la configurazione di ogni negozio: credenziali, listini, depositi, causali, transcodifiche<\/td>\n<\/tr>\n<tr>\n<td><strong>Test connessione<\/strong><\/td>\n<td>verifica le credenziali e i permessi e permette di scegliere la location delle giacenze<\/td>\n<\/tr>\n<tr>\n<td><strong>Gestione sito<\/strong><\/td>\n<td>si usa tutti i giorni: pubblicazione, giacenze, import degli ordini, evasioni, primo allineamento<\/td>\n<\/tr>\n<tr>\n<td><strong>Log sincronizzazioni<\/strong><\/td>\n<td>l&#8217;esito di ogni operazione e gli elementi rimasti in coda<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Le voci compaiono solo se il modulo <strong>e-commerce Shopify<\/strong> \u00e8 in licenza.<\/p>\n<hr \/>\n<h2>1. Come funziona il collegamento<\/h2>\n<p>Il gestionale dialoga direttamente con Shopify tramite le API ufficiali, con le credenziali di un&#8217;<strong>app<\/strong> creata sul negozio (sezione 2). Sul sito non si installa nulla.<\/p>\n<p>Cosa viaggia e in quale verso:<\/p>\n<table>\n<thead>\n<tr>\n<th>Dato<\/th>\n<th>Verso<\/th>\n<th>Quando<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Articoli, varianti, prezzi, immagini<\/td>\n<td>gestionale \u2192 Shopify<\/td>\n<td>a mano, da <em>Gestione sito<\/em><\/td>\n<\/tr>\n<tr>\n<td>Giacenze<\/td>\n<td>gestionale \u2192 Shopify<\/td>\n<td>in automatico dopo ogni import degli ordini, oppure a mano<\/td>\n<\/tr>\n<tr>\n<td>Ordini e clienti<\/td>\n<td>Shopify \u2192 gestionale<\/td>\n<td>con la procedura schedulata, oppure a mano<\/td>\n<\/tr>\n<tr>\n<td>Evasioni (spedito, corriere, tracking)<\/td>\n<td>gestionale \u2192 Shopify<\/td>\n<td>a mano, da <em>Gestione sito<\/em><\/td>\n<\/tr>\n<tr>\n<td>Rimborsi<\/td>\n<td>Shopify \u2192 gestionale<\/td>\n<td>segnalati durante l&#8217;import degli ordini<\/td>\n<\/tr>\n<tr>\n<td>Prodotti gi\u00e0 presenti su Shopify<\/td>\n<td>Shopify \u2192 gestionale<\/td>\n<td>una sola volta, con il <strong>primo allineamento<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Tre regole spiegano quasi tutti i comportamenti:<\/p>\n<ul>\n<li><strong>L&#8217;abbinamento si fa per SKU.<\/strong> Per un articolo senza varianti lo SKU Shopify coincide con il <strong>codice articolo<\/strong>. Per un articolo con varianti lo SKU di ogni variante \u00e8 il <strong>barcode di tipo CVAR<\/strong> della variante. I CVAR mancanti li genera il gestionale alla prima pubblicazione. Dopo il primo collegamento il gestionale riconosce i prodotti anche per identificativo interno: uno SKU cambiato su Shopify non rompe il collegamento, ma la pubblicazione successiva lo riscrive con quello del gestionale.<\/li>\n<li><strong>La disponibilit\u00e0 online \u00e8 l&#8217;esistenza meno l&#8217;impegnato<\/strong>, sommata sui depositi del sito, meno la scorta di sicurezza. Un ordine Shopify importato diventa impegnato: la merce venduta online non torna disponibile.<\/li>\n<li><strong>Prima gli ordini, poi le giacenze.<\/strong> La procedura schedulata importa gli ordini e subito dopo invia le giacenze cambiate. Inviare le giacenze senza aver importato gli ordini renderebbe di nuovo disponibile la merce appena venduta.<\/li>\n<\/ul>\n<hr \/>\n<h2>2. Preparare Shopify: l&#8217;app e i permessi<\/h2>\n<h3>Chi crea l&#8217;app<\/h3>\n<p>L&#8217;app si crea <strong>nell&#8217;organizzazione Shopify del negozio<\/strong>, dal <strong>Dev Dashboard<\/strong> di Shopify. Pu\u00f2 crearla il titolare del negozio, oppure un account dello staff con il permesso <em>Sviluppo app<\/em>. I collaboratori esterni non hanno accesso al Dev Dashboard.<\/p>\n<p>App e negozio devono appartenere <strong>alla stessa organizzazione<\/strong>. In caso contrario la richiesta del token viene rifiutata e il gestionale mostra:<\/p>\n<blockquote><p><em>&#8220;L&#8217;app non e&#8217; installata sul negozio. Nel Dev Dashboard di Shopify: rilasciare una versione dell&#8217;app con gli scope necessari e installarla sul negozio. App e negozio devono appartenere alla stessa organizzazione: un negozio di sviluppo creato dal pannello di Shopify invece che dal Dev Dashboard non ne fa parte.&#8221;<\/em><\/p><\/blockquote>\n<h3>I passi<\/h3>\n<ol>\n<li>Nel Dev Dashboard crea una nuova app, per esempio &#8220;Atlantis Evo&#8221;.<\/li>\n<li>Nella configurazione della versione indica i <strong>permessi (scope)<\/strong> elencati sotto.<\/li>\n<li><strong>Rilascia<\/strong> la versione dell&#8217;app.<\/li>\n<li><strong>Installa<\/strong> l&#8217;app sul negozio.<\/li>\n<li>Dalle impostazioni dell&#8217;app copia <strong>Client ID<\/strong> e <strong>Client secret<\/strong>. Vanno nella scheda <em>Connessione<\/em> dell&#8217;anagrafica siti (sezione 3).<\/li>\n<\/ol>\n<h3>I permessi da concedere<\/h3>\n<p>Concedi all&#8217;app <strong>tutti<\/strong> questi scope:<\/p>\n<pre><code>read_customers,write_customers,read_files,write_files,write_inventory,read_inventory,write_locations,read_locations,read_orders,write_orders,read_products,write_products,read_merchant_managed_fulfillment_orders,write_merchant_managed_fulfillment_orders,read_publications,write_publications<\/code><\/pre>\n<table>\n<thead>\n<tr>\n<th>Scope<\/th>\n<th>A cosa serve<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>read_products<\/code>, <code>write_products<\/code><\/td>\n<td>pubblicare articoli, varianti e prezzi; leggere il catalogo per il primo allineamento; collezioni IVA<\/td>\n<\/tr>\n<tr>\n<td><code>read_files<\/code>, <code>write_files<\/code><\/td>\n<td>caricare le immagini degli articoli<\/td>\n<\/tr>\n<tr>\n<td><code>read_inventory<\/code>, <code>write_inventory<\/code><\/td>\n<td>leggere e scrivere le giacenze<\/td>\n<\/tr>\n<tr>\n<td><code>read_locations<\/code>, <code>write_locations<\/code><\/td>\n<td>elencare le location del negozio per scegliere quella delle giacenze<\/td>\n<\/tr>\n<tr>\n<td><code>read_orders<\/code>, <code>write_orders<\/code><\/td>\n<td>leggere gli ordini e i rimborsi<\/td>\n<\/tr>\n<tr>\n<td><code>read_customers<\/code>, <code>write_customers<\/code><\/td>\n<td>leggere i clienti degli ordini<\/td>\n<\/tr>\n<tr>\n<td><code>read_merchant_managed_fulfillment_orders<\/code>, <code>write_merchant_managed_fulfillment_orders<\/code><\/td>\n<td>segnare gli ordini come spediti, con corriere e tracking<\/td>\n<\/tr>\n<tr>\n<td><code>read_publications<\/code>, <code>write_publications<\/code><\/td>\n<td>rendere disponibili i prodotti nuovi nei canali di vendita (Online Store\u2026)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Se il negozio \u00e8 in <strong>pi\u00f9 lingue<\/strong>, o ha una <strong>lingua principale diversa dall&#8217;italiano<\/strong> (sezione 8), servono anche:<\/p>\n<pre><code>read_locales,read_translations,write_translations<\/code><\/pre>\n<table>\n<thead>\n<tr>\n<th>Scope<\/th>\n<th>A cosa serve<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>read_locales<\/code><\/td>\n<td>leggere le lingue attivate sul negozio e quella principale<\/td>\n<\/tr>\n<tr>\n<td><code>read_translations<\/code>, <code>write_translations<\/code><\/td>\n<td>leggere e scrivere le traduzioni dei prodotti<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Test connessione<\/strong> elenca gli scope concessi e segnala quelli che mancano (<em>&#8220;Scope mancanti per le fasi successive: \u2026&#8221;<\/em>).<\/p>\n<blockquote><p>\u26a0\ufe0f <strong>Dopo aver aggiunto uno scope bisogna rilasciare una nuova versione dell&#8217;app<\/strong> e, se Shopify lo chiede, riapprovarla sul negozio. Senza gli scope delle evasioni, <em>Invia evasioni<\/em> viene rifiutato da Shopify.<\/p><\/blockquote>\n<h3>Accesso ai dati protetti dei clienti<\/h3>\n<p>Nome, indirizzo, email e telefono dei clienti sono <strong>dati protetti<\/strong> per Shopify. Senza l&#8217;autorizzazione a leggerli, Shopify non restituisce gli ordini: <em>Importa ordini<\/em> si ferma con un errore simile a<\/p>\n<blockquote><p><em>&#8220;This app is not approved to access the Order object \u2026 [ACCESS_DENIED]&#8221;<\/em><\/p><\/blockquote>\n<p>e non viene importato nulla. L&#8217;accesso si concede nel <strong>portale Partners di Shopify<\/strong> (partners.shopify.com):<\/p>\n<ol>\n<li>entra nel portale Partners con l&#8217;account che ha creato l&#8217;app;<\/li>\n<li>apri <strong>App<\/strong> e seleziona l&#8217;app;<\/li>\n<li>vai in <strong>API access requests<\/strong> (richieste di accesso alle API) \u2192 <strong>Protected customer data access<\/strong>;<\/li>\n<li>nella prima parte indica il motivo d&#8217;uso dei dati: gestione ed evasione degli ordini, fatturazione;<\/li>\n<li>nella seconda parte seleziona i campi <strong>Nome<\/strong>, <strong>Email<\/strong>, <strong>Telefono<\/strong> e <strong>Indirizzo<\/strong>, ciascuno con il suo motivo;<\/li>\n<li>salva. Per un&#8217;app ad uso del solo negozio non serve la revisione di Shopify.<\/li>\n<\/ol>\n<p>Su alcuni negozi l&#8217;accesso \u00e8 concesso in automatico alle app create dal titolare. Se <em>Importa ordini<\/em> funziona gi\u00e0, non serve fare nulla. Se compare <code>ACCESS_DENIED<\/code>, questo \u00e8 il passo mancante.<\/p>\n<h3>Impostazioni del negozio da controllare<\/h3>\n<ul>\n<li><strong>Valuta<\/strong> del negozio uguale a quella del listino del sito (di norma EUR). Se sono diverse, la pubblicazione si ferma con <em>&#8220;La valuta del negozio (\u2026) e&#8217; diversa da quella del listino (\u2026): impostare la valuta del negozio su Shopify o cambiare listino&#8221;<\/em>.<\/li>\n<li><strong>Prezzi IVA inclusa o esclusa<\/strong> (<em>Impostazioni \u2192 Imposte e dazi<\/em>). Il gestionale legge questa impostazione e converte i prezzi del listino: non va dichiarata da nessuna parte.<\/li>\n<li><strong>Aliquota del paese<\/strong>: Shopify applica l&#8217;aliquota ordinaria dell&#8217;Italia a tutti i prodotti. Le aliquote ridotte richiedono un&#8217;eccezione IVA per ogni aliquota (sezione 8).<\/li>\n<li><strong>Location<\/strong>: quella scelta per le giacenze deve essere attiva e <strong>evadere gli ordini online<\/strong>. Una location che non evade gli ordini online fa risultare i prodotti esauriti nel negozio anche con la quantit\u00e0 caricata.<\/li>\n<li><strong>Dati fiscali nel checkout<\/strong>: codice fiscale, partita IVA e PEC arrivano dai campi fiscali italiani del checkout Shopify, se il negozio li raccoglie. Il <strong>codice SDI<\/strong> non ha un campo nativo: serve un attributo del checkout, aggiunto con un&#8217;app o una personalizzazione del checkout, e il suo nome va indicato nell&#8217;anagrafica del sito.<\/li>\n<\/ul>\n<hr \/>\n<h2>3. Anagrafica siti<\/h2>\n<p>Ogni negozio \u00e8 un record con un <strong>codice numerico<\/strong>. Se ne possono configurare pi\u00f9 di uno.<\/p>\n<h3>Testata<\/h3>\n<table>\n<thead>\n<tr>\n<th>Campo<\/th>\n<th>A cosa serve<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Codice<\/strong><\/td>\n<td>identificativo numerico del sito<\/td>\n<\/tr>\n<tr>\n<td><strong>Descrizione<\/strong><\/td>\n<td>nome del negozio negli elenchi (obbligatoria, fino a 50 caratteri)<\/td>\n<\/tr>\n<tr>\n<td><strong>Attivo<\/strong><\/td>\n<td>solo i siti attivi compaiono in <em>Gestione sito<\/em>, ricevono le giacenze in coda e vengono elaborati dallo scheduler<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Scheda &#8220;Connessione&#8221;<\/h3>\n<table>\n<thead>\n<tr>\n<th>Campo<\/th>\n<th>A cosa serve<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Dominio negozio<\/strong><\/td>\n<td><code>xxx.myshopify.com<\/code>. Si pu\u00f2 incollare anche l&#8217;indirizzo del pannello (<code>admin.shopify.com\/store\/xxx<\/code>) o il solo nome: il gestionale lo converte e lo salva nella forma giusta<\/td>\n<\/tr>\n<tr>\n<td><strong>Versione API<\/strong><\/td>\n<td>versione delle API Shopify usata dal gestionale, proposta <code>2026-07<\/code>. Non va cambiata, salvo indicazione dell&#8217;assistenza<\/td>\n<\/tr>\n<tr>\n<td><strong>Client ID<\/strong><\/td>\n<td>dalle impostazioni dell&#8217;app<\/td>\n<\/tr>\n<tr>\n<td><strong>Client secret<\/strong><\/td>\n<td>dalle impostazioni dell&#8217;app. A video compaiono asterischi e nel database viene salvato cifrato<\/td>\n<\/tr>\n<tr>\n<td><strong>Location giacenze<\/strong>, <strong>Id location<\/strong><\/td>\n<td>la location Shopify su cui si scrivono le giacenze. Non si digitano: si scelgono dal test di connessione<\/td>\n<\/tr>\n<tr>\n<td><strong>Test connessione e scelta location&#8230;<\/strong><\/td>\n<td>apre il test di connessione (sezione 4) sul sito. Funziona solo sul sito <strong>gi\u00e0 salvato<\/strong>: altrimenti <em>&#8220;Salvare il sito prima di eseguire il test di connessione&#8221;<\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>La cifratura del <em>Client secret<\/em> nasconde il dato a chi legge il database. Non \u00e8 una protezione forte: la chiave \u00e8 nel programma.<\/p>\n<h3>Scheda &#8220;Prodotti e giacenze&#8221;<\/h3>\n<table>\n<thead>\n<tr>\n<th>Campo<\/th>\n<th>A cosa serve<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Listino<\/strong><\/td>\n<td>listino dei prezzi pubblicati. Obbligatorio per pubblicare<\/td>\n<\/tr>\n<tr>\n<td><strong>Listino offerte<\/strong><\/td>\n<td>facoltativo. Se per l&#8217;articolo esiste un prezzo in offerta, su Shopify il prezzo del listino normale diventa il <strong>prezzo di confronto<\/strong> (barrato) e quello in offerta il prezzo di vendita<\/td>\n<\/tr>\n<tr>\n<td><strong>Scorta di sicurezza<\/strong><\/td>\n<td>quantit\u00e0 tolta dalla disponibilit\u00e0 di ogni variante prima dell&#8217;invio, per non vendere online l&#8217;ultimo pezzo<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Il listino pu\u00f2 essere IVA inclusa o esclusa: il gestionale converte il prezzo con l&#8217;aliquota dell&#8217;articolo secondo l&#8217;impostazione del negozio.<\/p>\n<h3>Scheda &#8220;Liste articoli&#8221;<\/h3>\n<p>Gli articoli da pubblicare si scelgono con le <strong>liste articoli<\/strong>, anche dinamiche. Si pubblicano gli articoli delle liste indicate, tolti quelli delle liste con <strong>Escludi gli articoli di questa lista<\/strong>. Ogni riga si conferma con <strong>Conferma riga<\/strong>.<\/p>\n<ul>\n<li>Con nessuna lista la pubblicazione si ferma: <em>&#8220;Nessun articolo nelle liste del sito: impostare le liste articoli prima di pubblicare&#8221;<\/em>.<\/li>\n<li>Un articolo che esce dalle liste viene messo <strong>in bozza<\/strong> su Shopify, mai cancellato. Se rientra nelle liste torna attivo.<\/li>\n<\/ul>\n<h3>Scheda &#8220;Depositi&#8221;<\/h3>\n<p>I depositi che formano la disponibilit\u00e0 online: si somma l&#8217;esistenza meno l&#8217;impegnato di ciascun deposito. Senza depositi l&#8217;invio delle giacenze si ferma: <em>&#8220;Nessun deposito indicato nel sito Shopify: impostare i depositi che formano la disponibilita&#8217; online&#8221;<\/em>.<\/p>\n<p>Solo i movimenti dei depositi indicati qui mettono in coda le giacenze da inviare.<\/p>\n<h3>Scheda &#8220;Ordini e clienti&#8221;<\/h3>\n<table>\n<thead>\n<tr>\n<th>Campo<\/th>\n<th>A cosa serve<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Causale ordini<\/strong><\/td>\n<td>causale degli ordini cliente creati dagli ordini Shopify. Da questa dipendono causale di magazzino, deposito e scarico<\/td>\n<\/tr>\n<tr>\n<td><strong>Serie documento<\/strong><\/td>\n<td>serie degli ordini cliente. Se \u00e8 vuota si usa la serie della causale. <strong>Deve essere riservata agli ordini Shopify<\/strong> (vedi sotto)<\/td>\n<\/tr>\n<tr>\n<td><strong>Spesa di spedizione<\/strong><\/td>\n<td>codice spesa su cui si riporta la spedizione pagata dal cliente<\/td>\n<\/tr>\n<tr>\n<td><strong>Pagamento predefinito<\/strong><\/td>\n<td>pagamento dell&#8217;ordine quando il metodo Shopify non ha transcodifica. Se manca anche questo, si usa il pagamento del cliente<\/td>\n<\/tr>\n<tr>\n<td><strong>Sottoconto clienti nuovi<\/strong><\/td>\n<td>sottoconto contabile dei clienti creati dall&#8217;import. Obbligatorio: senza, l&#8217;import si ferma con <em>&#8220;Sottoconto dei clienti nuovi non impostato nel sito Shopify&#8221;<\/em><\/td>\n<\/tr>\n<tr>\n<td><strong>Categoria clienti nuovi<\/strong><\/td>\n<td>categoria assegnata ai clienti creati<\/td>\n<\/tr>\n<tr>\n<td><strong>Prefisso codice clienti<\/strong><\/td>\n<td>1 carattere (predefinito <code>S<\/code>). Il codice dei clienti nuovi \u00e8 il prefisso seguito da 6 caratteri, un progressivo del sito in base 36, per esempio <code>S00001A<\/code><\/td>\n<\/tr>\n<tr>\n<td><strong>Attributo checkout SDI<\/strong><\/td>\n<td>nome dell&#8217;attributo del checkout che contiene il codice SDI (fino a 50 caratteri)<\/td>\n<\/tr>\n<tr>\n<td><strong>Escludi gli ordini di prova<\/strong><\/td>\n<td>di norma attivo: gli ordini fatti con il gateway di prova di Shopify non si importano<\/td>\n<\/tr>\n<tr>\n<td><strong>Ordini dal<\/strong><\/td>\n<td><strong>data di partenza<\/strong> del collegamento. Obbligatoria: gli ordini creati prima non si importano mai, neanche se modificati dopo, e non ricevono le evasioni<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Il <strong>numero dell&#8217;ordine cliente \u00e8 il numero dell&#8217;ordine Shopify<\/strong> (l&#8217;ordine <code>#1001<\/code> diventa il documento 1001 della serie del sito). Se nella serie esiste gi\u00e0 un ordine con quel numero non collegato a Shopify, l&#8217;import si ferma con <em>&#8220;il numero \u2026 e&#8217; gia&#8217; usato da un altro ordine: la serie deve essere riservata agli ordini Shopify&#8221;<\/em>.<\/p>\n<h3>Scheda &#8220;Transcodifiche e opzioni&#8221;<\/h3>\n<p>Il riquadro <strong>Opzioni<\/strong>:<\/p>\n<table>\n<thead>\n<tr>\n<th>Opzione<\/th>\n<th>Effetto<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Prodotti nuovi pubblicati come<\/strong><\/td>\n<td><em>Attivi (visibili nel negozio)<\/em> oppure <em>Bozza (da pubblicare su Shopify)<\/em>. Vale solo per i prodotti creati; negli aggiornamenti lo stato scelto su Shopify non si tocca<\/td>\n<\/tr>\n<tr>\n<td><strong>Codici CVAR mancanti composti con<\/strong><\/td>\n<td>codici oppure sigle dei valori delle varianti, per i CVAR generati alla pubblicazione<\/td>\n<\/tr>\n<tr>\n<td><strong>Separatore<\/strong><\/td>\n<td>carattere fra le parti del CVAR generato; vuoto = trattino<\/td>\n<\/tr>\n<tr>\n<td><strong>Aliquota IVA ordinaria del negozio %<\/strong><\/td>\n<td>vuoto = 22. Gli articoli con un&#8217;aliquota diversa (e maggiore di zero) ricevono la collezione IVA della sezione 8<\/td>\n<\/tr>\n<tr>\n<td><strong>Canali di vendita dei prodotti nuovi<\/strong><\/td>\n<td>canali in cui rendere disponibili i prodotti creati dal gestionale, con i nomi che mostra Shopify separati da virgola (per esempio <em>Online Store, Point of Sale<\/em>). Vuoto = <em>Online Store<\/em>; <code>-<\/code> = nessun canale. Il pulsante <strong>Scegli&#8230;<\/strong> legge i canali dal negozio (il sito deve essere salvato) e li fa scegliere da un elenco, anche pi\u00f9 di uno con Ctrl+clic<\/td>\n<\/tr>\n<tr>\n<td><strong>Alla spedizione Shopify avvisa il cliente via email (invio evasioni)<\/strong><\/td>\n<td>se attiva, all&#8217;invio dell&#8217;evasione Shopify manda al cliente l&#8217;email di spedizione<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Le quattro tabelle di transcodifica (<strong>Aggiungi<\/strong> \/ <strong>Elimina<\/strong> righe):<\/p>\n<table>\n<thead>\n<tr>\n<th>Tabella<\/th>\n<th>Chiave<\/th>\n<th>Valore<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Pagamenti<\/strong><\/td>\n<td>nome del metodo di pagamento come lo riporta Shopify. Si legge nelle note interne dell&#8217;ordine importato, riga <em>Pagamento Shopify<\/em><\/td>\n<td>pagamento del gestionale<\/td>\n<\/tr>\n<tr>\n<td><strong>Aliquote IVA<\/strong><\/td>\n<td>aliquota in percentuale: 22, 10, 4, 5,5, <strong>0<\/strong><\/td>\n<td>codice IVA<\/td>\n<\/tr>\n<tr>\n<td><strong>Stati ordine<\/strong><\/td>\n<td>stato del pagamento su Shopify: <em>In attesa di pagamento<\/em>, <em>Autorizzato<\/em>, <em>Pagato in parte<\/em>, <em>Pagato<\/em>, <em>Rimborsato in parte<\/em>, <em>Rimborsato<\/em>, <em>Annullato<\/em>, <em>Scaduto<\/em>. L&#8217;ultima riga vale per gli ordini il cui totale non coincide con Shopify<\/td>\n<td>stato dell&#8217;ordine cliente<\/td>\n<\/tr>\n<tr>\n<td><strong>Lingue<\/strong><\/td>\n<td>lingua del negozio Shopify, con il codice di Shopify: <code>en<\/code>, <code>it<\/code>, <code>de<\/code>, <code>pt-BR<\/code>\u2026 Compresa la lingua principale del negozio, se \u00e8 diversa dall&#8217;italiano<\/td>\n<td>lingua del gestionale da cui prendere i testi (sezione 8)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote><p>\u26a0\ufe0f <strong>Le transcodifiche si salvano con il record.<\/strong> Dopo aver aggiunto le righe bisogna salvare l&#8217;anagrafica.<\/p><\/blockquote>\n<p>Senza transcodifica dell&#8217;aliquota, l&#8217;ordine usa il codice IVA dell&#8217;articolo, se ha la stessa aliquota. Altrimenti l&#8217;ordine <strong>non viene importato<\/strong> e resta in coda. Le righe e le spedizioni su cui Shopify non applica imposte richiedono la riga con aliquota <strong>0<\/strong>, con un codice esente o non imponibile. Senza quella riga compare <em>&#8220;riga senza IVA su Shopify: indicare nelle transcodifiche del sito (scheda Aliquote IVA) il codice IVA per l&#8217;aliquota 0 (esente o non imponibile)&#8221;<\/em>.<\/p>\n<h3>Scheda &#8220;Primo allineamento&#8221;<\/h3>\n<p>Valori usati per gli <strong>articoli creati<\/strong> dal primo allineamento, cio\u00e8 per i prodotti gi\u00e0 presenti su Shopify e assenti nel gestionale (sezione 6).<\/p>\n<table>\n<thead>\n<tr>\n<th>Campo<\/th>\n<th>A cosa serve<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Unit\u00e0 di misura<\/strong><\/td>\n<td>UM degli articoli creati<\/td>\n<\/tr>\n<tr>\n<td><strong>Codice iva<\/strong><\/td>\n<td>codice IVA degli articoli creati: Shopify non conosce l&#8217;aliquota dei prodotti, quindi \u00e8 <strong>lo stesso per tutti<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>Gruppo merceologico<\/strong><\/td>\n<td>gruppo degli articoli creati<\/td>\n<\/tr>\n<tr>\n<td><strong>Lista articoli creati<\/strong><\/td>\n<td>lista <strong>statica<\/strong>, da inserire anche nella scheda <em>Liste articoli<\/em>, a cui si aggiungono gli articoli creati. Senza, la pubblicazione successiva metterebbe in bozza i prodotti appena collegati<\/td>\n<\/tr>\n<tr>\n<td><strong>Causale carico iniziale<\/strong><\/td>\n<td>causale del documento di magazzino con le quantit\u00e0 presenti su Shopify<\/td>\n<\/tr>\n<tr>\n<td><strong>Deposito carico iniziale<\/strong><\/td>\n<td>deposito di quel documento<\/td>\n<\/tr>\n<tr>\n<td><strong>Primo allineamento eseguito<\/strong><\/td>\n<td>lo imposta la procedura. <strong>Finch\u00e9 non \u00e8 attivo, pubblicazione e invio giacenze sono bloccati<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h2>4. Test connessione<\/h2>\n<p>Si apre dal menu o dal pulsante della scheda <em>Connessione<\/em>. Chiede il token a Shopify e legge i dati del negozio. Mostra:<\/p>\n<ul>\n<li>nome del negozio, valuta, prezzi IVA inclusa o esclusa, piano;<\/li>\n<li><strong>scope concessi<\/strong> e <em>&#8220;Scope mancanti per le fasi successive&#8221;<\/em>; gli scope delle traduzioni si controllano solo se il sito ha la tabella <em>Lingue<\/em>;<\/li>\n<li>le <strong>lingue del negozio<\/strong>, per esempio <em>it (principale), en, de (non pubblicata)<\/em>;<\/li>\n<li>limite di chiamata disponibile;<\/li>\n<li>i <strong>canali di vendita<\/strong> del negozio, da copiare nell&#8217;opzione <em>Canali di vendita dei prodotti nuovi<\/em>;<\/li>\n<li>l&#8217;elenco delle <strong>location<\/strong> attive, con l&#8217;indicazione <em>(non evade ordini online)<\/em> dove serve.<\/li>\n<\/ul>\n<p>Seleziona la location e premi <strong>Usa la location selezionata per le giacenze<\/strong>: viene salvata nel sito. Se la location salvata non \u00e8 pi\u00f9 attiva sul negozio, il test avvisa: <em>&#8220;La location impostata sul sito non e&#8217; fra quelle attive del negozio: sceglierne una.&#8221;<\/em><\/p>\n<p>Errori tipici del token:<\/p>\n<table>\n<thead>\n<tr>\n<th>Messaggio<\/th>\n<th>Causa<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><em>&#8220;\u2026L&#8217;app non e&#8217; installata sul negozio\u2026&#8221;<\/em><\/td>\n<td>app non rilasciata, non installata, o in un&#8217;altra organizzazione (sezione 2)<\/td>\n<\/tr>\n<tr>\n<td><em>&#8220;Client ID o Client secret non corretti: ricopiarli dalle impostazioni dell&#8217;app nel Dev Dashboard.&#8221;<\/em><\/td>\n<td>credenziali sbagliate<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr \/>\n<h2>5. Avviare il collegamento: i casi possibili<\/h2>\n<p>La preparazione di Shopify (sezione 2) e la compilazione dell&#8217;anagrafica (sezione 3) sono uguali in tutti i casi. Cambia l&#8217;ordine delle operazioni, a seconda di dove si trovano gi\u00e0 i dati.<\/p>\n<h3>5.1 Il gestionale \u00e8 gi\u00e0 in uso e si apre un negozio Shopify nuovo<\/h3>\n<p>\u00c8 il caso pi\u00f9 semplice: gli articoli ci sono gi\u00e0, il negozio \u00e8 vuoto.<\/p>\n<ol>\n<li><strong>Prepara gli articoli.<\/strong> Crea una o pi\u00f9 liste articoli con quello che vuoi vendere online e controlla per quegli articoli:\n<ul>\n<li>titolo e descrizione web nella lingua di default (altrimenti si usano descrizione e descrizione aggiuntiva);<\/li>\n<li>marca, gruppo merceologico, tag;<\/li>\n<li>prezzo nel listino del sito;<\/li>\n<li>immagini nell&#8217;archivio documenti, nelle categorie <em>immagine principale<\/em> e <em>altre immagini<\/em> dei dati fissi;<\/li>\n<li>per gli articoli con varianti, <strong>al massimo 3 dimensioni<\/strong> (Shopify non ne gestisce di pi\u00f9).<\/li>\n<\/ul>\n<\/li>\n<li><strong>Prepara Shopify<\/strong> (sezione 2): app, scope, valuta, prezzi IVA inclusa, location.<\/li>\n<li><strong>Crea il sito<\/strong> nell&#8217;anagrafica e salvalo. Poi <strong>Test connessione<\/strong> e scelta della location.<\/li>\n<li>Compila <strong>Liste articoli<\/strong>, <strong>Depositi<\/strong>, <strong>Ordini e clienti<\/strong> e <strong>Transcodifiche e opzioni<\/strong>. Come <strong>Ordini dal<\/strong> metti il giorno di apertura del negozio.<\/li>\n<li><strong>Primo allineamento<\/strong> da <em>Gestione sito<\/em>, scheda <em>Utilit\u00e0<\/em>. Sul negozio vuoto non trova prodotti. L&#8217;anteprima lo conferma e l&#8217;esecuzione segna il sito come allineato.<\/li>\n<li><strong>Pubblica tutti<\/strong> (scheda <em>Articoli<\/em>). Se vuoi controllare i prodotti prima di mostrarli, imposta prima l&#8217;opzione <em>Prodotti nuovi pubblicati come: Bozza<\/em>.<\/li>\n<li>Per ogni aliquota ridotta <strong>imposta l&#8217;eccezione IVA<\/strong> sulla collezione <code>IVA n%<\/code> creata dalla pubblicazione (sezione 8).<\/li>\n<li><strong>Invia tutte le giacenze<\/strong> (scheda <em>Giacenze<\/em>): il negozio \u00e8 ancora fermo, quindi non ci sono ordini da perdere.<\/li>\n<li>Fai <strong>un ordine di prova<\/strong> e importalo con <em>Importa ordini<\/em>. Controlla cliente, righe, IVA, spedizione e totale. Poi evadilo con un DDT e prova <em>Invia evasioni<\/em>.<\/li>\n<li>Configura la <strong>procedura schedulata<\/strong> (sezione 13) e apri il negozio.<\/li>\n<\/ol>\n<h3>5.2 Il negozio Shopify \u00e8 gi\u00e0 in uso e il gestionale \u00e8 vuoto<\/h3>\n<p>Il catalogo \u00e8 su Shopify. Il primo allineamento <strong>crea gli articoli nel gestionale<\/strong> partendo dai prodotti del negozio.<\/p>\n<ol>\n<li><strong>Prepara Shopify<\/strong> (sezione 2). Controlla che ogni variante abbia uno <strong>SKU<\/strong> e che gli SKU siano univoci. Gli SKU dei prodotti senza varianti possono avere al massimo <strong>20 caratteri<\/strong>, quelli delle varianti <strong>50<\/strong>.<\/li>\n<li>Nel gestionale prepara:\n<ul>\n<li>le tabelle di base (unit\u00e0 di misura, codici IVA, un gruppo merceologico, il listino e l&#8217;eventuale listino offerte);<\/li>\n<li>una <strong>lista articoli statica<\/strong> per gli articoli creati;<\/li>\n<li>una causale di magazzino per il <strong>carico iniziale<\/strong> e il deposito.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Crea il sito<\/strong> e compila tutte le schede, compresa <strong>Primo allineamento<\/strong>. Metti la lista degli articoli creati <strong>anche<\/strong> nella scheda <em>Liste articoli<\/em>.<\/li>\n<li><strong>Primo allineamento<\/strong> (sezione 6). Leggi con attenzione l&#8217;anteprima: conflitti, prodotti senza SKU, configurazione mancante. Correggi su Shopify i conflitti che ti interessano e ripeti l&#8217;analisi finch\u00e9 il risultato \u00e8 quello atteso. Poi conferma.<\/li>\n<li><strong>Controlla gli articoli creati prima di pubblicare.<\/strong> In particolare:\n<ul>\n<li>il <strong>codice IVA<\/strong>: \u00e8 quello della scheda <em>Primo allineamento<\/em> per tutti. Correggi gli articoli ad aliquota ridotta;<\/li>\n<li>le descrizioni e i prezzi nel listino;<\/li>\n<li>il <strong>documento di carico iniziale<\/strong>, che porta in giacenza le quantit\u00e0 presenti su Shopify.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Pubblica tutti.<\/strong> Da questo momento il gestionale \u00e8 master: titolo, descrizione, prezzi e varianti di Shopify vengono riscritti con quelli del gestionale. Le immagini del negozio sono gi\u00e0 state scaricate nell&#8217;archivio documenti e vengono riusate, non ricaricate.<\/li>\n<li>Eccezioni IVA sulle collezioni <code>IVA n%<\/code> (sezione 8).<\/li>\n<li>Come <strong>Ordini dal<\/strong> metti il giorno da cui il gestionale riceve gli ordini. Gli ordini precedenti restano solo su Shopify e i clienti vengono creati man mano che arrivano ordini nuovi.<\/li>\n<li>Scegli un momento di negozio fermo, oppure lancia <em>Importa ordini<\/em> subito prima, e fai <strong>Invia tutte le giacenze<\/strong>.<\/li>\n<li>Configura la <strong>procedura schedulata<\/strong>.<\/li>\n<\/ol>\n<h3>5.3 Il negozio Shopify \u00e8 gi\u00e0 in uso e anche il gestionale \u00e8 gi\u00e0 avviato<\/h3>\n<p>Gli articoli esistono da entrambe le parti. Il primo allineamento <strong>li collega<\/strong> e crea nel gestionale solo quelli che mancano.<\/p>\n<ol>\n<li><strong>Allinea gli SKU prima di iniziare.<\/strong> Il collegamento \u00e8 automatico solo se:\n<ul>\n<li>lo SKU di un prodotto Shopify senza varianti \u00e8 uguale al <strong>codice articolo<\/strong>;<\/li>\n<li>lo SKU di ogni variante \u00e8 uguale al <strong>barcode CVAR<\/strong> della variante corrispondente nel gestionale.<\/li>\n<\/ul>\n<p>Maiuscole e minuscole non contano. Dove non coincidono, correggi lo SKU su Shopify, oppure aggiungi il CVAR giusto alla variante nel gestionale.<\/li>\n<li>Controlla che la <strong>struttura varianti<\/strong> del gestionale corrisponda alle opzioni Shopify: tutte le varianti di un prodotto devono portare allo stesso articolo.<\/li>\n<li><strong>Crea il sito<\/strong> e compila le schede. Le liste articoli devono contenere gli articoli gi\u00e0 in vendita online: gli articoli collegati che non sono nelle liste vengono aggiunti alla <em>Lista articoli creati<\/em>, se \u00e8 impostata.<\/li>\n<li><strong>Primo allineamento<\/strong>, con l&#8217;anteprima. Oltre ai conflitti, guarda le <strong>differenze di giacenza<\/strong> sui prodotti collegati: dopo l&#8217;allineamento vince la giacenza del gestionale, e per i prodotti collegati non si genera nessun carico. Se il gestionale non ha giacenze affidabili, <strong>fai prima un inventario<\/strong>.<\/li>\n<li>Correggi i conflitti e ripeti l&#8217;analisi quante volte serve: l&#8217;allineamento ripetuto non crea doppioni.<\/li>\n<li>Conferma. Poi controlla gli articoli creati (codice IVA, prezzi) come nel caso 5.2.<\/li>\n<li><strong>Pubblica tutti<\/strong>: i prodotti collegati vengono riscritti con i dati del gestionale. Se un articolo non ha immagini nel gestionale, quelle di Shopify restano. Se ha la descrizione vuota, quella di Shopify non viene toccata.<\/li>\n<li>Eccezioni IVA, poi <em>Invia tutte le giacenze<\/em> a negozio fermo, poi la <strong>procedura schedulata<\/strong>.<\/li>\n<li>Come <strong>Ordini dal<\/strong> metti il giorno da cui gli ordini arrivano dal collegamento: quelli precedenti, inseriti a mano, non vengono importati di nuovo.<\/li>\n<\/ol>\n<blockquote><p>\u26a0\ufe0f <strong>Non pubblicare e non inviare giacenze prima del primo allineamento.<\/strong> Il gestionale lo impedisce (<em>&#8220;Primo allineamento non eseguito: eseguirlo prima di pubblicare, per non creare doppioni dei prodotti gia&#8217; presenti sul negozio&#8221;<\/em>). Non attivare a mano il flag <em>Primo allineamento eseguito<\/em> su un negozio che ha gi\u00e0 dei prodotti.<\/p><\/blockquote>\n<hr \/>\n<h2>6. Il primo allineamento<\/h2>\n<p>Si lancia da <em>Gestione sito<\/em>, scheda <em>Utilit\u00e0<\/em>, <strong>Primo allineamento&#8230;<\/strong>. Serve una sola volta per negozio, ma si pu\u00f2 ripetere senza creare doppioni.<\/p>\n<h3>Anteprima<\/h3>\n<p>La procedura legge tutto il catalogo Shopify e <strong>non scrive nulla<\/strong>. Nel riquadro <em>Avanzamento<\/em> elenca:<\/p>\n<ul>\n<li>i prodotti <strong>collegati<\/strong> ad articoli esistenti;<\/li>\n<li>i prodotti <strong>da creare<\/strong> nel gestionale;<\/li>\n<li>i prodotti con <strong>varianti senza SKU<\/strong>;<\/li>\n<li>i <strong>conflitti<\/strong>, con il motivo;<\/li>\n<li>gli articoli delle liste del sito che su Shopify non ci sono (li creer\u00e0 la pubblicazione);<\/li>\n<li>le <strong>giacenze diverse<\/strong> fra gestionale e Shopify sui prodotti collegati;<\/li>\n<li>la configurazione mancante.<\/li>\n<\/ul>\n<p>Un prodotto va in <strong>conflitto<\/strong>, e resta escluso, se:<\/p>\n<ul>\n<li>lo SKU \u00e8 ripetuto nel negozio;<\/li>\n<li>solo alcune varianti trovano un articolo, oppure varianti diverse portano ad articoli diversi;<\/li>\n<li>l&#8217;articolo \u00e8 gi\u00e0 abbinato a un altro prodotto;<\/li>\n<li>il prodotto ha pi\u00f9 di 3 opzioni;<\/li>\n<li>lo SKU supera i 50 caratteri (20 per un prodotto senza varianti);<\/li>\n<li>lo SKU di un prodotto senza varianti \u00e8 il codice di un articolo con varianti.<\/li>\n<\/ul>\n<p>Le <strong>gift card<\/strong> non vengono mai importate.<\/p>\n<p>Se manca la configurazione per creare gli articoli, la procedura lo dice e non chiede conferma: <em>&#8220;Per creare gli articoli completare prima nell&#8217;anagrafica del sito: \u2026&#8221;<\/em>.<\/p>\n<h3>Conferma<\/h3>\n<p>La domanda riepiloga quanti prodotti si collegano e quanti articoli si creano. La casella <strong>Crea anche i N prodotti con varianti senza SKU<\/strong> va spuntata solo se sei sicuro che quei prodotti non esistono gi\u00e0 nel gestionale: senza SKU non si possono riconoscere, e il rischio \u00e8 un doppione. Per queste varianti il CVAR viene generato e lo SKU viene scritto su Shopify alla prima pubblicazione.<\/p>\n<h3>Cosa crea<\/h3>\n<p>Per ogni prodotto da creare:<\/p>\n<ul>\n<li>l&#8217;<strong>articolo<\/strong>:\n<ul>\n<li>codice = SKU in maiuscolo per i prodotti senza varianti;<\/li>\n<li>per i prodotti con varianti, l&#8217;handle Shopify in maiuscolo se entra in 20 caratteri, altrimenti <code>SH<\/code> pi\u00f9 un progressivo;<\/li>\n<\/ul>\n<\/li>\n<li>UM, codice IVA e gruppo dalla scheda <em>Primo allineamento<\/em>; la <strong>marca<\/strong> se ne esiste una con la stessa descrizione del fornitore (vendor) Shopify (le marche non si creano);<\/li>\n<li>una <strong>struttura varianti<\/strong> propria, con le sole combinazioni presenti su Shopify, e un <strong>CVAR<\/strong> per variante uguale allo SKU;<\/li>\n<li>il <strong>barcode<\/strong> Shopify come barcode web;<\/li>\n<li>i <strong>prezzi<\/strong> nel listino del sito. Se su Shopify c&#8217;\u00e8 un prezzo di confronto, questo va nel listino normale e il prezzo di vendita nel listino offerte;<\/li>\n<li>il <strong>peso<\/strong>, il titolo, la descrizione e i tag nella lingua di default;<\/li>\n<li>la riga nella <strong>lista articoli creati<\/strong>;<\/li>\n<li>le <strong>immagini<\/strong>, scaricate nell&#8217;archivio documenti: la prima come immagine principale, le altre (fino a 10) nella categoria delle altre immagini; l&#8217;immagine di una variante viene collegata anche alla variante.<\/li>\n<\/ul>\n<p>Le immagini si scaricano anche per gli articoli <strong>collegati<\/strong> che nel gestionale non ne hanno.<\/p>\n<p>Infine viene creato <strong>un solo documento di carico<\/strong> con le quantit\u00e0 disponibili su Shopify, una riga per ogni variante con giacenza. Se il documento non si riesce a salvare, gli articoli restano creati: l&#8217;esito lo segnala e il log elenca le quantit\u00e0 da caricare a mano.<\/p>\n<p>A fine procedura il sito \u00e8 segnato come allineato, anche se ci sono conflitti: i prodotti in conflitto restano esclusi finch\u00e9 non li correggi e ripeti l&#8217;allineamento.<\/p>\n<hr \/>\n<h2>7. Gestione sito<\/h2>\n<p>In alto si sceglie il <strong>Sito<\/strong> (solo i siti attivi). <strong>Apri<\/strong> apre l&#8217;anagrafica del sito, <strong>Log&#8230;<\/strong> la consultazione del log. Il riquadro <strong>Avanzamento<\/strong> mostra cosa sta facendo l&#8217;operazione in corso e il risultato.<\/p>\n<h3>Scheda &#8220;Ordini&#8221;<\/h3>\n<table>\n<thead>\n<tr>\n<th>Pulsante<\/th>\n<th>Cosa fa<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Importa ordini<\/strong><\/td>\n<td>importa gli ordini nuovi o modificati e ritenta quelli in coda. Poi invia le giacenze in coda<\/td>\n<\/tr>\n<tr>\n<td><strong>Reimporta ordine&#8230;<\/strong><\/td>\n<td>chiede il numero (1001 o #1001) e reimporta quell&#8217;ordine anche se non \u00e8 cambiato. Serve per recuperare un ordine cancellato per errore nel gestionale<\/td>\n<\/tr>\n<tr>\n<td><strong>Ordini in coda: N<\/strong><\/td>\n<td>ordini non importati per un errore. Un clic apre il log sulle code, con il motivo<\/td>\n<\/tr>\n<tr>\n<td><strong>Invia evasioni<\/strong><\/td>\n<td>invia a Shopify le spedizioni dei DDT e delle fatture, con data da <em>Ordini dal<\/em><\/td>\n<\/tr>\n<tr>\n<td><strong>Invia evasione ordine&#8230;<\/strong><\/td>\n<td>come sopra, per un solo ordine e senza limite di data<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Scheda &#8220;Giacenze&#8221;<\/h3>\n<table>\n<thead>\n<tr>\n<th>Pulsante<\/th>\n<th>Cosa fa<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Invia giacenze in coda<\/strong><\/td>\n<td>invia solo le varianti cambiate dai movimenti di magazzino. Mostra quante sono in attesa<\/td>\n<\/tr>\n<tr>\n<td><strong>Invia tutte le giacenze<\/strong><\/td>\n<td>invia le giacenze di tutti gli articoli pubblicati. <strong>Operazione di servizio<\/strong>: chiede conferma e va usata a negozio fermo o subito dopo <em>Importa ordini<\/em><\/td>\n<\/tr>\n<tr>\n<td><strong>Invia giacenze singolo articolo<\/strong><\/td>\n<td>invia le giacenze dell&#8217;articolo indicato<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Scheda &#8220;Articoli&#8221;<\/h3>\n<table>\n<thead>\n<tr>\n<th>Pulsante<\/th>\n<th>Cosa fa<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Pubblica singolo l&#8217;articolo<\/strong><\/td>\n<td>pubblica l&#8217;articolo indicato, anche se non \u00e8 cambiato<\/td>\n<\/tr>\n<tr>\n<td><strong>Pubblica modificati<\/strong><\/td>\n<td>pubblica gli articoli delle liste nuovi o cambiati dall&#8217;ultima pubblicazione (dati, prezzo, varianti, immagini, aliquota)<\/td>\n<\/tr>\n<tr>\n<td><strong>Pubblica tutti<\/strong><\/td>\n<td>ripubblica tutti gli articoli delle liste. Chiede conferma: con molti articoli richiede tempo, ma le immagini gi\u00e0 caricate non si reinviano<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Scheda &#8220;Utilit\u00e0&#8221;<\/h3>\n<p><strong>Primo allineamento&#8230;<\/strong> (sezione 6), la riga <strong>Semaforo<\/strong> e il pulsante <strong>Sblocca<\/strong> (sezione 14).<\/p>\n<p>Se un&#8217;operazione \u00e8 gi\u00e0 in corso nella maschera compare <em>&#8220;Operazione in corso: attendere la fine&#8221;<\/em>.<\/p>\n<hr \/>\n<h2>8. Pubblicazione dei prodotti<\/h2>\n<p>La pubblicazione \u00e8 <strong>solo manuale<\/strong>: salvare un articolo non lo invia al negozio. Dopo aver cambiato prezzi, descrizioni o immagini usa <strong>Pubblica modificati<\/strong>.<\/p>\n<p>Cosa si invia per ogni articolo:<\/p>\n<table>\n<thead>\n<tr>\n<th>Su Shopify<\/th>\n<th>Dal gestionale<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Titolo<\/td>\n<td>descrizione web della lingua di default, altrimenti descrizione dell&#8217;articolo<\/td>\n<\/tr>\n<tr>\n<td>Descrizione<\/td>\n<td>descrizione estesa (HTML) della lingua di default, altrimenti descrizione aggiuntiva<\/td>\n<\/tr>\n<tr>\n<td>Titolo e descrizione per i motori di ricerca<\/td>\n<td>titolo web e meta description della lingua di default<\/td>\n<\/tr>\n<tr>\n<td>Fornitore<\/td>\n<td>marca<\/td>\n<\/tr>\n<tr>\n<td>Tipo prodotto<\/td>\n<td>gruppo merceologico<\/td>\n<\/tr>\n<tr>\n<td>Tag<\/td>\n<td>tag dell&#8217;articolo e della descrizione web, pi\u00f9 il tag IVA (sotto)<\/td>\n<\/tr>\n<tr>\n<td>Opzioni e varianti<\/td>\n<td>una opzione per dimensione della struttura varianti, al massimo 3<\/td>\n<\/tr>\n<tr>\n<td>SKU<\/td>\n<td>codice articolo, oppure CVAR della variante<\/td>\n<\/tr>\n<tr>\n<td>Prezzo e prezzo di confronto<\/td>\n<td>dai listini del sito<\/td>\n<\/tr>\n<tr>\n<td>Barcode, peso<\/td>\n<td>barcode web, peso lordo<\/td>\n<\/tr>\n<tr>\n<td>Immagini<\/td>\n<td>archivio documenti: immagine principale, altre immagini, immagine di ogni variante<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Regole:<\/p>\n<ul>\n<li>un prodotto <strong>nuovo<\/strong> nasce attivo o in bozza secondo l&#8217;opzione del sito; negli aggiornamenti lo stato impostato su Shopify non cambia;<\/li>\n<li>un prodotto viene reso disponibile nei <strong>canali di vendita<\/strong> dell&#8217;opzione del sito una sola volta: alla creazione, oppure al primo invio dopo l&#8217;aggiornamento del programma per i prodotti gi\u00e0 pubblicati. Poi i canali si gestiscono su Shopify e il gestionale non li tocca pi\u00f9. Senza canale un prodotto attivo non compare da nessuna parte;<\/li>\n<li>se i canali non si possono leggere (manca lo scope <code>write_publications<\/code>) il prodotto si pubblica lo stesso, ma resta da reinviare: <em>Pubblica modificati<\/em> lo riprova al giro successivo;<\/li>\n<li>un articolo <strong>obsoleto<\/strong>, <strong>eliminato<\/strong> o <strong>uscito dalle liste<\/strong> va in bozza. Nessun prodotto viene mai cancellato;<\/li>\n<li>un articolo senza immagini nel gestionale non tocca quelle presenti su Shopify;<\/li>\n<li>se un prodotto collegato \u00e8 stato cancellato su Shopify, viene ricreato;<\/li>\n<li>prima di creare un prodotto si cerca su Shopify una variante con lo stesso SKU, per non creare doppioni;<\/li>\n<li>le collezioni del negozio non si toccano, salvo le collezioni IVA.<\/li>\n<\/ul>\n<h3>Aliquote IVA ridotte<\/h3>\n<p>Shopify non conosce l&#8217;aliquota dei singoli articoli: applica a tutti l&#8217;aliquota ordinaria dell&#8217;Italia, a meno che il prodotto stia in una <strong>collezione con eccezione IVA<\/strong>. Il gestionale fa la sua parte in automatico:<\/p>\n<ul>\n<li>agli articoli con aliquota diversa dall&#8217;ordinaria del sito (e maggiore di zero) aggiunge il tag <code>IVA 10%<\/code>, <code>IVA 4%<\/code>, <code>IVA 5.5%<\/code>\u2026;<\/li>\n<li>crea la collezione <strong>manuale<\/strong> <code>IVA 10%<\/code> (e cos\u00ec via), una per aliquota;<\/li>\n<li>ci inserisce i prodotti con quell&#8217;aliquota e li toglie quando l&#8217;aliquota cambia.<\/li>\n<\/ul>\n<p>Gli articoli esenti vengono pubblicati come <strong>non soggetti a imposte<\/strong>.<\/p>\n<p><strong>Una volta per ogni aliquota<\/strong> bisogna impostare l&#8217;eccezione su Shopify, perch\u00e9 non esiste un modo di farlo dal gestionale:<\/p>\n<ol>\n<li>pubblica almeno un articolo con quell&#8217;aliquota e controlla che la collezione <code>IVA n%<\/code> esista e contenga il prodotto;<\/li>\n<li>su Shopify: <strong>Impostazioni \u2192 Imposte e dazi \u2192 Italia \u2192 Eccezioni sui prodotti<\/strong> \u2192 aggiungi un&#8217;eccezione per la collezione <code>IVA n%<\/code> con l&#8217;aliquota giusta;<\/li>\n<li>fai un ordine di prova: su Shopify deve comparire l&#8217;IVA ridotta, e l&#8217;ordine cliente deve entrare con il codice IVA corrispondente.<\/li>\n<\/ol>\n<blockquote><p>\u26a0\ufe0f <strong>Le eccezioni IVA valgono solo sulle collezioni manuali.<\/strong> Non trasformare le collezioni <code>IVA n%<\/code> in collezioni automatiche. Se ne esiste una automatica con quel nome, la pubblicazione segnala l&#8217;errore: va eliminata su Shopify e l&#8217;articolo ripubblicato.<\/p><\/blockquote>\n<p>Senza eccezione, Shopify scorpora il 22% anche da un articolo al 10%, e l&#8217;ordine entra al 22%.<\/p>\n<h3>Lingue e traduzioni<\/h3>\n<p>Se il sito ha la tabella <strong>Lingue<\/strong> (scheda <em>Transcodifiche e opzioni<\/em>), a ogni pubblicazione il gestionale legge le lingue del negozio e usa la tabella in due modi:<\/p>\n<ul>\n<li><strong>lingua principale del negozio<\/strong> (su Shopify <em>Settings \u2192 Languages<\/em>, quella marcata <em>Default<\/em>): se \u00e8 nella tabella, i <strong>testi principali<\/strong> del prodotto si prendono dalla lingua del gestionale abbinata. Se non \u00e8 nella tabella, i testi principali restano quelli della lingua di default del gestionale;<\/li>\n<li><strong>tutte le altre righe<\/strong> diventano <strong>traduzioni<\/strong>, compresa la lingua di default del gestionale quando il negozio ha un&#8217;altra lingua principale.<\/li>\n<\/ul>\n<p>Esempio: il negozio ha l&#8217;inglese come lingua principale e l&#8217;italiano e il tedesco come traduzioni. La tabella <em>Lingue<\/em> \u00e8:<\/p>\n<table>\n<thead>\n<tr>\n<th>Lingua Shopify<\/th>\n<th>Lingua<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>en<\/code><\/td>\n<td><code>ENG<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>it<\/code><\/td>\n<td><code>ITA<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>de<\/code><\/td>\n<td><code>DEU<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Il prodotto si pubblica con i testi inglesi dell&#8217;articolo, e l&#8217;italiano e il tedesco arrivano come traduzioni. Se il negozio avesse l&#8217;italiano come lingua principale, basterebbe la riga <code>en<\/code> \u2192 <code>ENG<\/code>.<\/p>\n<p>I testi usati:<\/p>\n<table>\n<thead>\n<tr>\n<th>Su Shopify<\/th>\n<th>Dal gestionale, nella lingua abbinata<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Titolo<\/td>\n<td>descrizione web<\/td>\n<\/tr>\n<tr>\n<td>Descrizione<\/td>\n<td>descrizione estesa (HTML)<\/td>\n<\/tr>\n<tr>\n<td>Tipo prodotto<\/td>\n<td>descrizione in lingua del gruppo merceologico<\/td>\n<\/tr>\n<tr>\n<td>Titolo e descrizione per i motori di ricerca<\/td>\n<td>titolo web e meta description<\/td>\n<\/tr>\n<tr>\n<td>Tag (solo testi principali)<\/td>\n<td>tag web, insieme ai tag dell&#8217;articolo<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Quando un testo manca:<\/strong><\/p>\n<table>\n<thead>\n<tr>\n<th>Caso<\/th>\n<th>Cosa si usa<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>testi principali, lingua abbinata senza testo<\/td>\n<td>i dati dell&#8217;articolo: descrizione, descrizione aggiuntiva, gruppo merceologico. L&#8217;articolo si pubblica comunque, con l&#8217;avviso <em>&#8220;testi nella lingua \u2026 (lingua principale del negozio) mancanti: usati quelli dell&#8217;articolo per \u2026&#8221;<\/em><\/td>\n<\/tr>\n<tr>\n<td>traduzione nella lingua di default del gestionale<\/td>\n<td>la descrizione web in quella lingua, altrimenti i dati dell&#8217;articolo, che sono gi\u00e0 in quella lingua<\/td>\n<\/tr>\n<tr>\n<td>traduzione in un&#8217;altra lingua<\/td>\n<td>solo la descrizione web in quella lingua. Senza testo il campo non si traduce, e il cliente vede il testo principale<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Regole:<\/p>\n<ul>\n<li><strong>le traduzioni fatte su Shopify restano<\/strong>: quelle a mano e quelle della traduzione automatica (<em>Translate &amp; Adapt<\/em>) non vengono toccate, finch\u00e9 il gestionale non ha un testo proprio per quel campo. Quando ce l&#8217;ha, vince il gestionale, come per il resto del prodotto;<\/li>\n<li>un testo <strong>svuotato<\/strong> nel gestionale toglie da Shopify solo la traduzione inviata dal gestionale, e solo se nessuno l&#8217;ha cambiata su Shopify nel frattempo;<\/li>\n<li>si inviano solo i campi cambiati, e le traduzioni entrano nel confronto di <em>Pubblica modificati<\/em>: cambiare un testo tradotto fa ripubblicare l&#8217;articolo;<\/li>\n<li><strong>opzioni e valori delle varianti<\/strong> (taglia, colore\u2026) restano in una sola lingua, quella delle descrizioni dei valori nel gestionale. Per un negozio tutto in inglese vanno scritte in inglese;<\/li>\n<li>un campo si pu\u00f2 tradurre solo se ha un testo principale. Per esempio, una meta description presente solo nella traduzione non si invia, e il log lo segnala come avviso;<\/li>\n<li>i tag non si traducono: Shopify non lo prevede.<\/li>\n<\/ul>\n<p>All&#8217;inizio di ogni pubblicazione il riquadro <em>Avanzamento<\/em> dice quale lingua usa, per esempio <em>&#8220;Lingua principale del negozio: en, testi dalla lingua ENG del gestionale&#8221;<\/em> e <em>&#8220;Traduzioni in: de da DEU, it da ITA&#8221;<\/em>. Casi particolari:<\/p>\n<table>\n<thead>\n<tr>\n<th>Situazione<\/th>\n<th>Cosa succede<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>lingua principale del negozio non in tabella<\/td>\n<td>testi principali dalla lingua di default del gestionale, con un avviso<\/td>\n<\/tr>\n<tr>\n<td>lingua della tabella non attivata sul negozio<\/td>\n<td>traduzioni non inviate, con l&#8217;avviso <em>&#8220;Lingua &#8216;\u2026&#8217; non attivata sul negozio (Impostazioni, Lingue): traduzioni non inviate. Dopo averla attivata usare &#8216;Pubblica tutti'&#8221;<\/em><\/td>\n<\/tr>\n<tr>\n<td>lingua attivata ma non pubblicata<\/td>\n<td>traduzioni inviate; i clienti le vedono quando la lingua viene pubblicata<\/td>\n<\/tr>\n<tr>\n<td>lingue del negozio non leggibili (mancano gli scope)<\/td>\n<td>si pubblica come senza tabella: testi principali dalla lingua di default, nessuna traduzione; gli articoli restano da reinviare al giro successivo<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote><p>Una riga nuova nella tabella <em>Lingue<\/em> fa risultare modificati tutti gli articoli, e <em>Pubblica modificati<\/em> li reinvia. Se invece la riga c&#8217;era gi\u00e0 e la lingua \u00e8 stata attivata su Shopify solo dopo, lancia <strong>Pubblica tutti<\/strong>: per il gestionale gli articoli non sono cambiati.<\/p><\/blockquote>\n<blockquote><p>\u26a0\ufe0f <strong>Se cambi la lingua principale del negozio su Shopify, lancia <em>Pubblica tutti<\/em>.<\/strong> Finch\u00e9 non lo fai, i prodotti gi\u00e0 pubblicati hanno i testi principali nella lingua precedente.<\/p><\/blockquote>\n<p>Nel <strong>primo allineamento<\/strong>, se la lingua principale del negozio \u00e8 nella tabella, titolo, descrizione e tag dei prodotti Shopify vanno nella descrizione web di quella lingua. La descrizione dell&#8217;articolo si prende comunque dal titolo di Shopify. Le traduzioni presenti su Shopify non si importano.<\/p>\n<hr \/>\n<h2>9. Giacenze<\/h2>\n<p>La quantit\u00e0 inviata per ogni variante \u00e8 la somma, sui depositi del sito, di <strong>esistenza meno impegnato clienti<\/strong>, meno la scorta di sicurezza, arrotondata all&#8217;intero e mai negativa. Il riservato non si sottrae.<\/p>\n<ul>\n<li>Si inviano solo le varianti gi\u00e0 pubblicate, e solo quelle che su Shopify hanno una quantit\u00e0 diversa.<\/li>\n<li>Gli articoli <strong>senza gestione giacenza<\/strong> non si inviano.<\/li>\n<li>Se nel frattempo \u00e8 arrivato un ordine e Shopify ha cambiato la quantit\u00e0, il gestionale rilegge e riprova.<\/li>\n<\/ul>\n<p><strong>In automatico.<\/strong> Ogni documento che muove il magazzino su un deposito del sito mette in <strong>coda<\/strong> le varianti pubblicate che cambiano: salvataggio o cancellazione da maschera, POS, Web API, trasferimenti, rettifiche d&#8217;inventario. La coda si svuota con la procedura schedulata, subito dopo l&#8217;import degli ordini, oppure con <strong>Invia giacenze in coda<\/strong>.<\/p>\n<p>Non passano dalla coda:<\/p>\n<ul>\n<li>l&#8217;azzeramento dei saldi;<\/li>\n<li>la modifica manuale dei saldi;<\/li>\n<li>la ricostruzione dei movimenti;<\/li>\n<li>il cambio codice e la cancellazione degli articoli;<\/li>\n<li>le conversioni dati.<\/li>\n<\/ul>\n<p>Dopo una di queste operazioni usa <strong>Invia tutte le giacenze<\/strong>, a negozio fermo.<\/p>\n<hr \/>\n<h2>10. Import degli ordini e dei clienti<\/h2>\n<p>Ogni ordine Shopify diventa un <strong>ordine cliente<\/strong> con:<\/p>\n<table>\n<thead>\n<tr>\n<th>Nel gestionale<\/th>\n<th>Da Shopify<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Numero, serie, esercizio<\/td>\n<td>numero dell&#8217;ordine, serie del sito, anno della data dell&#8217;ordine<\/td>\n<\/tr>\n<tr>\n<td>Riferimento cliente<\/td>\n<td>nome dell&#8217;ordine (<code>#1001<\/code>)<\/td>\n<\/tr>\n<tr>\n<td>Cliente<\/td>\n<td>vedi sotto<\/td>\n<\/tr>\n<tr>\n<td>Righe<\/td>\n<td>articolo e variante dallo SKU; quantit\u00e0 attuali; prezzi e sconti<\/td>\n<\/tr>\n<tr>\n<td>Spese<\/td>\n<td>spedizione sulla spesa del sito, al netto degli sconti di spedizione<\/td>\n<\/tr>\n<tr>\n<td>Destinazione<\/td>\n<td>indirizzo di spedizione, se diverso da quello di fatturazione; viene aggiunto anche fra le destinazioni del cliente<\/td>\n<\/tr>\n<tr>\n<td>Pagamento<\/td>\n<td>transcodifica, poi pagamento predefinito, poi pagamento del cliente<\/td>\n<\/tr>\n<tr>\n<td>Stato<\/td>\n<td>transcodifica dello stato del pagamento<\/td>\n<\/tr>\n<tr>\n<td>Confermato<\/td>\n<td>s\u00ec, se l&#8217;ordine \u00e8 pagato<\/td>\n<\/tr>\n<tr>\n<td>Note interne<\/td>\n<td>numero Shopify, metodo di pagamento (<em>Pagamento Shopify: \u2026<\/em>), nota e attributi del checkout, riepilogo degli sconti con i codici usati<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Sconti.<\/strong><\/p>\n<ul>\n<li>Uno sconto sull&#8217;intero ordine va in testata: in percentuale se su Shopify \u00e8 uno solo in percentuale, altrimenti a valore.<\/li>\n<li>Uno sconto di riga in percentuale va nello sconto della riga; quello a valore, o pi\u00f9 sconti sulla stessa riga, vanno nel prezzo netto.<\/li>\n<li>Lo sconto previsto dal codice di pagamento non si applica agli ordini Shopify.<\/li>\n<\/ul>\n<p><strong>Controllo del totale.<\/strong> Se il totale del gestionale differisce da quello di Shopify di pi\u00f9 di un centesimo, l&#8217;ordine entra comunque. La differenza viene scritta nelle note interne e l&#8217;ordine prende lo stato dell&#8217;ultima riga della transcodifica stati (<em>da verificare<\/em>).<\/p>\n<p><strong>Clienti.<\/strong> Il cliente si cerca, nell&#8217;ordine, per collegamento, per codice d&#8217;import, per email. Se non esiste viene creato con:<\/p>\n<ul>\n<li>codice = prefisso + progressivo;<\/li>\n<li>persona fisica, se mancano ragione sociale e partita IVA;<\/li>\n<li>codice fiscale o partita IVA dai campi fiscali del checkout (11 cifre = partita IVA);<\/li>\n<li>PEC dal campo fiscale del checkout;<\/li>\n<li>SDI dall&#8217;attributo indicato nel sito; <code>0000000<\/code> per i clienti italiani nuovi senza SDI;<\/li>\n<li>sottoconto, categoria e pagamento dal sito.<\/li>\n<\/ul>\n<p>Di un cliente esistente si completano <strong>solo i campi vuoti<\/strong>: i dati gi\u00e0 presenti, in particolare quelli fiscali, non vengono sovrascritti.<\/p>\n<p><strong>Ordini che non entrano.<\/strong> Un ordine con un errore non viene importato e resta <strong>in coda<\/strong>. Viene ritentato a ogni giro, per al massimo 20 volte. I casi tipici:<\/p>\n<ul>\n<li>una riga senza SKU, o con uno SKU che non corrisponde a nessun articolo (tipicamente un prodotto creato su Shopify e non nel gestionale): crea o correggi l&#8217;articolo, oppure correggi lo SKU su Shopify;<\/li>\n<li>un&#8217;aliquota senza transcodifica;<\/li>\n<li>il numero gi\u00e0 usato nella serie.<\/li>\n<\/ul>\n<p>Il motivo si legge nel log, scheda <em>Code<\/em>.<\/p>\n<p><strong>Ordini modificati su Shopify.<\/strong> Un ordine non ancora evaso n\u00e9 fatturato viene <strong>sostituito<\/strong> con la versione aggiornata. Un ordine gi\u00e0 evaso o fatturato <strong>non si modifica pi\u00f9<\/strong>: la differenza resta segnalata nel log.<\/p>\n<p><strong>Ordini annullati su Shopify.<\/strong> Se l&#8217;ordine cliente non \u00e8 evaso n\u00e9 fatturato viene <strong>cancellato<\/strong>. Altrimenti resta e l&#8217;annullamento \u00e8 segnalato nel log.<\/p>\n<hr \/>\n<h2>11. Evasioni e tracking<\/h2>\n<p>Quando evadi un ordine Shopify con un <strong>DDT<\/strong> o una <strong>fattura<\/strong>, anche in pi\u00f9 volte e per righe parziali, <em>Invia evasioni<\/em> segna come spedite su Shopify le righe corrispondenti. Una fattura fatta direttamente dall&#8217;ordine evade tutto il residuo.<\/p>\n<ul>\n<li>Si considerano i documenti con data da <em>Ordini dal<\/em>. <em>Invia evasione ordine&#8230;<\/em> lavora su un solo ordine, senza limite di data.<\/li>\n<li>Le righe aggiunte nel gestionale, che su Shopify non esistono, vengono ignorate. Le quantit\u00e0 sono arrotondate all&#8217;intero.<\/li>\n<li>Le spedizioni gi\u00e0 fatte a mano su Shopify non vengono raddoppiate.<\/li>\n<li>Un documento gi\u00e0 inviato non si reinvia. Se nel frattempo \u00e8 cambiato il tracking, viene aggiornato su Shopify.<\/li>\n<\/ul>\n<p><strong>Corriere e tracking.<\/strong><\/p>\n<ul>\n<li><strong>Numero di tracking<\/strong>: campo <strong>N. Tracking<\/strong> nella scheda dei vettori del documento. Vale il primo vettore del documento che ha un numero.<\/li>\n<li><strong>Nome corriere<\/strong> e <strong>URL di tracciamento<\/strong>: nell&#8217;anagrafica <strong>Vettori<\/strong>, scheda <strong>Tracciamento<\/strong> (<em>Archivi \u2192 Tabelle \u2192 Trasporto \u2192 Vettori<\/em>).\n<ul>\n<li>Il nome va scritto come lo riconosce Shopify (BRT, GLS, Poste Italiane, SDA, DHL Express, UPS\u2026); se \u00e8 vuoto si usa il nome del vettore.<\/li>\n<li>L&#8217;URL \u00e8 l&#8217;indirizzo della pagina di tracciamento con <code>{tracking}<\/code> al posto del numero, per esempio <code>https:\/\/www.corriere.it\/tracking?numero={tracking}<\/code>. Se \u00e8 vuoto e il corriere \u00e8 noto a Shopify, il link lo genera Shopify.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Un documento senza tracking si pu\u00f2 inviare subito con il solo corriere. Il numero, aggiunto dopo, parte con il successivo <em>Invia evasioni<\/em>.<\/p>\n<p>L&#8217;email di spedizione al cliente parte se \u00e8 attiva l&#8217;opzione <em>Alla spedizione Shopify avvisa il cliente via email<\/em>.<\/p>\n<hr \/>\n<h2>12. Rimborsi<\/h2>\n<p>Un rimborso fatto su Shopify:<\/p>\n<ul>\n<li>su un ordine <strong>non ancora evaso n\u00e9 fatturato<\/strong>: l&#8217;ordine viene reimportato con le quantit\u00e0 correnti e lo stato della transcodifica (<em>Rimborsato<\/em>, <em>Rimborsato in parte<\/em>);<\/li>\n<li>su un ordine <strong>gi\u00e0 evaso o fatturato<\/strong>: l&#8217;ordine non si tocca. Il gestionale:\n<ul>\n<li>scrive un <strong>avviso<\/strong> nel log e nel riquadro di avanzamento, per esempio <em>&#8220;Ordine #1002 gia&#8217; evaso o fatturato: rimborsato su Shopify il 26\/09\/2026 per 25,50 EUR: valutare nota di credito o reso nel gestionale&#8221;<\/em>, con il dettaglio delle righe rimborsate (e se la merce \u00e8 stata rimessa a magazzino su Shopify) e la nota del rimborso;<\/li>\n<li>aggiunge una riga alle <strong>note interne<\/strong> dell&#8217;ordine cliente;<\/li>\n<li>conta il rimborso nell&#8217;esito (<em>rimborsi da gestire<\/em>).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Ogni rimborso si segnala una sola volta. <strong>Nessun documento viene creato in automatico<\/strong>: la nota di credito o il reso si fanno a mano.<\/p>\n<hr \/>\n<h2>13. La procedura schedulata<\/h2>\n<p>In automatico gira una sola procedura, <strong>Import ordini Shopify e invio giacenze<\/strong>, che importa gli ordini e poi invia le giacenze in coda. Si configura in <strong>Utilit\u00e0 \u2192 Amministrazione \u2192 Schedulatore<\/strong> con:<\/p>\n<ul>\n<li>classe <code>it.dao.atlantis.shopify.schedule.ShSchOrdini<\/code>;<\/li>\n<li>parametro: il <strong>codice del sito<\/strong>;<\/li>\n<li>un intervallo breve, per esempio ogni 5 o 10 minuti;<\/li>\n<li>le notifiche (popup o email) per ricevere l&#8217;esito quando ci sono ordini importati, errori, ordini da verificare o rimborsi.<\/li>\n<\/ul>\n<blockquote><p>\u26a0\ufe0f <strong>Lo scheduler gira dentro il programma dell&#8217;utente schedulatore.<\/strong> Se su quella postazione Atlantis \u00e8 chiuso, gli ordini non si importano e le giacenze non si inviano.<\/p><\/blockquote>\n<p>Non esiste una procedura schedulata delle sole giacenze, per scelta: inviarle senza aver importato prima gli ordini rimetterebbe in vendita la merce appena venduta. La pubblicazione dei prodotti e l&#8217;invio delle evasioni restano manuali.<\/p>\n<hr \/>\n<h2>14. Il semaforo<\/h2>\n<p>Due sincronizzazioni contemporanee dello stesso sito, per esempio dallo scheduler e da un&#8217;altra postazione, potrebbero importare due volte un ordine o inviare giacenze sbagliate. Per questo ogni operazione di <em>Gestione sito<\/em> e dello scheduler prende un <strong>semaforo<\/strong> del sito. La pubblicazione dei prodotti non lo prende.<\/p>\n<ul>\n<li>Se il semaforo \u00e8 gi\u00e0 preso compare <em>&#8220;E&#8217; in corso un&#8217;altra sincronizzazione del sito (scheduler o altra postazione): riprovare fra poco&#8221;<\/em>.<\/li>\n<li>La riga <strong>Semaforo<\/strong> della scheda <em>Utilit\u00e0<\/em> mostra se \u00e8 libero, oppure chi lo tiene, da quando e quando si libera.<\/li>\n<li>Il semaforo si libera da solo dopo <strong>30 minuti<\/strong>. Le operazioni lunghe lo rinnovano mentre lavorano.<\/li>\n<li><strong>Sblocca<\/strong> lo toglie a mano, dopo una conferma. Serve quando una postazione \u00e8 stata chiusa durante un invio. Usalo solo se sei certo che nessuna sincronizzazione sia davvero in corso. Lo sblocco resta nel log.<\/li>\n<\/ul>\n<hr \/>\n<h2>15. Log sincronizzazioni<\/h2>\n<p>Si apre dal menu, dal pulsante <strong>Log&#8230;<\/strong> di <em>Gestione sito<\/em> o con un clic sulle righe delle code. Il pulsante di aggiornamento nella barra rilegge log e code con i filtri impostati.<\/p>\n<h3>Scheda &#8220;Log&#8221;<\/h3>\n<ul>\n<li>Filtri <strong>Dal<\/strong> (proposto: una settimana fa), <strong>Al<\/strong>, <strong>Flusso<\/strong>, <strong>Esito<\/strong>, <strong>Testo<\/strong>.\n<ul>\n<li>Flussi: <em>CONNESSIONE<\/em>, <em>PRODOTTI<\/em>, <em>GIACENZE<\/em>, <em>ORDINI<\/em>, <em>EVASIONI<\/em>, <em>ALLINEAMENTO<\/em>.<\/li>\n<li>Esiti: <em>OK<\/em>, <em>AVVISO<\/em>, <em>ERRORE<\/em>.<\/li>\n<li>Il testo si cerca nel messaggio, nel riferimento e nell&#8217;identificativo Shopify.<\/li>\n<\/ul>\n<\/li>\n<li>L&#8217;elenco mostra le righe pi\u00f9 recenti per prime, al massimo 5000.<\/li>\n<li>Selezionando una riga, sotto compare il <strong>dettaglio completo<\/strong>. Per un ordine importato il dettaglio riporta, riga per riga, articolo, importo, aliquota e IVA di Shopify e codice IVA scelto: \u00e8 il primo posto dove guardare quando l&#8217;IVA di un ordine non torna.<\/li>\n<li><strong>Elimina piu&#8217; vecchi di&#8230;<\/strong> cancella le righe del sito anteriori alla data indicata (proposta: tre mesi fa), dopo aver mostrato quante sono.<\/li>\n<\/ul>\n<h3>Scheda &#8220;Code&#8221;<\/h3>\n<p>Gli <strong>ordini non importati<\/strong> e le <strong>giacenze non inviate<\/strong>, con il motivo dell&#8217;ultimo errore.<\/p>\n<ul>\n<li>La colonna <strong>Esaurito<\/strong> indica gli elementi che hanno raggiunto il numero massimo di tentativi (10 per le giacenze, 20 per gli ordini) e che non si ritentano pi\u00f9 da soli.<\/li>\n<li><strong>Ritenta<\/strong> azzera i tentativi. <strong>Togli dalla coda<\/strong> elimina l&#8217;elemento. Funzionano anche su pi\u00f9 righe selezionate.<\/li>\n<\/ul>\n<blockquote><p>Un ordine tolto dalla coda non viene pi\u00f9 importato: si recupera con <strong>Reimporta ordine<\/strong> da <em>Gestione sito<\/em>.<\/p><\/blockquote>\n<hr \/>\n<h2>16. Promemoria<\/h2>\n<ul>\n<li><strong>Gli scope dell&#8217;app vanno concessi tutti<\/strong>, e dopo ogni aggiunta bisogna rilasciare una nuova versione. Se gli ordini non si importano con <code>ACCESS_DENIED<\/code>, manca l&#8217;accesso ai <strong>dati protetti dei clienti<\/strong> nel portale Partners.<\/li>\n<li><strong>Mai pubblicare o inviare giacenze prima del primo allineamento<\/strong> su un negozio che ha gi\u00e0 dei prodotti, e mai spuntare a mano <em>Primo allineamento eseguito<\/em> in quel caso.<\/li>\n<li><strong>Dopo il primo allineamento vince il gestionale<\/strong>: controlla codice IVA, prezzi e giacenze degli articoli prima di <em>Pubblica tutti<\/em>.<\/li>\n<li><strong>La serie degli ordini Shopify \u00e8 riservata<\/strong>: non inserirci ordini a mano.<\/li>\n<li><strong>Ogni aliquota ridotta vuole la sua eccezione IVA su Shopify<\/strong>, sulla collezione manuale <code>IVA n%<\/code>. Senza, l&#8217;ordine entra al 22%.<\/li>\n<li><strong>Invia tutte le giacenze<\/strong> solo a negozio fermo o subito dopo <em>Importa ordini<\/em>. Nell&#8217;uso normale bastano lo scheduler e la coda.<\/li>\n<li><strong>Negozio con lingua principale diversa dall&#8217;italiano<\/strong> (per esempio tutto in inglese): metti anche la lingua principale nella tabella <em>Lingue<\/em>, altrimenti i testi principali restano in italiano. Taglie e colori vanno scritti nella lingua del negozio.<\/li>\n<li><strong>Dopo aver attivato una lingua o cambiato la lingua principale sul negozio lancia Pubblica tutti.<\/strong><\/li>\n<li><strong>Un prodotto attivo senza canale di vendita non si vede<\/strong>: controlla l&#8217;opzione <em>Canali di vendita dei prodotti nuovi<\/em> e lo scope <code>write_publications<\/code>.<\/li>\n<li><strong>Salvare un articolo non lo pubblica<\/strong>: dopo modifiche a prezzi, descrizioni o immagini lancia <em>Pubblica modificati<\/em>.<\/li>\n<li><strong>Un ordine evaso o fatturato non viene pi\u00f9 aggiornato<\/strong>: modifiche, annullamenti e rimborsi successivi compaiono nel log e vanno gestiti a mano.<\/li>\n<li><strong>Lo scheduler gira solo mentre Atlantis \u00e8 aperto<\/strong> sulla postazione dell&#8217;utente schedulatore.<\/li>\n<li><strong>Quando un ordine &#8220;non \u00e8 entrato&#8221;<\/strong>, guarda la scheda <em>Code<\/em> del log: nove volte su dieci \u00e8 uno SKU senza articolo o un&#8217;aliquota senza transcodifica.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<aside class=\"modulo-atlantis\"><p>Funzione inclusa in <a href=\"https:\/\/www.atlantisevo.com\/prodotti\/integrazione-shopify\/\">Modulo Integrazione Shopify<\/a> di Atlantis Evo.<\/p><\/aside>\n<p>&nbsp;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1468,"menu_order":0,"template":"","manualdocumentationcategory":[55],"manual_doc_tag":[],"_links":{"self":[{"href":"https:\/\/www.atlantisevo.com\/doc\/wp-json\/wp\/v2\/manual_documentation\/6761"}],"collection":[{"href":"https:\/\/www.atlantisevo.com\/doc\/wp-json\/wp\/v2\/manual_documentation"}],"about":[{"href":"https:\/\/www.atlantisevo.com\/doc\/wp-json\/wp\/v2\/types\/manual_documentation"}],"author":[{"embeddable":true,"href":"https:\/\/www.atlantisevo.com\/doc\/wp-json\/wp\/v2\/users\/1"}],"version-history":[{"count":24,"href":"https:\/\/www.atlantisevo.com\/doc\/wp-json\/wp\/v2\/manual_documentation\/6761\/revisions"}],"predecessor-version":[{"id":6797,"href":"https:\/\/www.atlantisevo.com\/doc\/wp-json\/wp\/v2\/manual_documentation\/6761\/revisions\/6797"}],"up":[{"embeddable":true,"href":"https:\/\/www.atlantisevo.com\/doc\/wp-json\/wp\/v2\/manual_documentation\/1468"}],"wp:attachment":[{"href":"https:\/\/www.atlantisevo.com\/doc\/wp-json\/wp\/v2\/media?parent=6761"}],"wp:term":[{"taxonomy":"manualdocumentationcategory","embeddable":true,"href":"https:\/\/www.atlantisevo.com\/doc\/wp-json\/wp\/v2\/manualdocumentationcategory?post=6761"},{"taxonomy":"manual_doc_tag","embeddable":true,"href":"https:\/\/www.atlantisevo.com\/doc\/wp-json\/wp\/v2\/manual_doc_tag?post=6761"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}