9.1 KiB
Executable File
Amazon Creators API e canale offerte
Stato attuale nel codice
NetGescon aveva gia una base catalogo con prodotti, identificativi, media, seriali e offerte. Questa slice aggiunge:
- configurazione ambiente per Amazon Creators API in
config/services.php; - servizio
AmazonCreatorsApiServiceper token OAuth e chiamate configurabili; - servizio
AmazonCreatorsCatalogSyncServiceper mappare item Amazon suProductOffer,ProductIdentifier,ProductMediae snapshot strutturato del prodotto; - comando artisan
catalog:sync-amazon-creatorsper sincronizzare un prodotto singolo.
In piu la pagina fornitore/prodotti puo ora:
- cercare Amazon dalla UI;
- salvare un singolo candidato Amazon nel catalogo interno;
- salvare in massa tutti i risultati della query corrente nel catalogo del fornitore.
Variabili ambiente da valorizzare
Queste chiavi vanno messe solo in .env locale o staging, mai nel repository:
AMAZON_REFERRAL_TAG=netgescon-21
AMAZON_MARKETPLACE=www.amazon.it
AMAZON_CREATORS_ENABLED=true
AMAZON_CREATORS_CREDENTIAL_ID=
AMAZON_CREATORS_CREDENTIAL_SECRET=
AMAZON_CREATORS_CREDENTIAL_VERSION=v3.2
AMAZON_CREATORS_TOKEN_URL=
AMAZON_CREATORS_API_BASE_URL=
AMAZON_CREATORS_SEARCH_PATH=
AMAZON_CREATORS_GET_ITEMS_PATH=
AMAZON_CREATORS_TIMEOUT=20
TELEGRAM_OFFERS_BOT_TOKEN=
TELEGRAM_OFFERS_CHAT_ID=
TELEGRAM_OFFERS_CHANNEL_NAME=
TELEGRAM_OFFERS_WEBHOOK_SECRET=
Cosa manca per il collegamento live
Le credenziali ci sono gia, ma per la chiamata HTTP reale servono ancora dal materiale Amazon ufficiale:
- endpoint OAuth preciso per il token;
- base URL API Creators per il marketplace Italia;
- path esatti delle operazioni
SearchItemseGetItems; - un esempio reale di request e response, oppure direttamente lo zip dello SDK PHP Creators API.
Appena ci sono questi quattro dati, il client puo essere puntato ai path reali senza inventare nulla.
Uso del comando
Sincronizzazione da API, quando gli endpoint sono configurati:
php artisan catalog:sync-amazon-creators ART-000123
php artisan catalog:sync-amazon-creators 123 --asin=B0ABCDEF12
php artisan catalog:sync-amazon-creators ART-000123 --query="detergente caldaia"
Sincronizzazione da JSON esportato dallo SDK Amazon, utile anche prima del collegamento live completo:
php artisan catalog:sync-amazon-creators ART-000123 --json=/tmp/amazon-item.json
php artisan catalog:sync-amazon-creators ART-000123 --json=/tmp/amazon-response.json --dry-run
Dati che il sync salva
- offerta
product_offers.source_type = amazon_creators_api; - ASIN come
ProductIdentifierprimario, se presente; - EAN come
ProductIdentifier, se presente; - immagine Amazon come
ProductMediaremoto; - referral URL con
tag=netgescon-21se il tag e configurato; - snapshot in
products.meta.amazoncon almeno ASIN, EAN, titolo, marca, modello se presente, detail URL, referral URL, prezzo, listino, valuta, disponibilita, immagini, feature points e timestamp sync; - snapshot offerta in
product_offers.meta.payloadcon i dati prezzo e contesto di sync, inclusa la query di ricerca quando l'import nasce dalla UI; products.descriptionpopolata con i feature points Amazon quando il prodotto interno e ancora vuoto;products.modelvalorizzato quando Amazon espone un modello o gruppo prodotto utile.
Workflow operativo consigliato
- Apri la pagina catalogo fornitore.
- Cerca il prodotto su Amazon con una query libera o con ASIN/EAN.
- Se il risultato e corretto puoi scegliere:
Salva candidatoper importare solo quella scheda;Salva tutti i risultati nel catalogoper costruire rapidamente un mini catalogo interno da una query.
- I prezzi Amazon salvati restano disponibili nelle offerte prodotto e possono essere riaggiornati con una nuova sync quando serve.
- Le procedure interne devono leggere prima il catalogo interno NetGescon e le relative
product_offers, senza interrogare Amazon ogni volta.
Questo consente di usare il catalogo Amazon come sorgente di acquisizione e aggiornamento, ma di lavorare poi sempre su dati interni gia normalizzati e riusabili.
Pagina pubblica di abilitazione e demo
La pagina pubblica public/amazon non e piu solo un apri-link con tag affiliato.
Ora serve anche come vetrina condivisibile per mostrare:
- offerte Amazon gia importate nel catalogo interno;
- stato delle integrazioni in corso;
- prerequisiti per collegare il canale Telegram offerte;
- limiti attuali su messaggi privati Telegram, carrello Amazon, fattura e provenienza venditore.
Questo aiuta a rendere visibile il lavoro a chi ha contribuito all abilitazione API e a tenere allineati partner e operatori senza entrare subito nel pannello interno.
La pagina ora puo essere usata anche come mini sito vetrina per brand selezionati:
- filtro brand via query string, per esempio
public/amazon?brand=EPSON; - cards prodotto piu compatte, pensate per stare bene affiancate in griglia;
- cards prodotto con gallery immagini quando Amazon o
product_mediale rendono disponibili; - esposizione pubblica del codice produttore, EAN o UPC al posto dell ASIN quando disponibili;
- import del codice produttore da
itemInfo.manufactureInfo.itemPartNumberquando Amazon lo restituisce; - pubblicazione governata dal flag interno
meta.catalog.public_showcase, cosi il sito espone solo i prodotti scelti esplicitamente; - esposizione del solo prezzo Amazon pubblico nella pagina pubblica, senza mostrare il prezzo interno del gestionale;
- casi guida gia riallineati con payload ricco Amazon per EPSON
B0CPPKNRLJ, SamsungB0B9C3ZVHRe SamsungB087DFLF9S, con immagini, brand, codice produttore ed EAN quando disponibili.
Se il payload Creators non espone ancora immagini o prezzo, la pagina continua a funzionare ma mostra il dato come da completare. Questo evita di bloccare il mini sito mentre continuiamo le prove API.
La pagina include anche un carrello interno lato browser: raccoglie i prodotti selezionati nel mini sito e apre le relative schede referral Amazon. Non corrisponde ancora a un carrello Amazon ufficiale condiviso, ma prepara il passaggio dal sito NetGescon all acquisto finale su Amazon.
Telegram canale offerte
Per pubblicare le offerte Amazon sul canale Telegram servono:
- un bot Telegram creato con BotFather;
- il bot aggiunto come admin del canale target;
TELEGRAM_OFFERS_BOT_TOKENvalorizzato;TELEGRAM_OFFERS_CHAT_IDvalorizzato con id o riferimento compatibile del canale;TELEGRAM_OFFERS_CHANNEL_NAMEvalorizzato per mostrare il canale in UI e documentazione;- opzionalmente
TELEGRAM_OFFERS_WEBHOOK_SECRETse si usa anche la ricezione webhook.
Nota importante: un bot non puo inviare messaggi privati a un semplice iscritto del canale se quell utente non ha prima aperto una chat diretta col bot o inviato almeno un comando come /start.
Per il primo invio operativo c e ora anche un comando Artisan dedicato:
php artisan offers:publish-telegram 2917 --dry-run
php artisan offers:publish-telegram B0B9C3ZVHR
php artisan offers:publish-telegram ART-003315 --chat=@nethomestorelettronica
Il comando cerca una offerta amazon_creators_api per ID offerta, ASIN o internal_code prodotto e pubblica titolo, prezzo, disponibilita e referral URL sul canale configurato.
Carrello Amazon, fattura e priorita venditori
- Carrello interno NetGescon: fattibile, possiamo costruirlo noi con selezione multipla e riepilogo.
- Passaggio diretto di piu prodotti al carrello Amazon: da trattare come non garantito finche non troviamo un endpoint o un meccanismo ufficiale stabile; i link referral di prodotto restano la via affidabile.
- Fattura: va verificato se il segnale e davvero presente e affidabile nei dati Amazon disponibili.
- Priorita venditori italiani, europei, cinesi: possibile solo se otteniamo e persistiamo un dato attendibile su merchant o paese venditore.
KB operativo per la macchina vetrina prodotti
Per preparare una macchina dedicata al sito vetrina prodotti Amazon servono almeno questi passaggi:
- configurare le variabili
AMAZON_CREATORS_*,AMAZON_REFERRAL_TAGe, se serve,TELEGRAM_OFFERS_*; - importare i prodotti candidati dal catalogo fornitore interno;
- usare
public/amazon?brand=EPSONo altri brand come vetrina iniziale del sito; - marcare come pubblici solo i prodotti scelti impostando
meta.catalog.public_showcase = true; - pubblicare solo prodotti e brand selezionati, lasciando l acquisto finale su Amazon tramite referral URL o carrello interno di handoff;
- tenere l eventuale confronto economico col fornitore come informazione interna di NetGescon, senza esporlo nella pagina pubblica.
Cosa serve per il canale Telegram offerte
Per pubblicare offerte in automatico dal catalogo NetGescon servono:
- un bot Telegram creato con BotFather;
- il bot aggiunto come admin del canale offerte;
chat_ido username del canale;- una regola chiara di pubblicazione, per esempio solo offerte Amazon con prezzo valido e prodotto attivo;
- una frequenza di invio, per esempio push immediato o digest orario;
- un criterio anti-spam, per esempio non ripubblicare lo stesso ASIN nelle ultime 24 ore.
La prossima slice naturale e un publisher che prende le offerte attive dal catalogo e invia il post al canale con titolo, prezzo, immagine e referral URL.