Published on

Esportare prodotti Bagisto su Google Merchant: nasce il mio modulo open source

Authors
  • avatar
    Name
    Alessandro Iannacone
    Twitter

Esportare prodotti Bagisto su Google Merchant: nasce il mio modulo open source

Chi lavora ogni giorno con e‑commerce self‑hosted, sa che uno dei bisogni più frequenti dei clienti è integrare i prodotti con piattaforme esterne come Google Merchant Center.
Il problema? Bagisto non offre nativamente un sistema semplice per esportare un feed ottimizzato e aggiornato automaticamente.

È da questa esigenza reale --- nata su un progetto di un cliente --- che ho deciso di creare un modulo completamente open source, oggi disponibile su GitHub:

👉 https://github.com/alesiestu/bagisto-google-merchant

e installabile via Composer:

composer require iannaconealessandro/bagisto-google-merchant


Perché nasce il modulo

Durante lo sviluppo di un e‑commerce basato su Bagisto avevo bisogno di:

  • generare un feed XML Google Merchant valido e completo
  • esportare automaticamente tutti i prodotti
  • includere immagini, prezzi, categorie, disponibilità
  • gestire multi‑store, multi‑lingua e multi‑canale
  • aggiornare periodicamente il feed tramite cron
  • evitare plugin commerciali costosi e chiusi
  • fornire una soluzione open, installabile con Composer, e facilmente estendibile

Non trovando nulla di leggero e realmente standard nella community, la soluzione migliore era scriverlo da zero come package Laravel conforme all'ecosistema Bagisto.


Cosa fa il modulo

Il package aggiunge un Artisan Command:

php artisan google-merchant:export

che genera automaticamente un file XML strutturato secondo le specifiche di Google Merchant.
Il feed viene salvato nella cartella pubblica (o dove configurato), pronto per essere letto da Google tramite Scheduled Fetch.

Supporta:

  • ✔ prodotti semplici\
  • ✔ immagini del prodotto\
  • ✔ prezzo e valuta del canale\
  • ✔ disponibilità stock\
  • ✔ categorie collegate\
  • ✔ brand, gtin/mpn, condition\
  • ✔ più canali / più lingue

E soprattutto è completamente estendibile: puoi aggiungere mappature custom, categorie Google, logiche di export personalizzate e strutture alternative.


Architettura del package

Il modulo segue la struttura standard dei pacchetti Laravel:

src/ ├─ Console/ │ └─ ExportGoogleMerchantFeed.php ├─ Providers/ │ └─ GoogleMerchantServiceProvider.php └─ Config/ └─ google_merchant.php

Il ServiceProvider registra automaticamente il comando e gestisce il publish della configurazione.

Installazione

composer require iannaconealessandro/bagisto-google-merchant php artisan vendor:publish --tag=google-merchant-config


Come funziona la generazione del feed

Il cuore del modulo è il Command che:

  1. recupera i prodotti disponibili nel canale configurato\
  2. carica le relazioni necessarie (immagini, categorie, inventari...)\
  3. costruisce il feed XML con tutti gli elementi richiesti da Google\
  4. salva il file in una posizione leggibile da Google Merchant

Il file risultante può essere collegato a Google Merchant in:

Products → Feeds → Add Feed → Scheduled Fetch

inserendo semplicemente l'URL del file generato.


Open source come scelta strategica

Ho deciso fin da subito che il progetto sarebbe stato:

  • open source
  • gratuito
  • installabile via Composer
  • mantenuto tramite GitHub
  • pensato per la community Laravel / Bagisto

Questo permette a chiunque di:

  • contribuire
  • proporre migliorie
  • aprire issue
  • integrare il modulo nei propri workflow DevOps

e allo stesso tempo mi consente di usare una base stabile e pulita nei miei progetti futuri.


Conclusioni

L'obiettivo è semplice: offrire uno strumento immediato e professionale per integrare Bagisto con Google Merchant senza dipendere da soluzioni pesanti o chiuse.

Il modulo è già disponibile e continuerò ad aggiornarlo e migliorarlo nel tempo.

📦 GitHub: https://github.com/alesiestu/bagisto-google-merchant\ 📦 Composer: iannaconealessandro/bagisto-google-merchant

Se hai idee, suggerimenti o vuoi contribuire, la repo è aperta.
Buon coding!