I tuoi dati
Offerte
Prezzo d'offerta, prezzo barrato, inizio e fine, etichetta.
A che cosa serve nella conversazione
Quando un cliente chiede «che offerte avete?» o cerca un prodotto scontato, l'assistente mostra prima le offerte, in ordine di sconto, col prezzo barrato. Il carrello addebita il prezzo d'offerta solo fra l'inizio e la fine, nel fuso del tuo negozio: il giorno dopo la fine l'offerta sparisce da sola, senza un file nuovo.
Il file delle offerte tocca solo i campi dell'offerta dei prodotti che ci sono già: carica prima il catalogo. Un'offerta con quantità minima oltre 1 mostra la sua etichetta («Prendi 3, paghi 2») e non cambia il prezzo.
Cliente: Avete offerte sulla pasta?
Assistente: Sì, questa settimana: • Pasta Spaghetti n.5 500g [Barilla] – €0,99 invece di €1,29 Te la metto nel carrello?
La riga dell'offerta: prezzo d'offerta 0,99, barrato 1,29, dal 2 al 15 novembre. Esempio illustrativo, coi prodotti del modello e un negozio inventato.
Che cosa succede se manca
- Senza offerte il cliente paga sempre il prezzo pieno e l'assistente non ha niente da rispondere a «che offerte avete?».
- Senza date l'offerta vale da subito fino al prossimo file: devi ricordarti di toglierla.
- Senza prezzo barrato si mostra come barrato il prezzo di vendita pieno.
- Un prezzo d'offerta uguale o più alto del prezzo di vendita non è un'offerta: la riga si ferma o riceve un avviso.
I campi
Obbligatorio: senza, il prodotto non si vende come il cliente se l'aspetta. Consigliato: senza, c'è un ripiego dichiarato, ma l'esperienza è più povera. Facoltativo: un miglioramento.
skuobbligatorio- Colonna nel file
- Codice
- Tipo
- testo
- Esempio
000201111 · 000301555 · 000405020- Regola
- obbligatorio, unico nel file, max 128 caratteri, stabile nel tempo
offer_priceobbligatorio- Colonna nel file
- Prezzo d'offerta
- Tipo
- numero (¤)
- Esempio
0,99 · 2,90 · 1,99- Regola
- IVA inclusa, dell'unità di vendita, > 0 e minore del prezzo di vendita
list_priceconsigliato- Colonna nel file
- Prezzo barrato
- Tipo
- numero (¤)
- Esempio
1,29 · 3,30- Regola
- ≥ prezzo d'offerta; vuoto = il prezzo di vendita
offer_startconsigliato- Colonna nel file
- Inizio offerta
- Tipo
- data
- Esempio
2026-11-02 · 02/11/2026- Regola
- AAAA-MM-GG o GG/MM/AAAA; vuoto = da subito
offer_endconsigliato- Colonna nel file
- Fine offerta
- Tipo
- data
- Esempio
2026-11-15 · 15/11/2026- Regola
- ≥ inizio; l'ultimo giorno incluso, nel fuso del negozio; vuoto = fino a nuovo file
offer_min_qtyfacoltativo- Colonna nel file
- Quantità minima dell'offerta
- Tipo
- intero
- Esempio
3- Regola
- intero ≥ 1; oltre 1 si mostra l’etichetta e il prezzo non cambia
offer_labelfacoltativo- Colonna nel file
- Etichetta dell'offerta
- Tipo
- testo
- Esempio
Sottocosto · Prendi 3, paghi 2- Regola
- max 60 caratteri, nella lingua del negozio
Scarica il modello
La prima riga è l'intestazione; la seconda (con # in testa) descrive ogni colonna; le tre righe d'esempio cominciano anch'esse con # e non si importano. I nomi delle colonne si riconoscono in tutte e sei le lingue e col nome del campo.
Errori frequenti e il loro messaggio
SKU_SCONOSCIUTO«Questo codice non è nel tuo catalogo.»(spiegazione di questa guida: Core restituisce il codice)
Che cosa fare: Carica prima il prodotto, poi la sua offerta.
OFFERTA_SUPERIORE_AL_PREZZO«Il prezzo in offerta è più alto del prezzo: controlla le due colonne.»
Che cosa fare: Il prezzo d'offerta deve essere sotto il prezzo di vendita del prodotto.
OFFERTA_NON_SCONTATA«Avviso: l'offerta non sconta niente e non si mostrerà.»(spiegazione di questa guida: Core restituisce il codice)
Che cosa fare: Controlla il prezzo d'offerta rispetto al prezzo di vendita.
DATA_NON_VALIDA«La data non si legge.»(spiegazione di questa guida: Core restituisce il codice)
Che cosa fare: Scrivi AAAA-MM-GG o GG/MM/AAAA.
DATE_INVERTITE«La fine viene prima dell'inizio.»(spiegazione di questa guida: Core restituisce il codice)
Che cosa fare: La fine è l'ultimo giorno incluso.
Come mandarli
- Dal portaleIn arrivo
In arrivo: il foglio e il file «offerte» in Prodotti.
- Dall'APIDisponibile
PUT /v1/inventory (catalog:write) tocca solo prezzo, giacenza e offerta: offer_price, list_price, offer_start, offer_end, offer_min_qty, offer_label. Gli stessi campi valgono in PUT /v1/products.
- Feed programmatoDisponibile
Nel feed Google Merchant / Meta, sale_price e sale_price_effective_date diventano l'offerta e le sue date.
Disponibilità misurata sul servizio vivo il 30 ottobre 2026.
Metti in offerta un prodotto per due settimane
curl
curl -X PUT "https://oxjqgjbiltoviwldailg.supabase.co/functions/v1/core-api/v1/inventory" \
-H "Authorization: Bearer $GAI_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: offerta-pasta-2026-11" \
-d '{"inventory":[{"sku":"000201111","offer_price":0.99,"list_price":1.29,"offer_start":"2026-11-02","offer_end":"2026-11-15"}]}'Node.js (18+)
const risposta = await fetch("https://oxjqgjbiltoviwldailg.supabase.co/functions/v1/core-api/v1/inventory", {
method: "PUT",
headers: {
Authorization: `Bearer ${process.env.GAI_KEY}`,
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({
inventory: [
{ sku: "000201111", offer_price: 0.99, list_price: 1.29, offer_start: "2026-11-02", offer_end: "2026-11-15" },
],
}),
});
console.log(risposta.status, await risposta.json());