Vendi online
Il negozio prende l’ordine, il magazzino lo evade
L’ordine entra da PrestaShop, diventa un cliente e un ordine di vendita, viene instradato al deposito che ha davvero la merce, prelevato sul palmare e spedito con la sua bolla. La disponibilità torna in vetrina calcolata dal registro, non copiata da una schermata.
Ordini in entrata, catalogo, prezzi, immagini, clienti, giacenze, incassi e resi. Provato dal carrello alla spedizione su un negozio vero.
Con il modulo installato sul negozio, allineare tremila varianti passa da venticinque minuti a pochi secondi.
Al negozio va la giacenza meno le riserve attive, per i soli depositi che quel canale può vendere.
Ogni chiamata dal negozio porta la sua firma; senza firma valida non entra e non muove niente.
Chi vende online perde tempo in due punti soli, sempre gli stessi: gli ordini che arrivano e vanno ribattuti a mano, e la disponibilità pubblicata che non è quella vera — con la coda di telefonate che ne segue. CargoNode non aggiunge un cruscotto sopra il negozio: prende l’ordine e lo porta fino alla bolla, e rimanda indietro la giacenza meno le riserve, che è l’unico numero che si può promettere a un cliente. Il collegamento al negozio online fa parte del modulo Commerciale, insieme agli ordini, ai clienti e agli incassi.
Dall’ordine sul negozio alla bolla, senza ribattere niente
L’ordine non finisce in una tabella d’appoggio: diventa un cliente (trovato o creato) e un ordine di vendita vero, con le righe, l’IVA di riga e i costi accessori del negozio. Da lì passa dal magazzino come qualunque altro ordine — riserva, onda di prelievo, palmare, imballo, spedizione, documento di trasporto — e non ha un percorso privilegiato né uno di serie B. L’ingresso è idempotente sul riferimento del negozio: se lo stesso ordine arriva due volte, la seconda non crea niente. Gli ordini si cercano per connettore e non per come si chiamano, così due negozi sullo stesso account non si confondono.
- Cliente trovato o creato dall’ordine, con i dati fiscali che il negozio ha raccolto
- Ordine di vendita vero, con IVA di riga, sconto d’ordine e spedizione
- Idempotenza sul riferimento del negozio: un ordine ripetuto non si sdoppia
- Prelievo, imballo e spedizione sono quelli del magazzino, non un percorso separato
- Due negozi sullo stesso account restano separati per connettore
- Bolla numerata senza salti, per magazzino e per anno
- Il negozio consegna l’ordineFirmato, e con il riferimento del negozio attaccato: se lo stesso ordine arriva due volte, la seconda non crea niente.
- Diventa cliente e ordine di venditaIl cliente si trova o si crea; le righe portano l’IVA di riga, lo sconto d’ordine e i costi accessori del negozio.
- Viene instradatoAl deposito che ha davvero la merce, scelto fra quelli che quel canale può vendere.
- Riserva e onda di prelievoDa qui è un ordine come gli altri: entra nel giro del magazzino, non in un percorso separato.
- Imballo e spedizioneScansione articolo-collo al banco, spedizione anche multi-collo.
- Bolla e tracciamentoIl documento di trasporto esce numerato senza salti, per magazzino e per anno; il codice del corriere torna al negozio.
Quali ordini entrano, e quali entrano ma restano fermi
Gli stati del negozio rispondono a due domande diverse, e trattarle come una sola fa danni. La prima è se l’ordine entra. La seconda è se, entrato, va evaso subito. Un ordine in «errore di pagamento» deve entrare — vuoi vederlo, vuoi che il cliente esista — ma non deve impegnare la merce, perché impegnarla vuol dire toglierla dalla vendita per qualcosa che forse non si concluderà. Perciò gli stati si scelgono due volte: quelli che fanno entrare l’ordine, e il sottoinsieme che lo fa entrare trattenuto. Un ordine trattenuto non riserva, non prelevabile, non muove la disponibilità; quando il negozio cambia stato si sblocca da solo, e se il negozio non sa più niente di quell’ordine il giro te lo dice con il motivo invece di lasciarlo fermo in silenzio.
- Un elenco di stati decide cosa entra, un secondo decide cosa entra trattenuto
- Un ordine trattenuto non riserva merce e non abbassa la disponibilità pubblicata
- Lo sblocco arriva dal negozio, oppure da una rilettura in blocco degli ordini fermi
- Un ordine che il negozio non riconosce più viene segnalato con il suo motivo
- In Vendite si legge «in attesa dal negozio», che non è la stessa cosa di una bozza
- ENTRAPagamento accettatoriserva la merce, va in prelievo
- ENTRA FERMOBonifico in attesanessuna riserva: la merce resta vendibile
- ENTRA FERMOErrore di pagamentolo vedi, ma non impegna niente
- NON ENTRAAnnullatofuori dal primo elenco
Gli stati trattenuti sono un sottoinsieme di quelli che fanno entrare l’ordine: uno che non entra non può essere trattenuto. Quando il negozio cambia stato, l’ordine si sblocca da solo.
La disponibilità in vetrina si ricalcola a ogni riserva
Quello che pubblichi è la giacenza meno le riserve attive, calcolato al momento e limitato ai depositi e ai committenti che quel canale può davvero vendere — un magazzino in conto terzi o un deposito che non serve il web non gonfiano la vetrina. Non c’è un allineamento notturno che ricalcola tutto: quando una riserva nasce o muore, la variante interessata viene marcata e il giro successivo pubblica solo quelle, nel giro di un minuto. Se il negozio risponde male, il tentativo non si ripete all’infinito: c’è una memoria degli errori, l’attesa cresce tra un tentativo e l’altro, e un articolo che il negozio dichiara inesistente smette di essere ritentato e finisce in un elenco di righe bloccate, con il pulsante per rimetterle in coda quando l’hai sistemato.
- Disponibilità pubblicata = giacenza meno le riserve attive, sempre ricalcolata
- Ambito per canale: quali magazzini e quali committenti quel negozio può vendere
- Push mirato sulle sole varianti cambiate, non un allineamento notturno di tutto
- Attesa crescente sugli errori passeggeri, invece di ritentare a vuoto
- Articolo che il negozio non ha più: fallimento permanente, non un tentativo eterno
- Elenco delle righe bloccate con la via d’uscita, invece di una coda che si gonfia
- DISPONIBILE40 in giacenza − 12 riservati = 28solo i depositi che quel canale vende
- IN CODA12 varianti toccatenon l’intero catalogo
- RIPROVAIl negozio non rispondel’attesa cresce a ogni tentativo
- BLOCCATAArticolo che il negozio non ha piùnessun altro tentativo
Le righe bloccate finiscono in un elenco con il pulsante per rimetterle in coda: così la coda contiene solo lavoro che ha senso fare, invece di gonfiarsi di tentativi ciechi.
Il catalogo va nella direzione giusta
La vetrina segue il gestionale, mai il contrario: articoli, descrizioni, categorie, immagini e prezzi si pubblicano da CargoNode verso il negozio. I prezzi arrivano dal listino, non da un campo scritto due volte, e la vetrina ricorda cosa ha già ricevuto, così una ripubblicazione non riscrive tutto per niente. Non tutto quello che sta a catalogo deve andare online, e questa è una scelta esplicita per articolo invece di un effetto collaterale. Dove esiste un tributo di consumo che va sommato al prezzo, il calcolo resta di qua — con i suoi moltiplicatori e la sua aliquota datata — e al negozio arriva un importo già fatto, perché una seconda implementazione là sarebbe una seconda verità destinata a divergere dentro un registro di compliance.
- Articoli, descrizioni, categorie e immagini pubblicati dal gestionale
- Prezzi dal listino, con lo sconto di testata e le eccezioni di riga
- Scelta esplicita di cosa va in vetrina e cosa resta solo a magazzino
- La vetrina ricorda quello che ha già ricevuto: si ripubblica solo il cambiato
- I tributi di consumo si calcolano qui e arrivano al negozio già calcolati
- Il totale pagato dal cliente resta quello del negozio, anche quando il negozio arrotonda a modo suo
| Il dato | Nasce in | Arriva a |
|---|---|---|
| Articoli, descrizioni, categorie, immagini | CargoNode | il negozio |
| Prezzi | il listino di CargoNode | il negozio |
| Tributi di consumo | CargoNode, con i suoi moltiplicatori | il negozio, già calcolati |
| Disponibilità pubblicata | il registro dei movimenti | il negozio |
| Ordini | il negozio | CargoNode |
| Stato dell’ordine e tracciamento | CargoNode | il negozio |
| Totale pagato dal cliente | il negozio | resta del negozio |
La riga che il negozio conosce e tu no
Prima o poi arriva un ordine con dentro un articolo che nel gestionale non esiste: creato sul negozio e mai mappato, oppure una combinazione nuova. La reazione sbagliata è rifiutare l’ordine intero, perché il cliente ha pagato e la merce c’è quasi tutta. Qui salta la riga, non l’ordine: la riga finisce in un elenco di non mappate con quello che il negozio ne sa — codice, nome, quantità, prezzo — l’ordine resta in quarantena, e quando la mappatura c’è si rigioca. Non esiste il caso «ordine perso in silenzio», che è il modo in cui di solito ci si accorge di un problema di integrazione: dal cliente che chiama.
- Fallimento morbido per riga: l’ordine resta, la riga aspetta
- La riga non mappata conserva quello che il negozio ne sapeva
- Rimappa e rigioca, senza chiedere al cliente di riordinare
- Le mappature reggono le combinazioni e i negozi multipli
- Niente ordini persi senza che nessuno lo sappia
- RIGA 1SKU-4471 · 2 pezzimappata
- RIGA 2SKU-8890 · 1 pezzomappata
- RIGA 3PROMO-XMAS · 1 pezzonon mappata: codice, nome, quantità, prezzo
Salta la riga, non l’ordine. La terza aspetta una variante; quando gliela dai, l’ordine si rigioca intero e il cliente non si accorge di niente.
Incassi, resi e quello che torna indietro al negozio
Il flusso non è a senso unico. Quando l’ordine è pagato, quando parte, quando torna indietro, il negozio lo viene a sapere: stato dell’ordine, codice di tracciamento, conferme di presa in carico. Una spedizione parziale non chiude la pratica sul negozio — aggiorna il tracciamento e lascia lo stato dov’è — perché portare l’ordine a «spedito» col primo collo mentre metà della merce è ancora a scaffale è il modo più rapido di far scrivere un cliente. I rimborsi seguono la stessa strada: un reso rientra in magazzino come movimento e la nota di credito è un documento, non una riga cancellata.
- Stato dell’ordine e tracciamento riportati al negozio
- Spedizione parziale: si aggiorna il tracciamento senza dichiarare chiuso l’ordine
- Conferme di presa in carico verso il canale, per non ricevere due volte lo stesso ordine
- Incassi e rimborsi riconciliati sull’ordine, non su un foglio a parte
- Un codice generato da noi è marcato come interno e non si spaccia per un tracciamento del corriere
- PagatoL’incasso si riconcilia sull’ordine, non su un foglio a parte.
- Parte il primo colloIl tracciamento torna al negozio e lo stato dell’ordine resta aperto, perché lo è: metà della merce è ancora a scaffale.
- Parte l’ultimo colloSolo adesso l’ordine si chiude sul negozio.
- Torna indietroIl reso rientra in magazzino come movimento, e la nota di credito è un documento — non una riga cancellata.
Il modulo sul negozio, e cosa cambia davvero
Il collegamento funziona anche con il solo servizio web di PrestaShop, come lo fanno tutti: si interroga il negozio una risorsa per volta. Il problema di quel modo è aritmetico — allineare tremila varianti costa seimila chiamate e venticinque minuti, e in quei venticinque minuti la vetrina racconta un magazzino che non c’è più. Il modulo installato sul negozio cambia la natura del rapporto: il negozio parla per primo e accetta scritture in blocco, così le stesse tremila varianti si allineano in sette chiamate e l’ordine diventa una riserva subito invece che fino a dieci minuti dopo. Non tocca il nucleo di PrestaShop e non usa sovrascritture, e il carrello non aspetta mai il nostro backend: l’evento si scrive in coda dentro la transazione dell’ordine e la consegna avviene dopo la risposta al cliente. Un negozio che non vende perché siamo lenti sarebbe un danno più grande di qualunque ritardo.
- Funziona anche senza modulo, con il servizio web standard del negozio
- Con il modulo: allineamenti in blocco e riserva immediata invece che a intervalli
- Nessuna sovrascrittura del nucleo di PrestaShop, nessuna colonna aggiunta alle sue tabelle
- Il carrello non aspetta mai il nostro backend: la coda sta dentro la transazione dell’ordine
- Accoppiamento con un codice a tempo e chiamate firmate nei due sensi
- Un’autodiagnosi che misura il prezzo che il cliente vede, invece di confrontare numeri di versione
| Cosa cambia | Solo servizio web | Con il modulo |
|---|---|---|
| Allineare tremila varianti | 6.020 chiamate, venticinque minuti | 7 chiamate, pochi secondi |
| Chiamate in un giorno normale | circa 6.500 | circa 150 |
| Dall’ordine alla riserva | fino a dieci minuti | subito |
| Il carrello aspetta il nostro backend | mai | mai |
| Sovrascritture del nucleo di PrestaShop | nessuna | nessuna |
Domande frequenti
Usiamo Shopify (o WooCommerce). C’è il connettore?
L’adattatore costruito e collaudato dall’ordine alla spedizione è quello di PrestaShop, con un modulo installato sul negozio. L’impianto sotto però è generico e vale per qualunque canale — coda in uscita con deduplica, mappatura delle varianti, casella in entrata, webhook firmato, riprova con attesa crescente, righe non riconosciute messe da parte invece che perse — e su quello si innesta un negozio diverso: è lavoro di adattamento, non di fondazione. Raccontaci su cosa girate e guardiamo insieme cosa serve davvero.
Il negozio può vendere un pezzo che in magazzino non c’è più?
La finestra si stringe fin dove si può: la disponibilità pubblicata è calcolata sulle riserve attive e il push parte quando la riserva cambia, non a orari fissi. La finestra però non è zero, perché il negozio è un altro sistema. Quello che non succede è promettere merce già impegnata: se due ordini si contendono l’ultimo pezzo, il secondo non riceve una promessa impossibile — resta in attesa della merce in arrivo e viene allocato al primo carico utile, nell’ordine in cui è entrato in coda.
Se il vostro backend non risponde, il negozio smette di vendere?
No, ed è un vincolo di progetto del modulo: il carrello non aspetta mai una nostra risposta. L’evento si scrive in una coda dentro la transazione dell’ordine del negozio, e la consegna verso CargoNode avviene dopo che il cliente ha già ricevuto la sua pagina, con timeout di pochi secondi. Se non arriviamo, la coda si svuota dopo: nessun ordine va perso e nessun cliente resta fermo su una rotellina che gira.
Dobbiamo installare qualcosa sul negozio?
Non è obbligatorio. Senza modulo si lavora con il servizio web standard, e funziona: costa solo molte più chiamate e un ritardo fra l’ordine e la riserva. Con il modulo — PrestaShop 8.1 o successivo — le stesse operazioni diventano poche chiamate in blocco e la riserva è immediata. Il modulo non tocca il nucleo del negozio e si disinstalla come qualunque altro.
Chi comanda, il negozio o CargoNode?
CargoNode. È una decisione, non un caso: il catalogo, i prezzi e le giacenze si governano di qua e la vetrina li riceve. Il negozio resta il posto dove si vende e dove il cliente compra, e continua a essere l’origine degli ordini; ma se un dato è scritto in due posti, quello buono è quello del gestionale — altrimenti il primo disallineamento diventa una discussione su chi ha ragione.
Cosa succede a un ordine con dentro un articolo che non riconosciamo?
Entra lo stesso. La riga sconosciuta finisce in un elenco a parte con quello che il negozio ne sa — codice, nome, quantità, prezzo — e l’ordine resta in quarantena finché non le dai una variante. Poi si rigioca. È la differenza fra un problema che vedi in una schermata e un problema che scopri quando il cliente chiama per chiedere dov’è il suo pacco.
Proviamolo sul tuo negozio
Dicci che piattaforma usi, quanti ordini fai in un giorno normale e quanti nel giorno peggiore dell’anno. Ti mostriamo il giro completo — ordine, prelievo, spedizione, disponibilità che torna indietro — sui tuoi articoli.
Parliamone