PS PrestaShop Intermedio

Importazione Feed Fornitori & Dropshipping per PrestaShop 8 e 9

Installare, configurare e automatizzare l'importazione multi-fornitore (CSV, XML, JSON), i margini e la sincronizzazione dello stock.

Aggiornato Versione del modulo 1.0.0

Presentazione

Il modulo Importazione Feed Fornitori & Dropshipping (nome tecnico dfsupplierfeed) importa e sincronizza automaticamente i cataloghi dei tuoi fornitori in PrestaShop 8 e 9. Gestisce più fornitori e più feed nei formati CSV, XML e JSON, applica le tue regole di margine per calcolare i prezzi di vendita a partire dal costo d’acquisto, sincronizza lo stock ogni ora tramite cron e arbitra gli EAN13 duplicati tra le fonti tramite una priorità per fornitore.

Il modulo non sostituisce l’importazione CSV nativa di PrestaShop (pensata per un singolo caricamento manuale): industrializza importazioni ricorrenti da più fonti, con margini e sincronizzazione dello stock automatici.

Installazione

  1. Nel back office, vai su Moduli > Gestore moduli e poi Carica un modulo.
  2. Seleziona il file dfsupplierfeed.zip e conferma.
  3. Una volta installato, clicca su Configura.

All’installazione, il modulo crea cinque tabelle (dfsf_supplier, dfsf_feed, dfsf_rule, dfsf_product, dfsf_log) e genera un token cron univoco.

Panoramica dell’interfaccia

La pagina di configurazione è organizzata in schede:

  • Dashboard — contatori (fornitori, feed, prodotti collegati, regole) e promemoria sul funzionamento.
  • Suppliers — creazione dei fornitori e della loro priorità.
  • Feeds — definizione dei feed e della loro mappatura.
  • Margin rules — regole di calcolo dei prezzi di vendita.
  • Logs — cronologia delle importazioni.
  • Settings & Cron — impostazioni generali e URL cron pronti da copiare.

Passo 1 — Creare i tuoi fornitori

Nella scheda Suppliers, aggiungi un fornitore con:

  • Nome — etichetta del fornitore.
  • Priorità — numero intero, con 1 come priorità più alta. Serve a risolvere gli EAN13 duplicati (vedi sotto).
  • Attivo — un fornitore inattivo viene ignorato dal cron.
  • Crea il fornitore nativo PrestaShop — consigliato: associa un fornitore PrestaShop standard, il che riempie anche il costo d’acquisto in product_supplier.

Assegna le priorità migliori (numeri più bassi) ai tuoi fornitori più affidabili o più economici: sono loro a “possedere” i prodotti condivisi.

Passo 2 — Configurare un feed

Nella scheda Feeds, ogni feed è collegato a un fornitore e comprende:

  • Tipo di sorgenteURL remoto o file locale (percorso relativo alla radice del negozio, limitato a tale directory per sicurezza).
  • Sorgente — l’URL o il percorso del file. Le risposte compresse gzip vengono decodificate automaticamente.
  • Formato — CSV, XML o JSON.
  • Prezzi IVA inclusa? e Aliquota — se il feed fornisce costi IVA inclusa, il modulo li converte in IVA esclusa con questa aliquota.
  • Categoria predefinita — categoria dei prodotti creati senza categoria esplicita.
  • Crea prodotti mancanti, Importa immagini, Includi nella sync oraria, Attivo.

La mappatura dei campi

La mappatura è un oggetto JSON che collega le colonne/nodi del tuo feed a campi prodotto normalizzati. I 13 campi canonici disponibili sono: name, reference, ean13, cost, quantity, description, description_short, category, manufacturer, weight, tax_rate, image, mpn.

Mappatura CSV

Collega ogni campo a un’intestazione di colonna (o a un indice di colonna a partire da 0). Il delimitatore viene rilevato automaticamente (;, ,, tabulazione o |) e le virgole decimali sono accettate.

{
  "fields": {
    "name": "product_name",
    "reference": "sku",
    "ean13": "ean",
    "cost": "price",
    "quantity": "stock",
    "image": "image_url"
  }
}

Mappatura XML

Indica items_path, il percorso dei nodi ripetuti (es. products/product), poi mappa ogni campo a un percorso relativo. Un prefisso @ legge un attributo, e i sottoelementi si separano con barre.

{
  "items_path": "products/product",
  "fields": {
    "reference": "@sku",
    "name": "title",
    "ean13": "ean",
    "cost": "pricing/wholesale",
    "quantity": "stock/quantity"
  }
}

Mappatura JSON

Indica items_path, il percorso dell’array di articoli in notazione con punti (es. data.products), poi mappa ogni campo. Gli indici di array si scrivono come segmenti numerici (es. images.0).

{
  "items_path": "data.products",
  "fields": {
    "reference": "sku",
    "name": "name",
    "ean13": "barcode",
    "cost": "prices.cost",
    "quantity": "inventory.available",
    "image": "images.0"
  }
}

Una riga viene ignorata se non ha né EAN13 né riferimento fornitore: sono le due chiavi di corrispondenza. Gli EAN vengono validati e poi normalizzati a 13 cifre.

Passo 3 — Definire i tuoi margini

Nella scheda Margin rules, ogni regola calcola il prezzo di vendita IVA esclusa a partire dal costo d’acquisto IVA esclusa:

  • Percentualecosto × (1 + valore/100). Es. valore 35 → +35 %.
  • Coefficientecosto × valore. Es. valore 1,8 → ×1,8.
  • Addizione fissacosto + valore.

Viene poi applicato un arrotondamento psicologico opzionale: x.99, x.95, x.90 o arrotondamento all’intero superiore.

Ambito e risoluzione delle regole

Una regola può riguardare un fornitore, una categoria, entrambi o essere globale. Quando un prodotto corrisponde a più regole, vince la più specifica, in questo ordine:

  1. fornitore + categoria
  2. solo fornitore
  3. solo categoria
  4. regola globale

Le regole di categoria si applicano anche alle sottocategorie: una regola sulla categoria esatta del prodotto prevale su una regola su una categoria superiore. Se nessuna regola corrisponde, viene usato il margine predefinito (scheda Settings).

La priorità EAN tra le fonti

È il cuore del modulo in multi-fornitore. Quando lo stesso ean13 compare in più feed:

  • Il fornitore con la priorità migliore (numero più basso) possiede il prodotto; prezzi, stock e costo provengono dal suo feed.
  • Le altre fonti vengono ignorate per quel riferimento (stato “skipped” nei log).
  • Se in seguito un fornitore con priorità migliore porta quell’EAN, subentra automaticamente nella proprietà del prodotto.

Decidi tu chi fa testo regolando le priorità: rifornirti dello stesso riferimento da più grossisti diventa sicuro, senza che i feed si contraddicano.

Lanciare un’importazione manualmente

Nella scheda Feeds, ogni feed dispone di due pulsanti:

  • Importazione completa (icona play) — aggiorna i prodotti collegati e crea quelli mancanti (se il feed lo consente).
  • Sync stock (icona aggiorna) — aggiorna solo prezzi e quantità dei prodotti già collegati.

Automatizzare con il cron

La scheda Settings & Cron mostra due URL pronti da copiare, protetti da un token. Configurali nello scheduler del tuo server:

# Sync stock ogni ora (prezzi + quantità dei prodotti collegati)
0 * * * * curl -s "https://iltuonegozio.tld/index.php?fc=module&module=dfsupplierfeed&controller=cron&token=IL_TUO_TOKEN&mode=stock" > /dev/null

# Importazione completa ogni notte (creazioni + aggiornamenti)
30 3 * * * curl -s "https://iltuonegozio.tld/index.php?fc=module&module=dfsupplierfeed&controller=cron&token=IL_TUO_TOKEN&mode=full" > /dev/null

Aggiungi &id_feed=N per elaborare un singolo feed. L’endpoint restituisce un report JSON (creati, aggiornati, ignorati, errori per feed).

Se rigeneri il token nelle impostazioni, ricordati di aggiornare i tuoi cron: il vecchio URL restituirà un errore 403.

Impostazioni generali

  • Prodotti creati attivi immediatamente — disattivato per impostazione predefinita: i prodotti creati dai feed sono in bozza affinché tu li verifichi prima della pubblicazione.
  • Margine predefinito — applicato quando nessuna regola corrisponde.
  • Ritenzione dei log — numero di giorni prima della purga automatica.
  • Rigenerare il token cron.

Monitoraggio e registri

La scheda Logs elenca ogni esecuzione con il feed interessato, la modalità, i contatori (creati / aggiornati / ignorati / errori), il tempo di esecuzione e il dettaglio dei primi errori incontrati. I registri vengono purgati automaticamente secondo la ritenzione configurata.

Risoluzione dei problemi

“Feed file not found or outside shop directory”

Per una sorgente file, il percorso deve puntare a un file leggibile situato nella directory del negozio. Usa un percorso relativo alla radice o un URL.

I prodotti vengono creati ma non sono visibili nel front

È il comportamento predefinito: i prodotti creati sono disattivati. Verificali e attivali, oppure attiva “Prodotti creati attivi immediatamente” nelle impostazioni.

Un fornitore non sovrascrive mai un prodotto condiviso

La sua priorità è probabilmente peggiore (numero più alto) di quella del fornitore proprietario. Regola le priorità nella scheda Suppliers.

I prezzi sembrano troppo alti/bassi

Verifica se il feed fornisce costi IVA inclusa (opzione “Prezzi IVA inclusa?” + aliquota) e controlla quale regola di margine si applica effettivamente tramite l’ordine di risoluzione.

Compatibilità

  • PrestaShop 8.0 fino a 9.x, PHP 7.4 fino a 8.3.
  • Senza override del core PrestaShop.
  • Modulo tradotto in FR, EN, ES, DE, IT.
Questa pagina ti è stata utile?

Ancora bloccato? Contatta l'assistenza