L'API Merchant introduce un modo più solido e intuitivo per gestire i dati di prodotto. La modifica principale è la separazione dei dati di prodotto in due risorse distinte: ProductInput per l'invio dei dati e Product per la visualizzazione della
versione finale elaborata, inclusi lo stato e i problemi del prodotto. Questa nuova struttura offre un'esperienza più prevedibile e trasparente.
Questa guida illustra le differenze principali per aiutarti a eseguire la migrazione dell'integrazione dalla Content API for Shopping. Per una guida dettagliata sull'utilizzo delle nuove funzionalità, consulta Gestire i prodotti.
Differenze principali
Di seguito sono riportate le modifiche più significative al modo in cui gestisci i prodotti nell'API Merchant rispetto alla Content API for Shopping:
Risorse dedicate per i dati di input e quelli elaborati: l'API Merchant suddivide la gestione dei prodotti in due risorse. Puoi utilizzare la
ProductInputrisorsa per inserire, aggiornare ed eliminare i dati di prodotto. Puoi utilizzare la risorsaProductdi sola lettura per visualizzare il prodotto finale dopo che Google ha elaborato i tuoi input, applicato le regole e combinato i dati provenienti da origini supplementari.Codifica per i nomi dei prodotti: puoi utilizzare la codifica base64url senza padding (sezione 5 della RFC 4648) per i campi
ProductInput.nameeProduct.name. Se i nomi dei prodotti contengono caratteri utilizzati dall'API Merchant o caratteri riservati per gli URL, la codifica è obbligatoria. Ad esempio, devi codificare i nomi dei prodotti se contengono uno dei seguenti caratteri:% . + / : ~ , ( * ! ) & ? = @ # $Stato del prodotto integrato: il servizio
productstatusesè stato rimosso. I problemi di convalida del prodotto e gli stati delle destinazioni sono ora inclusi direttamente nellaProductrisorsa all'interno delproductStatuscampo, semplificando il recupero dei dati.Aggiornamenti dei prodotti prevedibili: il nuovo
productInputs.patchmetodo modifica direttamente un input di prodotto specifico. Si tratta di un miglioramento significativo rispetto all'API Content for Shopping, in cui gli aggiornamenti potevano essere sovrascritti in modo imprevisto da altri caricamenti di feed. Nell'API Merchant, un aggiornamento rimane attivo finché l'input di prodotto specifico non viene aggiornato di nuovo o eliminato. Gli aggiornamenti dei prodotti vengono applicati allaProductInputrisorsa anziché allaProductrisorsa elaborata.Scegli l'origine dati per una gestione dei dati più pulita: tutte le operazioni di scrittura
productInputsora richiedono un parametro di querydataSource, che indica esplicitamente l'origine dati che stai modificando. Questa funzionalità è particolarmente utile se hai più origini che forniscono dati.Nuovi identificatori di risorse: i prodotti vengono ora identificati da un di risorsa RESTful
nameanziché dal campoid. Il formato èaccounts/{account}/products/{product}.Nessun batch personalizzato: il metodo
custombatchnon è più disponibile. Puoi utilizzare le richieste asincrone o il batch HTTP per inviare più richieste in una singola chiamata HTTP.
- Origini dati per qualsiasi etichetta del feed e lingua: l'API Merchant consente di creare un'origine dati senza specificare l'etichetta del feed e la lingua e, di conseguenza, di inserire un prodotto con qualsiasi etichetta del feed e lingua.
Richieste
Questa sezione confronta i formati delle richieste per la Content API for Shopping e l'API Merchant.
| Descrizione della richiesta | Content API for Shopping | API Merchant |
|---|---|---|
| Ottieni un prodotto | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} |
GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products/{product} |
| Elenca i prodotti | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products |
GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products |
| Inserisci un prodotto | POST https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products |
POST https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs:insert |
| Aggiorna un prodotto | PATCH https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} |
PATCH https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs/{productinput} |
| Elimina un prodotto | DELETE https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/products/{productId} |
DELETE https://merchantapi.googleapis.com/products/v1/accounts/{account}/productInputs/{productinput} |
| Ottieni lo stato del prodotto | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/productstatuses/{productId} |
GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products/{product} |
| Elenca gli stati dei prodotti | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/productstatuses |
GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products |
| Batch di più richieste | POST https://shoppingcontent.googleapis.com/content/v2.1/products/custombatch |
Utilizza le richieste asincrone o il batch HTTP |
Identificatori
Il formato degli identificatori di prodotto è stato modificato nell'API Merchant in un nome di risorsa REST standard.
| Descrizione dell'identificatore | Content API for Shopping | API Merchant |
|---|---|---|
| ID prodotto | Una stringa composta da segmenti separati da due punti (:).Formato: channel:contentLanguage:targetCountry:offerId o channel:contentLanguage:feedLabel:offerId.Esempio: online:en:US:sku123 |
Una stringa name di risorsa REST.Formato: accounts/{account}/products/{product} dove {product} è contentLanguage~feedLabel~offerId.Esempio: accounts/12345/products/en~US~sku123.Codifica: codifica base64url senza padding consigliata e obbligatoria in caso di ID prodotto che contengono caratteri utilizzati dall'API Merchant o caratteri riservati per gli URL. |
Metodi
Questa tabella mostra i metodi della Content API for Shopping e i relativi equivalenti nell'API Merchant.
| Metodo dell'API Content for Shopping | Metodo dell'API Merchant | Disponibilità e note |
|---|---|---|
products.get |
products.get |
Recupera il prodotto finale elaborato. |
products.list |
products.list |
Elenca i prodotti finali elaborati. |
products.insert |
productInputs.insert |
Inserisce un input di prodotto. Richiede un dataSource. |
products.update |
productInputs.update |
Il comportamento è notevolmente diverso. Aggiorna un input di prodotto specifico ed è persistente. |
products.delete |
productInputs.delete |
Elimina un input di prodotto specifico. Richiede un dataSource. |
products.custombatch |
Non disponibile | Utilizza le richieste asincrone o il batch HTTP. |
productstatuses.get |
products.get |
Il servizio productstatuses è stato rimosso. Le informazioni sullo stato fanno ora parte della risorsa Product. |
productstatuses.list |
products.list |
Il servizio productstatuses è stato rimosso. Le informazioni sullo stato fanno ora parte della risorsa Product. |
productstatuses.custombatch |
Non disponibile | Utilizza le richieste asincrone o il batch HTTP. |
Modifiche dettagliate dei campi
Questa tabella evidenzia i campi importanti che sono stati modificati, aggiunti o rimossi nell'API Merchant.
| Content API for Shopping | API Merchant | Descrizione |
|---|---|---|
id |
name |
L'identificatore principale di un prodotto è ora la risorsa REST name. Codifica base64url senza padding consigliata e obbligatoria in caso di nomi di prodotti che contengono caratteri utilizzati dall'API Merchant o caratteri riservati per gli URL. |
Attributi della specifica dei dati di prodotto di primo livello (ad es. title, price, link) |
Oggetto productAttributes |
Gli attributi del prodotto come title, price e link non sono più campi di primo livello. Ora sono raggruppati all'interno dell'oggetto productAttributes nelle risorse Product e ProductInput. In questo modo, la struttura delle risorse è più pulita e organizzata. |
targetCountry |
feedLabel |
Il nome della risorsa ora utilizza feedLabel anziché targetCountry per allinearsi alla funzionalità di Merchant Center. |
feedId |
dataSource (parametro di query) |
Il nome dataSource è ora un parametro di query obbligatorio per tutti i metodi di scrittura productInputs (insert, update, delete). |
channel |
Non disponibile. Utilizza legacy_local solo per i prodotti locali. |
Il campo channel non è più presente nell'API Merchant. I prodotti con canale LOCAL nella Content API for Shopping devono invece impostare il campo legacy_local su true. |
| Non disponibile | versionNumber |
Un nuovo campo facoltativo in ProductInput che può essere utilizzato per impedire inserimenti fuori sequenza nelle origini dati principali. |
Campi di tipo string con un insieme di valori definiti |
Campi di tipo enum con un insieme di valori definiti |
I campi all'interno degli attributi del prodotto con un insieme di valori definiti (ad esempio excluded_destinations, availability) sono ora di tipo enum. |