# 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.