netgescon-day0/docs/AMAZON-CREATORS-API.md

86 lines
3.1 KiB
Markdown

# 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 `AmazonCreatorsApiService` per token OAuth e chiamate configurabili;
- servizio `AmazonCreatorsCatalogSyncService` per mappare item Amazon su `ProductOffer`, `ProductIdentifier` e `ProductMedia`;
- comando artisan `catalog:sync-amazon-creators` per sincronizzare un prodotto singolo.
## Variabili ambiente da valorizzare
Queste chiavi vanno messe solo in `.env` locale o staging, mai nel repository:
```env
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 `SearchItems` e `GetItems`;
- 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:
```bash
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:
```bash
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 `ProductIdentifier` primario, se presente;
- EAN come `ProductIdentifier`, se presente;
- immagine Amazon come `ProductMedia` remoto;
- referral URL con `tag=netgescon-21` se il tag e configurato.
## 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_id` o 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.