Tutto quello che vorresti sapere prima di installare.
Uno sguardo dettagliato su come funziona Contatore Carrelli per Shopware 6: riprova sociale «In più di 20 carrelli» sulla scheda prodotto, perché l'abbiamo progettato così, e il ragionamento dietro le funzionalità qui sopra.
Perché questo modulo non esiste nativamente su Shopware
Su PrestaShop, contare i carrelli che contengono un prodotto si fa con una join sulla tabella delle righe di carrello. Su Shopware quella tabella non esiste: l'intero carrello viene serializzato in una colonna payload della tabella cart, spesso compressa. Una query SQL non può quindi sapere cosa contiene un carrello senza deserializzarlo, e deserializzare diverse migliaia di carrelli a ogni visualizzazione di scheda prodotto è fuori discussione. È questo il motivo per cui questo tipo di riprova sociale è diffuso su PrestaShop e raro su Shopware.
La soluzione: un indice alimentato dagli eventi
Il plugin crea una tabella df_cart_popularity che associa token del carrello, identificativo prodotto, canale di vendita, quantità e indicatore di ordine. L'indice viene aggiornato a ogni persistenza del carrello tramite CartSavedEvent: prodotti aggiunti, quantità modificate, righe rimosse, tutto viene sincronizzato in due query. Il conteggio diventa allora un semplice COUNT DISTINCT su un indice composito, eseguito una volta per durata di cache e per prodotto. Il costo aggiuntivo lato carrello è di circa due query indicizzate per modifica, invisibile in un profilo prestazionale.
Due modi di mostrare il numero
La modalità fascia arrotonda il contatore per difetto secondo il passo definito, per un effetto «In più di 20 carrelli» che resta credibile e avanza per scaglioni. La modalità esatta mostra la cifra reale per i negozi che preferiscono la trasparenza totale, con una variante al singolare gestita automaticamente. Le tre formulazioni risiedono negli snippet di Shopware e si modificano per lingua dall'amministrazione, senza toccare il codice e con un segnaposto dinamico per il numero.
Un conteggio onesto e configurabile
La finestra temporale limita il conteggio ai carrelli aggiornati di recente, evitando di accumulare carrelli fantasma vecchi di mesi. L'opzione solo carrelli attivi esclude quelli già trasformati in ordine, rilevati tramite CartConvertedEvent. La limitazione per canale di vendita impedisce che un picco sul negozio tedesco gonfi il contatore di quello francese. Ognuna di queste opzioni si sovrascrive canale per canale dalla configurazione del plugin.
Compatibilità da 6.5 a 6.7 senza compromessi
Il template estende solo il blocco esterno del buy widget e richiama il suo parent, il che lo rende immune alle rinominazioni dei blocchi interni avvenute tra 6.5 e 6.7 e compatibile con i temi che personalizzano il blocco di acquisto. La pulizia di conservazione funziona senza attività pianificata né coda di messaggi, perché la firma del gestore delle attività è cambiata tra 6.5 e 6.6: viene eseguita al massimo una volta all'ora, oppure su richiesta con il comando CLI. La struct di visualizzazione è agganciata sia all'entità prodotto sia alla pagina, il che copre il rendering tramite l'elemento Buy box delle Shopping Experiences e la vista rapida.
Standard DataFirefly
Plugin sviluppato senza dipendenza Composer, rendering lato server, nessuna libreria JavaScript esterna, nessuna chiamata di rete in uscita. Una sola tabella creata, eliminata alla disinstallazione quando scegliete di non conservare i dati. Nessun dato personale registrato: l'indice contiene solo il token di carrello pseudonimo e il riferimento prodotto, con conservazione configurabile. Codice sorgente PHP e Twig non offuscato, licenza perpetua, 12 mesi di aggiornamenti inclusi.
Ancora non ci sono recensioni.