86 lines
3.1 KiB
Markdown
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.
|