Aggiornare l'inventario per Vertex AI Search for Commerce

Questa pagina descrive i metodi per gestire gli aggiornamenti in tempo reale di prezzo e quantità per il catalogo Vertex AI Search for commerce utilizzando l'API Retail.

Mentre i metodi di creazione, lettura, aggiornamento ed eliminazione (CRUD) di Product vengono utilizzati per modificare in modo generico gli attributi di Product, esiste un insieme di metodi Product che possono essere utilizzati per aggiornare i campi specifici dell'inventario con vari livelli di granularità.

Informazioni sull'inventario

In termini generali, l'inventario si riferisce solitamente ai livelli di stock (quantità) e al prezzo degli articoli su un sito di e-commerce. Per l'API Retail, inventory si riferisce a prezzo, disponibilità, quantità disponibile, informazioni sull'evasione e prezzi locali, nonché ad altri attributi locali. Questi campi sono definiti nello schema Product con i seguenti campi:

Inventario a livello di prodotto

Per i commercianti di siti di e-commerce con solo un catalogo online, inventory è in genere rappresentato solo dai prodotti del catalogo. Il prezzo, la disponibilità e tutti gli altri dati vengono impostati per ogni voce Prodotto del catalogo. I campi fulfillmentInfo e localInventories non vengono utilizzati.

Inventario locale

Per i rivenditori con più sedi, i prodotti sono comunque rappresentati dalle voci di prodotto nel catalogo, ma l'inventario locale (prezzo, disponibilità e evasione) può essere aggiunto alle sedi (placeId) per un prodotto con il metodo addLocalInventories.

Per l'inventario locale vengono utilizzati due campi Prodotto separati: Product.fulfillmentInfo e Product.localInventories. Possono essere utilizzati uno o entrambi, a seconda dei requisiti. fulfillmentInfo e localInventories sono elenchi di località con dati associati.

fulfillmentInfo specifica come viene eseguito l'evasione di un prodotto in una determinata località, mentre localInventories specifica il prezzo e altri attributi personalizzati per ogni località.

Per contrassegnare un prodotto come esaurito o non più disponibile in una località specifica, viene utilizzato il metodo removeLocalInventories per rimuovere fulfillment e inventory da un prodotto per un determinato placeId.

Metodi di aggiornamento dell'inventario

Le modifiche alle informazioni sull'inventario di un prodotto potrebbero avvenire molto più spesso rispetto a quelle relative alle informazioni del catalogo. Pertanto, viene fornito un insieme specializzato di metodi per gestire grandi volumi di aggiornamenti specifici dell'inventario. Questi metodi sono asincroni grazie alle ottimizzazioni downstream che supportano centinaia di aggiornamenti simultanei per prodotto senza compromettere le prestazioni.

Aggiornamenti incrementali

Segui la guida agli aggiornamenti dell'inventario locale per eseguire aggiornamenti incrementali dell'inventario. I metodi API più recenti forniscono un controllo più granulare per gli attributi dell'inventario per luogo.

fulfillment_info viene spesso utilizzato per codificare la disponibilità dell'evasione a livello di luogo per un Product. In alcuni casi, la disponibilità di evasione degli ordini per alcuni luoghi specifici può cambiare. Puoi decidere di pubblicare aggiornamenti che descrivono questa modifica, anziché utilizzare il metodo UpdateProduct per specificare di nuovo tutte le informazioni sull'evasione degli ordini del prodotto.

In questi casi, è possibile utilizzare i metodi AddFulfillmentPlaces e RemoveFulfillmentPlaces per aggiornare in modo incrementale le modifiche all'evasione di un prodotto in base agli ID luogo aggiunti o rimossi per un determinato tipo di evasione.

Java

Per scoprire come installare e utilizzare la libreria client per Vertex AI Search for commerce, consulta Librerie client di Vertex AI Search for commerce. Per saperne di più, consulta la documentazione di riferimento dell'API Vertex AI Search for Commerce Java.

Per eseguire l'autenticazione in Vertex AI Search for commerce, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

public static AddFulfillmentPlacesResponse addFulfillmentPlaces(
    Product productToUpdate, String fulfillmentInfoType, ImmutableList<String> placeIds)
    throws IOException, InterruptedException, ExecutionException {
  ProductServiceClient productClient = getProductServiceClient();

  AddFulfillmentPlacesRequest request = AddFulfillmentPlacesRequest.newBuilder()
      .setProduct(productToUpdate.getName())
      .setType(fulfillmentInfoType)
      .addAllPlaceIds(placeIds)
      .setAddTime(Timestamps.fromMillis(System.currentTimeMillis()))
      .build();

  AddFulfillmentPlacesResponse response = productClient
      .addFulfillmentPlacesAsync(request).get();

  productClient.shutdownNow();
  productClient.awaitTermination(2, TimeUnit.SECONDS);

  return response;
}

Proto

  {
    product: "projects/123/locations/global/catalogs/default_catalog/branches/default_branch/products/p123"
    type: "pickup-in-store"
    place_ids: "store0"
    place_ids: "store1"
    add_time: {
      seconds: 100
      nanos: 100
    }
    allow_missing: true
  }
  

Questo esempio AddFulfillmentPlacesRequest aggiunge il tipo di evasione "pickup-in-store" agli ID luogo "store0" e "store1" per il prodotto specificato. Poiché AddFulfillmentPlacesRequest.allow_missing è impostato su true, anche se il prodotto non esiste ancora, le informazioni sull'inventario aggiornate verranno memorizzate per quando il prodotto verrà creato. L'aggiornamento è contrassegnato con il timestamp AddFulfillmentPlacesRequest.add_time per impedire che gli aggiornamenti obsoleti sostituiscano lo stato dell'evasione di questi ID luogo. Queste funzionalità sono descritte in maggior dettaglio nelle sezioni seguenti.

Il comportamento è identico per RemoveFulfillmentPlacesRequest e lo schema è molto simile.

Quando fulfillment_types viene aggiornato da AddLocalInventories e RemoveLocalInventories, riflette una mappatura da ogni ID luogo a un elenco di tipi di evasione che supporta. Quando fulfillment_info viene aggiornato da AddFulfillmentPlaces e RemoveFulfillmentPlaces, riflette una mappatura da ogni tipo di evasione degli ordini specifico a un elenco di ID luogo che supportano ogni tipo. Entrambi i tipi di API modificano le stesse informazioni di evasione sottostanti e l'effetto di entrambi i tipi di API si riflette in Product.fulfillment_info.

Aggiornamenti non incrementali

I metodi price_info, availability e available_quantity non possono essere aggiornati in modo incrementale perché rappresentano l'inventario a livello di prodotto, non le informazioni a livello di luogo. Potrebbe anche essere utile rilasciare aggiornamenti non incrementali a fulfillment_info. Anziché solo modifiche incrementali, è consigliato SetInventory.

Il metodo setInventory è il modo preferito per aggiornare prezzo, disponibilità e quantità a livello di prodotto quando sono necessari molti aggiornamenti frequenti. Il metodo setInventory è asincrono, quindi gli aggiornamenti potrebbero non avvenire immediatamente. La quota predefinita (300.000 richieste al minuto) supporta molte più richieste rispetto a UpdateProduct.

Inoltre, il metodo setInventory viene utilizzato per gli aggiornamenti dell'evasione locale quando fulfillmentInfo è incluso nella richiesta, ma non può aggiornare i campi localInventories. Per questi attributi, utilizza i metodi addLocalInventories e removeLocalInventories.

L'inventario locale viene salvato a livello di negozio, indipendentemente dal catalogo. Per i clienti con inventario online e offline, il catalogo dei prodotti principale può essere utilizzato per l'inventario online o per un placeId specifico (ad esempio -1 o online). Tuttavia, utilizza il catalogo principale per l'inventario online, perché i campi dell'inventario dei prodotti devono essere compilati con valori priceInfo e availability validi. Se per l'online viene utilizzato un inventario placeId separato, anche le informazioni su prezzo e disponibilità del catalogo principale devono essere aggiornate. Per saperne di più sugli aggiornamenti dell'inventario locale, consulta l'articolo Aggiornare l'inventario locale.

Java

Per scoprire come installare e utilizzare la libreria client per Vertex AI Search for commerce, consulta Librerie client di Vertex AI Search for commerce. Per saperne di più, consulta la documentazione di riferimento dell'API Vertex AI Search for Commerce Java.

Per eseguire l'autenticazione in Vertex AI Search for commerce, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

public static SetInventoryResponse setInventoryWithMask(Product productToUpdate,
    FieldMask updateMask)
    throws IOException, ExecutionException, InterruptedException {
  ProductServiceClient productClient = getProductServiceClient();

  SetInventoryRequest request = SetInventoryRequest.newBuilder()
      .setInventory(productToUpdate)
      .setSetMask(updateMask)
      .setSetTime(Timestamps.fromMillis(System.currentTimeMillis()))
      .setAllowMissing(true)
      .build();

  SetInventoryResponse response = productClient.setInventoryAsync(request).get();

  productClient.shutdownNow();
  productClient.awaitTermination(2, TimeUnit.SECONDS);

  return response;
}

Proto

  {
    product: {
      name: "projects/123/locations/global/catalogs/default_catalog/branches/default_branch/products/p123"
      availability: IN_STOCK
      fulfillment_info: {
        type: "pickup-in-store"
        place_ids: "store0"
        place_ids: "store1"
        place_ids: "store2"
        place_ids: "store3"
      }
      fulfillment_info: {
        type: "same-day-delivery"
      }
    }
    set_time: {
      seconds: 100
      nanos: 100
    }
    set_mask: {
      paths: "availability"
      paths: "fulfillment_info"
    }
    allow_missing: true
  }
  

In questa richiesta specifica, i campi SetInventoryRequest.product.fulfillment_info sono descrizioni complete degli ID luogo idonei di ogni tipo di evasione, anziché specifiche incrementali. L'aggiornamento di "same-day-delivery" indica che nessun ID luogo è idoneo per questo tipo di evasione per questo prodotto. Tutti gli altri tipi di evasione non vengono aggiornati in questa richiesta. Pertanto, questo metodo può essere utilizzato per sostituire gli ID luogo solo per un sottoinsieme di tipi di evasione, lasciando invariati gli altri tipi.

Per impostazione predefinita,SetInventory aggiornerà tutti i campi dell'inventario se SetInventory.set_mask non è impostato o è vuoto. Se la maschera non è vuota o se un campo dell'inventario non è elencato esplicitamente in SetInventoryRequest.set_mask, qualsiasi valore specificato per quel campo dell'inventario verrà ignorato nella richiesta di aggiornamento.

Come per gli aggiornamenti incrementali, il campo SetInventoryRequest.set_time può essere utilizzato per impostare un'ora di aggiornamento che verrà confrontata con l'ora dell'ultimo aggiornamento registrata di tutti i campi dell'inventario aggiornati.

Protezioni del timestamp per gli aggiornamenti dell'inventario

Esistono diversi percorsi per aggiornare i campi dell'inventario di un prodotto e, per proteggere dagli aggiornamenti fuori ordine, ogni campo dell'inventario è associato a un'ora dell'ultimo aggiornamento.

L'ora dell'ultimo aggiornamento viene registrata per price_info, availability, available_quantity e per ogni coppia di (fulfillment_info.place_ids, fulfillment_info.type).

I metodi AddFulfillmentPlaces, RemoveFulfillmentPlaces e SetInventory consentono al chiamante di specificare un'ora di aggiornamento per il momento in cui viene emessa la richiesta. Questa ora di aggiornamento viene confrontata con l'ora dell'ultimo aggiornamento registrata per i campi dell'inventario pertinenti e l'aggiornamento viene eseguito solo se l'ora di aggiornamento è strettamente successiva all'ora dell'ultimo aggiornamento.

Ad esempio, supponiamo che l'ID luogo "store1" abbia il tipo di evasione "pickup-in- store" abilitato, con l'ora dell'ultimo aggiornamento registrato impostata sull'ora T. Se RemoveFulfillmentPlacesRequest.type = "pickup-in-store" e RemoveFulfillmentPlacesRequest.place_ids contengono "store1", la richiesta cancellerà "pickup-in-store" da "store1" se e solo se RemoveFulfillmentPlacesRequest.remove_time è successivo all'ora T. Lo stesso vale per AddFulfillmentPlacesRequests.

SetInventory funziona in modo simile per l'aggiornamento di price_info, availability e available_quantity. Quando aggiorni fulfillment_info, una SetInventoryRequest chiede implicitamente di aggiungere tutti gli ID luogo specificati per un determinato tipo di evasione e di rimuovere tutti gli ID luogo esistenti non specificati.

Quando viene elaborato SetInventoryRequest, l'aggiornamento fulfillment_info viene convertito implicitamente in un AddFulfillmentPlacesRequest e RemoveFulfillmentPlacesRequest per ogni tipo di evasione degli ordini specificato. Ciò significa che se un luogo esistente "store1" con evasione "pickup-in-store" ha un orario dell'ultimo aggiornamento T più recente di SetInventoryRequest.set_time, l'aggiunta o la rimozione implicita di "store1" e "pickup-in-store" non verrà applicata.

Attributi precaricati

setInventory è asincrono, il che significa che non vengono applicati controlli tassonomici o referenziali quando vengono aggiunti o modificati i campi dell'inventario. Questo metodo non richiede che il prodotto a cui viene fatto riferimento nella richiesta esista già.

In questo modo, i clienti possono implementare pattern di precaricamento, in cui la gestione dei campi dell'inventario può essere separata dal processo principale di importazione del catalogo o dei prodotti. Ad esempio, gli utenti possono importare il contesto di disponibilità o prezzo prima dell'importazione del prodotto associato.

Ciascuno dei metodi di aggiornamento dell'inventario consente al chiamante di impostare allow_missing nella richiesta. Quando allow_missing è impostato su true, un aggiornamento dell'inventario a un Product inesistente verrà elaborato come se il Product esistesse in base alle specifiche del metodo. Le informazioni sull'inventario verranno conservate per un massimo di due giorni se il Product corrispondente non viene creato utilizzando CreateProduct entro questo periodo di tempo.

Java

public static SetInventoryResponse setInventory(Product productToUpdate)
    throws IOException, ExecutionException, InterruptedException {
  ProductServiceClient productClient = getProductServiceClient();

  SetInventoryRequest request = SetInventoryRequest.newBuilder()
      .setInventory(productToUpdate)
      .setSetTime(Timestamps.fromMillis(System.currentTimeMillis()))
      .setAllowMissing(true)
      .build();

  SetInventoryResponse response = productClient.setInventoryAsync(request).get();

  productClient.shutdownNow();
  productClient.awaitTermination(2, TimeUnit.SECONDS);

  return response;
}

Quando utilizzare i metodi Product

Sebbene sia possibile aggiornare i campi dell'inventario con i metodi CRUD dei prodotti, il chiamante deve essere esplicitamente consapevole degli effetti sulle informazioni di inventario esistenti o preesistenti.

Questi sono metodi sincroni, il che significa che le ottimizzazioni downstream utilizzate per i metodi di inventario non si applicano e può diventare costoso fare affidamento su questi metodi per aggiornamenti frequenti dell'inventario. Ove possibile, preferisci utilizzare i metodi di aggiornamento dell'inventario sopra menzionati.

CreateProduct

Quando CreateProduct viene richiamato con i campi dell'inventario impostati, i valori forniti in CreateProductRequest.product sostituiranno i valori precaricati per i rispettivi campi. Se non sono impostati campi di inventario, vengono utilizzate automaticamente le informazioni di inventario preesistenti.

Inoltre, l'ora dell'ultimo aggiornamento per i campi dell'inventario sottoposti a override verrà reimpostata sull'ora della chiamata al metodo.

CreateProduct con inventario precaricato

PROTO

{
  parent: "projects/123/locations/global/catalogs/default_catalog/branches/default_branch"
  product_id: "p123"
  product: {
    name: "projects/123/locations/global/catalogs/default_catalog/branches/default_branch/products/p123"
    title: "some product"
    type: VARIANT
  }
}

In questo esempio, il prodotto creato non ha impostato alcun campo inventario, il che significa che tutte le informazioni sull'inventario precaricate verranno utilizzate automaticamente se aggiornate utilizzando i metodi di aggiornamento dell'inventario. Ciò può essere utile quando gli aggiornamenti dell'inventario sono separati dagli aggiornamenti del catalogo e vuoi che un Product appena creato si sincronizzi con le informazioni sull'inventario preesistenti.

CreateProduct con inventario esplicito

PROTO

{
  parent: "projects/123/locations/global/catalogs/default_catalog/branches/default_branch"
  product_id: "p123"
  product: {
    name: "projects/123/locations/global/catalogs/default_catalog/branches/default_branch/products/p123"
    title: "some product"
    type: VARIANT
    availability: OUT_OF_STOCK
    fulfillment_info: {
      type: "pickup-in-store"
    }
    fulfillment_info: {
      type: "same-day-delivery"
    }
  }
}

In questo esempio, viene creato un Product con campi dell'inventario impostati in modo esplicito. Questi campi sovrascriveranno tutti i valori preesistenti, ignorando l'ora dell'ultimo aggiornamento per i campi corrispondenti. Pertanto, il nuovo Product avrà la disponibilità impostata su OUT_OF_STOCK e nessun ID luogo supporterà i tipi di evasione "pickup-in-store" e "same-day-delivery".

CreateProduct con informazioni sull'inventario può essere utile se non hai la certezza che tutte le informazioni sull'inventario precaricate siano accurate e preferisci impostare esplicitamente l'inventario al momento della creazione di Product per sincronizzare completamente il catalogo e l'inventario.

UpdateProduct

Il metodo UpdateProduct può essere utilizzato per aggiornare attributi specifici di un elemento di catalogo esistente. Questa operazione può essere eseguita per uno o più campi contemporaneamente e per singoli prodotti o utilizzando il metodo di importazione per più prodotti. Se utilizzi il metodo di importazione senza la maschera, viene eseguita una sovrascrittura.

UpdateProduct viene spesso utilizzato per gli aggiornamenti in tempo reale di prezzo e disponibilità, ma può essere utilizzato per aggiornare qualsiasi campo senza dover inviare nuovamente tutti i dati di un prodotto. (in contrasto con createMethod o importProducts).

Il vantaggio principale dell'utilizzo di UpdateProduct è che si tratta di una richiesta sincrona. Gli aggiornamenti dell'indice (e della ricerca o dei consigli) sono quasi istantanei. Tuttavia, UpdateProduct non è pensato per essere utilizzato per aggiornamenti molto frequenti. La quota predefinita è di 12.000 richieste di scrittura di prodotti al minuto. In genere, è consigliabile utilizzare questo metodo solo quando il prezzo di un articolo cambia o se lo stato delle scorte cambia (non per ogni diminuzione della quantità).

UpdateProduct può modificare solo gli attributi a livello di prodotto. Non può essere utilizzato per modificare nessuno degli attributi dell'inventario locale per localInventories o fulfillmentInfo.

Quando effettui una chiamata con UpdateProduct o ImportProducts, è importante specificare il parametro updateMask. updateMask contiene un elenco dei campi da aggiornare. Verranno aggiornati solo i campi specificati in updateMask, anche se nel corpo della richiesta vengono passati più campi. Se non è presente alcun updateMask per una richiesta di aggiornamento o importazione, tutti i campi vengono aggiornati esattamente con i dati inviati nel corpo della richiesta.

Quando viene richiamato UpdateProduct e la maschera del campo UpdateProductRequest.update_mask contiene campi dell'inventario, i valori forniti in UpdateProductRequest.product sovrascriveranno i valori precaricati per i rispettivi campi.

Inoltre, l'ora dell'ultimo aggiornamento per i campi dell'inventario sottoposti a override verrà reimpostata sull'ora della chiamata al metodo.

PROTO

{
  product: {
    name: "projects/123/locations/global/catalogs/default_catalog/branches/default_branch/products/p123"
    availability: IN_STOCK
    fulfillment_info: {
      type: "pickup-in-store"
      place_ids: "store0"
      place_ids: "store1"
      place_ids: "store2"
      place_ids: "store3"
    }
    fulfillment_info: {
      type: "same-day-delivery"
    }
  }
  update_mask: {
    paths: "availability"
    paths: "fulfillment_info"
  }
}

Questo esempio è molto simile all'esempio SetInventory, tranne per il fatto che l'aggiornamento viene applicato indipendentemente dall'ora dell'ultimo aggiornamento di ogni campo dell'inventario.

  • UpdateProduct per l'inventario può essere utile quando è necessaria una sincronizzazione completa delle informazioni sull'inventario ignorando le protezioni dei timestamp.

  • Se imposti UpdateProductRequest.allow_missing su true per eseguire un upsert Product, puoi precaricare le informazioni sull'inventario utilizzando UpdateProduct. Il metodo richiede l'impostazione di campi del catalogo specifici, come UpdateProductRequest.product.title. Pertanto, utilizza i metodi di aggiornamento dell'inventario per i casi d'uso del precaricamento.

DeleteProduct

Quando viene richiamato DeleteProduct, tutte le informazioni di inventario esistenti per il prodotto specificato in DeleteProductRequest.name verranno eliminate, inclusi tutti i record dell'ora dell'ultimo aggiornamento per ogni campo dell'inventario.

Considerazioni se sostituisci gli attributi a livello di prodotto con quelli a livello di inventario

Tieni presente le seguenti considerazioni e limitazioni associate a ciascun approccio:

Funzionalità Inventario a livello di prodotto Inventario a livello di negozio (locale)
Controlli di filtro e aumento della visibilità della ricerca
Formato della chiave di filtro e sfaccettatura specificato in facetSpec No
Disponibile per i filtri di ricerca No
Restituito nella risposta alla ricerca Sì (utilizzando variantRollupKeys)
Filtri e controlli di aumento di Recommendations AI v2 No
Funzionalità Inventario a livello di prodotto Inventario a livello di negozio (locale)
Controlli di filtro e aumento della ricerca
Formato della chiave di filtro e sfaccettatura specificato in facetSpec
Disponibile per i filtri di ricerca
Restituito nella risposta della ricerca (utilizzando variantRollupKeys)
Filtri e controlli di aumento di Recommendations AI v2

Esiste una certa sovrapposizione nella funzionalità dei diversi metodi di aggiornamento della disponibilità, dell'evasione e del prezzo locale dei prodotti:

Funzionalità UpdateProduct setInventory addLocalInventories
Aggiornamenti in tempo reale
Aggiorna i campi del prodotto
Aggiornare il prezzo del prodotto
Aggiornare la disponibilità del prodotto
Aggiornamento fulfillmentInfo
Aggiornamento localInventories (prezzi locali)
Sequenza di timestamp

Esempi

Questa sezione mostra come aggiornare l'inventario dei prodotti utilizzando i metodi UpdateProduct e setInventory nei comandi curl.

  • UpdateProduct utilizza il metodo HTTP PATCH dell'API REST per aggiornamenti sincroni in tempo reale dei campi a livello di prodotto, come prezzo e disponibilità, e può essere utilizzato anche per aggiornamenti batch utilizzando il metodo import con un updateMask.

  • Il metodo asincrono setInventory viene mostrato per l'aggiornamento dei campi dell'inventario a livello di prodotto (prezzo, disponibilità, quantità) e dei dettagli di evasione locale utilizzando fulfillmentInfo, ma non può modificare i prezzi locali o gli attributi memorizzati in localInventories.

Utilizza UpdateProduct per aggiornare il prezzo e la disponibilità del prodotto

Quando utilizzi l'API REST, UpdateProduct utilizza il metodo HTTP PATCH. Lo stesso URL endpoint di CreateProduct, GetProduct, DeleteProduct utilizza rispettivamente i metodi HTTP PUT, GET e DELETE. Espandi i seguenti link per visualizzare i rispettivi esempi di curl.

Utilizza setInventory per aggiornare il prezzo e la disponibilità del prodotto

setInventory supporta solo i seguenti campi:

  • availability
  • availableQuantity
  • priceInfo

Espandi i seguenti link per visualizzare i rispettivi esempi di curl.

Per l'inventario locale, i tipi placeIds e di evasione degli ordini possono essere passati in fulfillmentInfo, come dimostrato in questo esempio di curl:

Tutorial

Utilizza questi tutorial per scoprire come utilizzare setInventory o per aggiungere o rimuovere i completamenti.

Tutorial sulla configurazione dell'inventario

Questo tutorial mostra come eseguire il push degli aggiornamenti dell'inventario utilizzando il metodo SetInventory invece di aggiornare l'intero prodotto.


Per seguire le indicazioni dettagliate per questa attività direttamente nell'editor di Cloud Shell, fai clic su Procedura guidata:

Procedura guidata


Tutorial sull'aggiunta di fulfillment

Ti consigliamo di utilizzare il metodo AddLocalInventories anziché AddFulfillmentPlaces. AddLocalInventories ottiene gli stessi risultati, ma offre un controllo più granulare sull'importazione dei dati di inventario locale. Per saperne di più, consulta la documentazione di AddLocalInventories.

Questo tutorial mostra come aggiornare le informazioni di evasione degli ordini dei prodotti utilizzando il metodo AddFulfillmentPlaces. In questo modo, la ricerca può mostrare gli aggiornamenti in cui i prodotti sono disponibili e gli ordini possono essere evasi. Ad esempio, un acquirente sta cercando jeans blu in un negozio, ma non sono disponibili. Nel momento in cui i jeans tornano disponibili in questo negozio o in qualsiasi altro negozio, l'acquirente vede gli aggiornamenti e può procedere con l'ordine.


Per seguire le indicazioni dettagliate per questa attività direttamente nell'editor di Cloud Shell, fai clic su Procedura guidata:

Procedura guidata


Tutorial sulla rimozione dei luoghi di evasione degli ordini

Ti consigliamo di utilizzare il metodo RemoveLocalInventories anziché RemoveFulfillmentPlaces. RmoveLocalInventories ottiene gli stessi risultati, ma offre un controllo più granulare sull'importazione dei dati di inventario locale. Per saperne di più, consulta la documentazione di RemoveLocalInventories.

Questo tutorial mostra come aggiornare le informazioni di evasione degli ordini dei prodotti utilizzando il metodo RemoveFulfillmentPlaces. In questo modo, Vertex AI Search for Commerce può mostrare gli aggiornamenti in cui i prodotti non sono disponibili e gli ordini non possono essere evasi. In questo modo, la ricerca può mostrare aggiornamenti in cui i prodotti non sono disponibili e gli ordini non possono essere evasi. Ad esempio, un acquirente sta cercando jeans blu in un negozio. Se i jeans non sono più disponibili in questo negozio, l'acquirente lo vede e non può procedere con l'ordine.


Per seguire le indicazioni dettagliate per questa attività direttamente nell'editor di Cloud Shell, fai clic su Procedura guidata:

Procedura guidata