
Google Merchant Center nasce per il retail al dettaglio, non per il B2B a peso variabile. Con la configurazione giusta del prezzo unitario, del valore minimo d’ordine e una sincronizzazione automatica dello stock da AppSheet, una OP può usare Google Shopping come canale di generazione lead per buyer ed esportatori, senza violare le regole della piattaforma.
Nell’era del commercio digitale B2B, l’acquisizione di buyer ed esportatori ortofrutticoli richiede canali di visibilità diretta ed efficiente. Google Merchant Center rappresenta una vetrina impareggiabile, ma le sue rigide regole nate per il B2C retail si scontrano con le complessità delle vendite in bulk, dei listini dinamici e dei lotti a peso variabile. Questa guida spiega come configurare correttamente i feed di prodotto, mappare le misure unitarie e sincronizzare in tempo reale lo stock delle celle frigo tramite AppSheet, trasformando un feed commerciale in uno straordinario motore di generazione lead per la tua OP.
Google Merchant Center non è stato pensato per te, ma puoi comunque usarlo bene
Google Merchant Center è la piattaforma che alimenta gli annunci Shopping e le schede prodotto gratuite di Google. È stata progettata per un negozio online che vende un paio di scarpe a un prezzo fisso a un consumatore finale — non per un’OP che vende un cassone di 25 kg di patate novelle a un prezzo che dipende dal lotto minimo d’acquisto. Questo scarto tra come funziona la piattaforma e come lavora davvero la tua filiera è il primo ostacolo da capire, non da aggirare a caso.
Il primo requisito che spesso passa inosservato è il prezzo unitario. Per determinati prodotti venduti a peso, volume, lunghezza o area — e l’ortofrutta rientra pienamente in questa categoria — Google richiede l’attributo che mostra il prezzo per kg o per litro in Unione Europea, Regno Unito e paesi EFTA 🟢. Non è un dettaglio estetico: se non lo configuri, il prodotto viene disapprovato.
Come si compila davvero il prezzo unitario
L’attributo si chiama unit_pricing_measure, e il suo compito è dire a Google “quanto prodotto sto vendendo a questo prezzo”. Il formato richiesto è un numero positivo seguito da un’unità di misura riconosciuta — kg, g, ml, l, ct — per esempio 25kg per un sacco di patate o 1.5kg per una cassetta di pomodori 🟢.
Un punto operativo da tenere a mente, anche se non è scritto esplicitamente su questa pagina Google: il peso che dichiari dovrebbe riferirsi al prodotto netto, non al peso lordo comprensivo di imballaggio — è una buona pratica logistica generale, non un requisito testuale di questa specifica pagina di supporto, ma resta comunque quello che ti eviterà contestazioni se un buyer pesa realmente il collo ricevuto.
Accanto a unit_pricing_measure va l’attributo unit_pricing_base_measure, che è il denominatore del confronto — tipicamente 1kg. Insieme, i due attributi permettono a Google di calcolare e mostrare il prezzo di confronto: se il tuo sacco da 25 kg costa 37,50 €, il prezzo unitario visualizzato sarà 1,50 €/kg. È lo stesso principio dello scontrino del supermercato che mostra sia il prezzo della confezione sia il prezzo al kg — solo che qui il “supermercato” sei tu, e il “consumatore” è un buyer che confronta la tua offerta con quella di un concorrente.
Il problema che Google non ha mai risolto: gli ordini minimi
Google Merchant Center non ha un attributo nativo per gestire sconti a scaglioni di volume o listini a più livelli tipici del B2B 🟠. Non esiste un campo dove dichiari “10€/kg sotto i 100kg, 8€/kg sopra i 100kg”. La prassi consolidata tra chi vende B2B su questa piattaforma è più semplice di quanto sembri: invii nel campo prezzo il valore calcolato sulla quantità minima d’acquisto (MOQ), non un prezzo unitario astratto.
$$P_{MOQ} = P_{unit} \cdot Q_{min}$$
Se il tuo prezzo unitario reale è di 1,50 €/kg e il tuo lotto minimo vendibile è un cassone da 25 kg, il prezzo che invii nel feed non è “1,50 €” ma 37,50 € — il prezzo dell’intero lotto minimo. Pensala come vendere una cassa di bottiglie invece di una bottiglia sfusa: il prezzo che mostri è quello della cassa, non quello che risulterebbe dividendo per il numero di bottiglie. La coerenza è tutto: se il feed dice 37,50 € per il lotto, la tua landing page deve mostrare esattamente lo stesso importo per lo stesso lotto, altrimenti Google segnala l’incongruenza e rischi la sospensione del prodotto.
Il valore minimo dell’ordine, e perché non è la stessa cosa del prezzo del lotto
C’è un secondo attributo, spesso confuso con il primo: minimum_order_value (MOV). Non riguarda il prezzo di un singolo prodotto, ma la spesa minima complessiva richiesta per poter completare un ordine sul tuo sito 🟢. Se un buyer vuole comprare un solo sacco da 25 kg ma il tuo sito richiede un ordine minimo complessivo di 150 €, questo è esattamente il tipo di informazione che il MOV comunica in anticipo — evitando che un cliente clicchi sul tuo annuncio, arrivi sul sito, e scopra solo al checkout di non poter completare l’acquisto.
È obbligatorio, non facoltativo, in UE, Regno Unito ed EFTA se il tuo sito applica una spesa minima per il ritiro in negozio o l’acquisto online 🟢. Configurarlo bene ti protegge da due problemi opposti: perdere clic pagati da chi non può comunque comprare, e ricevere segnalazioni di incoerenza da Google se il valore nel feed non corrisponde a quello reale sul sito.
Sincronizzare lo stock, non solo il prezzo
Un feed statico che dichiara “disponibile” un prodotto che in realtà è esaurito da tre giorni è il modo più veloce per far perdere fiducia a un buyer che clicca sull’annuncio e trova un modulo di contatto invece della merce. Il modo per evitarlo è collegare il feed direttamente al database che già usi per gestire il magazzino — nel tuo caso, AppSheet.
L’architettura è più semplice di quanto suoni: AppSheet scrive le variazioni di stock su un Google Sheet, che funge da database. Uno script (Google Apps Script) legge periodicamente quel foglio, rigenera il file XML nel formato richiesto da Google (RSS 2.0 o Atom), e lo ripubblica. Nessun intervento manuale, nessun file da caricare a mano ogni mattina 🟠.
Per capire quanto è “fresco” il tuo feed rispetto alla realtà del magazzino, puoi calcolare un indice di latenza:
$$L_{sync} = T_{feed_fetch} – T_{stock_update}$$
$T_{feed_fetch}$ è il momento in cui il crawler di Google scansiona il tuo feed, $T_{stock_update}$ è il momento dell’ultimo aggiornamento reale dello stock su AppSheet da parte di un operatore di banchina. La differenza tra i due è quanto tempo può passare, nel caso peggiore, tra un cambiamento reale in magazzino e il momento in cui Google lo vede. 🟠 Non esiste una soglia ufficiale imposta da Google su questo valore — mantenerlo sotto l’ora (3.600 secondi) è una raccomandazione operativa prudente, non un requisito documentato dalla piattaforma, pensata per ridurre il rischio di mostrare come disponibile un prodotto già esaurito.
Come impostare tutto senza lasciare buchi
Mappa il prezzo del lotto, non il prezzo al kg, nel campo principale. Il campo price del feed deve contenere il prezzo totale del lotto minimo vendibile (es. 37,50 € per 25 kg), non il prezzo unitario astratto — è il numero che userai anche per il calcolo $P_{MOQ}$.
Compila la coppia di attributi per il prezzo unitario insieme, non uno alla volta. unit_pricing_measure (la misura del tuo lotto, es. 25kg) e unit_pricing_base_measure (l’unità di riferimento, es. 1kg) vanno configurati insieme: solo così Google calcola e mostra il prezzo di confronto corretto.
Imposta il valore minimo dell’ordine allineato a quello reale del tuo sito. Che tu lo configuri a livello di spedizioni dell’account o tramite l’attributo dedicato, il valore deve corrispondere esattamente a quanto richiedi davvero al checkout — un disallineamento qui è una delle cause più comuni di sospensione.
Automatizza la sincronizzazione, non fidarti dell’aggiornamento manuale. Un trigger che rigenera il feed a ogni variazione di stock registrata su AppSheet, invece che una volta al giorno “quando qualcuno se ne ricorda”, è quello che tiene bassa la latenza di sincronizzazione e riduce il rischio di mostrare merce esaurita come disponibile.
Verifica che la landing page racconti esattamente la stessa storia del feed. Prima di pubblicare, controlla che un utente non loggato veda, sulla pagina di atterraggio, lo stesso prezzo del lotto e lo stesso prezzo unitario che hai inviato a Google, IVA inclusa secondo le norme del paese di destinazione — è il test più semplice ed efficace per evitare una disapprovazione.
Come strutturare i dati del prodotto per i motori di ricerca
Oltre al feed Merchant Center, vale la pena marcare la pagina prodotto con dati strutturati Schema.org coerenti con la logica B2B a peso variabile — prezzo del lotto minimo, misura unitaria, politica di reso specifica per merce deperibile. Un esempio applicato a un lotto di patate novelle:
<script type=”application/ld+json”>
{
“@context”: “https://schema.org”,
“@type”: “Product”,
“name”: “Lotto Patate Novelle d’Abruzzo B2B”,
“description”: “Lotto di patate novelle d’Abruzzo in sacchi da 25 kg per ingrosso, distributori e GDO.”,
“sku”: “PAT-NOV-ABR-25K”,
“offers”: {
“@type”: “Offer”,
“price”: “37.50”,
“priceCurrency”: “EUR”,
“availability”: “https://schema.org/InStock”,
“priceSpecification”: {
“@type”: “UnitPriceSpecification”,
“price”: “37.50”,
“priceCurrency”: “EUR”,
“unitText”: “Sacco da 25kg”
},
“hasMerchantReturnPolicy”: {
“@type”: “MerchantReturnPolicy”,
“returnPolicyCategory”: “https://schema.org/MerchantReturnNotPermitted”,
“applicableCountry”: “IT”
}
}
}
</script>
Nota la politica di reso impostata su “non consentito”: per merce fresca e deperibile, dichiararlo esplicitamente evita ambiguità sia con Google sia con il buyer.
Lo strumento che chiude il cerchio
Configurare un feed Merchant Center per il B2B ortofrutticolo è un lavoro che si fa una volta bene, non ogni settimana da capo — ma solo se lo stock che alimenta quel feed è collegato al tuo sistema di gestione reale, non a un file Excel aggiornato a mano. Un flusso che parte da AppSheet e arriva fino al feed di Google, passando per un controllo di coerenza automatico, è quello che trasforma Google Shopping da vetrina statica a canale di generazione lead affidabile.
Se vuoi vedere come impostare un’integrazione di questo tipo per la tua attività, senza soluzioni enterprise e senza costi fuori scala, prenota una consulenza gratuita AppSheet con FreshLogic.
Fonti
Google Merchant Center — Attributo misura per il prezzo unitario [unit_pricing_measure]: https://support.google.com/merchants/answer/6324455?hl=it
Google Merchant Center — Attributo valore minimo dell’ordine [minimum_order_value]: https://support.google.com/merchants/answer/16989009?hl=it
FreshLogic — AppSheet e tracciabilità dei lotti nel magazzino ortofrutticolo
FreshLogic — Rotazione FIFO in ortofrutta con AppSheet e QR-code
FreshLogic — Listino prezzi dinamico BMTI nel magazzino ortofrutticolo
FAQ
Perché in Unione Europea, Regno Unito e paesi EFTA la normativa locale richiede che determinati prodotti venduti a peso o volume mostrino il prezzo per unità di misura standard (es. al kg), e Google impone questo attributo per conformarsi a quelle regole.
Inviando nel campo prezzo il valore calcolato sulla quantità minima d’acquisto (il prezzo dell’intero lotto minimo, non un prezzo unitario astratto), e assicurandosi che la landing page mostri esattamente lo stesso importo per coerenza con Google.
Il prezzo del lotto è quanto costa la singola unità vendibile (es. un sacco da 25 kg). Il valore minimo dell’ordine è la spesa complessiva minima richiesta per completare un acquisto sul sito, anche se composto da un solo prodotto — sono due concetti distinti che vanno configurati separatamente.
Un buyer può cliccare su un annuncio e trovare il prodotto esaurito, generando un’esperienza negativa e un clic pagato senza conversione. Sincronizzare il feed direttamente con il sistema di gestione del magazzino, invece di aggiornarlo manualmente, riduce drasticamente questo rischio.
Serve principalmente uno script di automazione configurato una volta (Google Apps Script) che legge le variazioni di stock e rigenera il feed XML. Una volta impostato correttamente, il flusso funziona senza interventi manuali quotidiani.
#DalBancaleAlDato

Lascia un commento