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 dall'API Content for Shopping. Per una guida dettagliata sull'utilizzo delle nuove funzionalità, vedi Gestire i prodotti.
Differenze principali
Di seguito sono riportate le modifiche più significative al modo in cui gestisci i prodotti nell'API Merchant rispetto all'API Content 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 risorsa - ProductInputper inserire, aggiornare ed eliminare i dati di prodotto. Puoi utilizzare la risorsa di sola lettura- Productper visualizzare il prodotto finale dopo che Google ha elaborato i tuoi input, applicato le regole e combinato i dati provenienti da fonti supplementari.
- Stato del prodotto integrato: il servizio - productstatusesviene rimosso. I problemi di convalida dei prodotti e gli stati delle destinazioni sono ora inclusi direttamente nella risorsa- Productall'interno del campo- productStatus, semplificando il recupero dei dati.
- Aggiornamenti di prodotto prevedibili: il nuovo metodo - productInputs.patchmodifica 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 fino a quando l'input di prodotto specifico non viene aggiornato o eliminato di nuovo. Gli aggiornamenti dei prodotti vengono applicati alla risorsa- ProductInputanziché alla risorsa- Product> elaborata.
- Scegli l'origine dati per una gestione più pulita dei dati: tutte le operazioni di scrittura ora richiedono un parametro di query - dataSource, rendendo esplicito quale origine dati stai modificando.- productInputsCiò è particolarmente utile se hai più origini che forniscono dati.
- Nuovi identificatori di risorse: ora i prodotti sono identificati da una risorsa RESTful - nameanziché dal campo- id. Il formato è- accounts/{account}/products/{product}.
- Nessun batch personalizzato: il metodo - custombatchnon è più disponibile. Puoi utilizzare richieste asincrone o raggruppamento in batch HTTP per inviare più richieste in una singola chiamata HTTP.
- Origini dati per qualsiasi etichetta feed e lingua: l'API Merchant consente di creare un'origine dati senza specificare l'etichetta feed e la lingua e quindi di inserire prodotti con qualsiasi etichetta feed e lingua. 
Richieste
Questa sezione confronta i formati delle richieste per l'API Content for Shopping e l'API Merchant.
| Descrizione della richiesta | API Content per 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 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 | 
| Aggiornare 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} | 
| Elencare gli stati del prodotto | GET https://shoppingcontent.googleapis.com/content/v2.1/{merchantId}/productstatuses | GET https://merchantapi.googleapis.com/products/v1/accounts/{account}/products | 
| Raggruppare più richieste in batch | POST https://shoppingcontent.googleapis.com/content/v2.1/products/custombatch | Richieste asincrone, batch HTTP | 
Identificatori
Il formato degli identificatori prodotto è stato modificato nell'API Merchant in un nome di risorsa REST standard.
| Descrizione dell'identificatore | API Content per Shopping | API Merchant | 
|---|---|---|
| ID prodotto | Una stringa composta da segmenti separati dai due punti ( :).Formato: channel:contentLanguage:targetCountry:offerIdochannel:contentLanguage:feedLabel:offerId.Esempio: online:en:US:sku123 | Una stringa di risorsa REST name.Formato: accounts/{account}/products/{product}dove{product}ècontentLanguage~feedLabel~offerId.Esempio: accounts/12345/products/en~US~sku123 | 
Metodi
Questa tabella mostra i metodi dell'API Content for Shopping e i relativi equivalenti nell'API Merchant.
| Metodo API Content for Shopping | Metodo 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 del prodotto. Richiede un dataSource. | 
| products.update | productInputs.update | Il comportamento è notevolmente diverso. Aggiorna un input specifico del prodotto ed è persistente. | 
| products.delete | productInputs.delete | Elimina un input di prodotto specifico. Richiede un dataSource. | 
| products.custombatch | Non disponibile | Utilizza richieste asincrone o batch HTTP. | 
| productstatuses.get | products.get | Il servizio productstatusesviene rimosso. Le informazioni sullo stato ora fanno parte della risorsaProduct. | 
| productstatuses.list | products.list | Il servizio productstatusesviene rimosso. Le informazioni sullo stato ora fanno parte della risorsaProduct. | 
| productstatuses.custombatch | Non disponibile | Utilizza [asynchronous | 
richieste](/merchant/api/samples/insert-product-input-async) o batch HTTP. |
Modifiche dettagliate ai campi
Questa tabella evidenzia i campi importanti che sono stati modificati, aggiunti o rimossi nell'API Merchant.
| API Content per Shopping | API Merchant | Descrizione | 
|---|---|---|
| id | name | L'identificatore principale di un prodotto è ora la risorsa REST name. | 
| Attributi della specifica dei dati di prodotto di primo livello (ad es. title,price,link) | productAttributesoggetto | Gli attributi prodotto come title,priceelinknon sono più campi di primo livello. Ora sono raggruppati all'interno dell'oggettoproductAttributesnelle risorseProducteProductInput. In questo modo, la struttura delle risorse è più pulita e organizzata. | 
| targetCountry | feedLabel | Il nome della risorsa ora utilizza feedLabelanzichétargetCountryper 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 scritturaproductInputs(insert,update,delete). | 
| channel | Non disponibile. Utilizza legacy_localsolo per i prodotti locali. | Il campo channelnon è più presente nell'API Merchant. I prodotti con il canaleLOCALnell'API Content for Shopping devono invece impostare il campolegacy_localsu true. | 
| Non disponibile | versionNumber | Un nuovo campo facoltativo in ProductInputche può essere utilizzato per impedire inserimenti fuori ordine nelle origini dati principali. | 
| Campi di tipo stringcon un insieme di valori definito | Campi di tipo enumcon un insieme di valori definito | I campi all'interno degli attributi di prodotto con un insieme di valori definito (ad esempio excluded_destinations,availability) ora sono di tipoenum. |