Mettre à jour l'inventaire pour Vertex AI Search pour le commerce

Cette page décrit les méthodes permettant de gérer les mises à jour en temps réel des prix et des quantités pour le catalogue Vertex AI Search for commerce à l'aide de l'API Retail.

Même si les méthodes CRUD (création, lecture, mise à jour et suppression) Product sont utilisées pour modifier de manière générale les attributs d'un objet Product, il existe un ensemble de méthodes Product qui peuvent être utilisées pour mettre à jour des champs spécifiques à l'inventaire avec différents niveaux de précision.

Comprendre l'inventaire

En termes généraux, l'inventaire fait généralement référence aux niveaux de stock (quantité) et au prix des articles sur un site d'e-commerce. Pour l'API Retail, inventory fait référence au prix, à la disponibilité, à la quantité disponible, aux informations sur la livraison, au prix local et aux attributs locaux supplémentaires. Ces champs sont définis dans le schéma "Product" (Produit) avec les champs suivants :

Inventaire au niveau des produits

Pour les marchands de sites d'e-commerce qui ne disposent que d'un catalogue en ligne, inventory est généralement représenté par les produits du catalogue uniquement. Le prix, la disponibilité et toutes les autres données sont définis pour chaque entrée Produit du catalogue. Les champs fulfillmentInfo et localInventories ne sont pas utilisés.

Inventaire en magasin

Pour les marchands qui possèdent plusieurs établissements, les produits sont toujours représentés par les entrées de produit dans le catalogue. Toutefois, l'inventaire en magasin (prix, disponibilité et traitement) peut être ajouté aux établissements (placeId) pour un produit avec la méthode addLocalInventories.

Deux champs "Product" distincts sont utilisés pour l'inventaire en magasin : Product.fulfillmentInfo et Product.localInventories. Vous pouvez utiliser l'un ou l'autre, ou les deux, selon les exigences. fulfillmentInfo et localInventories sont des listes de lieux avec des données associées.

fulfillmentInfo indique comment un produit est livré dans un magasin donné, tandis que localInventories indique le prix et d'autres attributs personnalisés pour chaque magasin.

Pour marquer un produit comme étant en rupture de stock ou plus disponible dans un magasin spécifique, la méthode removeLocalInventories est utilisée pour supprimer fulfillment et inventory d'un produit pour un placeId spécifique.

Méthodes de mise à jour de l'inventaire

Les modifications d'informations d'inventaire d'un produit peuvent survenir beaucoup plus fréquemment que les modifications de ses informations de catalogue. De ce fait, un ensemble de méthodes spécialisées est fourni pour gérer de grands volumes de mises à jour spécifiques à l'inventaire. Ces méthodes sont asynchrones en raison des optimisations en aval qui permettent d'accepter des centaines de mises à jour simultanées par produit, sans compromis sur les performances.

Mises à jour incrémentielles

Suivez le guide de mise à jour de l'inventaire en magasin pour effectuer des mises à jour incrémentielles de l'inventaire. Les nouvelles méthodes d'API offrent un contrôle plus précis des attributs d'inventaire par lieu.

fulfillment_info est souvent utilisé pour encoder la disponibilité de fulfillment au niveau du lieu pour un Product. Dans certains cas, la disponibilité de la livraison pour certains lieux spécifiques peut changer. Vous pouvez décider de publier des mises à jour décrivant cette modification plutôt que d'utiliser la méthode UpdateProduct pour spécifier à nouveau l'intégralité des informations de traitement du produit.

Dans ce cas, les méthodes AddFulfillmentPlaces et RemoveFulfillmentPlaces peuvent être utilisées pour mettre à jour de manière incrémentielle les modifications de fulfillment d'un produit en fonction des ID de lieu qui sont ajoutés ou supprimés pour un type de fulfillment donné.

Java

Pour savoir comment installer et utiliser la bibliothèque cliente pour Vertex AI Search pour le commerce, consultez Bibliothèques clientes Vertex AI Search pour le commerce. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI Search for Commerce pour Java.

Pour vous authentifier auprès de Vertex AI Search pour le commerce, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

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
  }
  

Cet exemple AddFulfillmentPlacesRequest ajoute le type de fulfillment "pickup-in-store" aux ID de lieu "store0" et "store1" pour le produit spécifié. Étant donné que AddFulfillmentPlacesRequest.allow_missing est défini sur "true", même si le produit n'existe pas déjà, les informations d'inventaire mises à jour seront stockées pour être utilisées une fois le produit créé. La mise à jour est horodatée par AddFulfillmentPlacesRequest.add_time afin d'empêcher les mises à jour obsolètes d'ignorer l'état de fulfillment pour ces ID de lieu. Ces fonctionnalités sont décrites plus en détail dans les sections suivantes.

Le comportement de RemoveFulfillmentPlacesRequest est identique et le schéma est très similaire.

Lorsque fulfillment_types est mis à jour par AddLocalInventories et RemoveLocalInventories, il reflète un mappage de chaque ID de lieu à une liste des types de fulfillment qu'il prend en charge. Lorsque fulfillment_info est mis à jour par AddFulfillmentPlaces et RemoveFulfillmentPlaces, il reflète un mappage de chaque type de fulfillment spécifique à une liste d'ID de lieu compatibles avec chaque type. Les deux types d'API modifient les mêmes informations de traitement sous-jacentes, et l'effet des deux types d'API est reflété par Product.fulfillment_info.

Mises à jour non incrémentielles

Les méthodes price_info, availability et available_quantity ne peuvent pas être mises à jour de manière incrémentielle, car elles représentent l'inventaire au niveau du produit plutôt que des informations au niveau du lieu. Il peut également être judicieux de publier des mises à jour non incrémentielles sur fulfillment_info. Il est recommandé d'utiliser SetInventory plutôt que d'effectuer uniquement des modifications incrémentielles.

La méthode setInventory est le moyen privilégié de mettre à jour le prix, la disponibilité et la quantité au niveau du produit lorsque de nombreuses mises à jour fréquentes sont nécessaires. La méthode setInventory étant asynchrone, les mises à jour peuvent ne pas se produire immédiatement. Le quota par défaut (300 000 requêtes par minute) est beaucoup plus élevé que UpdateProduct.

De plus, la méthode setInventory est utilisée pour les mises à jour des traitements locaux lorsque fulfillmentInfo est inclus dans la requête, mais elle ne peut pas mettre à jour les champs localInventories. Pour ces attributs, utilisez les méthodes addLocalInventories et removeLocalInventories.

L'inventaire en magasin est enregistré au niveau du magasin, indépendamment du catalogue. Pour les clients disposant d'un inventaire en ligne et hors connexion, le catalogue de produits principal peut être utilisé pour l'inventaire en ligne ou un placeId spécifique (-1 ou online, par exemple) peut être utilisé pour représenter l'inventaire en ligne. Toutefois, utilisez le catalogue principal pour l'inventaire en ligne, car les champs d'inventaire des produits doivent être renseignés avec des valeurs priceInfo et availability valides. Si un placeId d'inventaire distinct est utilisé pour le canal en ligne, les informations sur le prix et la disponibilité du catalogue principal doivent également être tenues à jour. Pour en savoir plus sur les mises à jour de l'inventaire en magasin, consultez Mettre à jour l'inventaire en magasin.

Java

Pour savoir comment installer et utiliser la bibliothèque cliente pour Vertex AI Search pour le commerce, consultez Bibliothèques clientes Vertex AI Search pour le commerce. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI Search for Commerce pour Java.

Pour vous authentifier auprès de Vertex AI Search pour le commerce, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

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
  }
  

Dans cette requête spécifique, les champs SetInventoryRequest.product.fulfillment_info sont des descriptions complètes des ID de lieu éligibles pour chaque type de fulfillment plutôt que des spécifications incrémentielles. La mise à jour de "same-day-delivery" indique qu'aucun ID de lieu n'est éligible pour ce type de fulfillment pour ce produit. Tous les autres types de fulfillment ne sont pas mis à jour dans cette requête. Cette méthode peut donc être utilisée pour remplacer les ID de lieu pour un sous-ensemble de types de fulfillment, tout en laissant les autres types intacts.

Par défaut, SetInventory met à jour tous les champs d'inventaire si SetInventory.set_mask n'est pas défini ou est vide. Si le masque n'est pas vide ou si un champ d'inventaire n'est pas explicitement répertorié dans SetInventoryRequest.set_mask, toute valeur spécifiée pour ce champ d'inventaire sera ignorée dans la requête de mise à jour.

Comme pour les mises à jour incrémentielles, le champ SetInventoryRequest.set_time peut être utilisé pour définir une heure de mise à jour qui sera comparée à la dernière heure de mise à jour enregistrée de tous les champs d'inventaire mis à jour.

Protections d'horodatage pour les mises à jour d'inventaire

Il existe plusieurs chemins pour mettre à jour les champs d'inventaire d'un produit. Pour se protéger contre les mises à jour désordonnées, chaque champ d'inventaire est associé à une heure de dernière mise à jour.

L'heure de dernière mise à jour est enregistrée pour price_info, availability, available_quantity et chaque paire de (fulfillment_info.place_ids, fulfillment_info.type).

Les méthodes AddFulfillmentPlaces, RemoveFulfillmentPlaces et SetInventory permettent à l'appelant de spécifier une heure de mise à jour pour le moment où la requête est émise. Cette heure de mise à jour est comparée à l'heure de dernière mise à jour enregistrée pour les champs d'inventaire concernés. La mise à jour n'est validée que si elle est strictement postérieure à l'heure de dernière mise à jour.

Par exemple, supposons que l'ID de lieu "store1" dispose du type de fulfillment "pickup-in- store", avec T comme heure de dernière mise à jour enregistrée. Si RemoveFulfillmentPlacesRequest.type = "pickup-in-store" et RemoveFulfillmentPlacesRequest.place_ids contiennent "store1", la requête effacera "pickup-in-store" de "store1" si et seulement si RemoveFulfillmentPlacesRequest.remove_time est postérieur à T. Il en va de même pour AddFulfillmentPlacesRequests.

SetInventory fonctionne de la même manière pour mettre à jour price_info, availability et available_quantity. Lors de la mise à jour de fulfillment_info, une requête SetInventoryRequest demande implicitement d'ajouter tous les ID de lieu spécifiés pour un type de fulfillment donné et de supprimer tous les ID de lieu existants non spécifiés.

Lorsque le SetInventoryRequest est traité, la mise à jour de fulfillment_info est implicitement convertie en AddFulfillmentPlacesRequest et RemoveFulfillmentPlacesRequest pour chaque type de fulfillment spécifié. Cela signifie que si un emplacement existant "store1" avec le fulfillment "pickup-in-store" a une date et une heure de dernière mise à jour T plus récentes que SetInventoryRequest.set_time, l'ajout ou la suppression implicite sur "store1" et "pickup-in-store" ne sera pas appliqué.

Attributs de préchargement

setInventory est asynchrone, ce qui signifie qu'aucun contrôle taxonomique ou référentiel n'est appliqué lors de l'ajout ou de la modification de champs d'inventaire. Cette méthode ne nécessite pas que le produit référencé dans la demande existe déjà.

Les clients peuvent ainsi implémenter des modèles de préchargement, ce qui permet de dissocier la gestion des champs d'inventaire du processus principal d'importation du catalogue ou des produits. Par exemple, les utilisateurs peuvent importer le contexte de disponibilité ou de prix avant d'importer le produit associé.

Chacune des méthodes de mise à jour d'inventaire permet à l'appelant de définir allow_missing dans la requête. Lorsque allow_missing est défini sur "true", une mise à jour d'inventaire vers un Product inexistant est traitée comme si l'objet Product existait et conformément aux spécifications de la méthode. Les informations d'inventaire sont conservées pendant deux jours au maximum si la valeur Product correspondante n'est pas créée à l'aide de CreateProduct dans ce délai.

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;
}

Quand utiliser les méthodes Product

Bien qu'il soit possible de mettre à jour les champs d'inventaire avec les méthodes CRUD de produit, l'appelant doit bien comprendre les effets d'une telle modification sur les informations d'inventaire existantes ou préexistantes.

Ces méthodes sont synchrones, ce qui signifie que les optimisations en aval utilisées pour les méthodes d'inventaire ne s'appliquent pas et qu'il peut s'avérer coûteux de s'appuyer sur ces méthodes pour des mises à jour d'inventaire fréquentes. Dans la mesure du possible, préférez l'utilisation des méthodes de mise à jour d'inventaire mentionnées ci-dessus.

CreateProduct

Lorsque CreateProduct est appelé avec un ou plusieurs champs d'inventaire définis, les valeurs fournies dans CreateProductRequest.product remplacent les valeurs préchargées pour ces champs respectifs. Si aucun champ d'inventaire n'est défini, toutes les informations d'inventaire préexistantes sont automatiquement utilisées.

En outre, l'heure de la dernière mise à jour des champs d'inventaire remplacés est réinitialisée sur l'heure de l'appel de méthode.

CreateProduct avec un inventaire préchargé.

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
  }
}

Dans cet exemple, aucun champ d'inventaire n'est défini pour le produit créé. Cela signifie que les informations d'inventaire préchargées seront automatiquement utilisées si ont été mises à jour à l'aide des méthodes de mise à jour d'inventaire. Cela peut être utile lorsque les mises à jour d'inventaire sont découplées des mises à jour de catalogue et que vous souhaitez synchroniser Product avec des informations d'inventaire préexistantes.

CreateProduct avec un inventaire explicite.

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"
    }
  }
}

Dans cet exemple, un objet Product est créé avec des champs d'inventaire explicitement définis. Ces champs remplacent les valeurs préexistantes, en ignorant la dernière heure de mise à jour pour les champs correspondants. Ainsi, la disponibilité de l'objet Product nouvellement créé sera définie sur OUT_OF_STOCK, et aucun ID de lieu ne sera compatible avec les types de fulfillment "pickup-in-store" et "same-day-delivery".

CreateProduct avec les informations d'inventaire peut être utile si vous ne savez pas si toutes les informations d'inventaire préchargées sont exactes et que vous préférez définir explicitement l'inventaire au moment de la création deProduct pour synchroniser entièrement le catalogue et l'inventaire.

UpdateProduct

La méthode UpdateProduct permet de mettre à jour des attributs spécifiques d'un article de catalogue existant. Vous pouvez le faire pour un ou plusieurs champs à la fois, et pour des produits individuels ou en utilisant la méthode d'importation pour plusieurs produits. Si vous utilisez la méthode d'importation sans masque, les données sont écrasées.

UpdateProduct est souvent utilisé pour mettre à jour le prix et la disponibilité en temps réel, mais il peut servir à modifier n'importe quel champ sans avoir à renvoyer toutes les données d'un produit. (contrairement à createMethod ou importProducts).

Le principal avantage de l'utilisation de UpdateProduct est qu'il s'agit d'une requête synchrone. Les mises à jour de l'index (et de la recherche ou des recommandations) sont presque instantanées. Toutefois, UpdateProduct n'est pas destiné à être utilisé pour des mises à jour très fréquentes. Le quota par défaut est de 12 000 requêtes d'écriture de produits par minute. En général, vous ne devez utiliser cette méthode que lorsque le prix d'un article change ou si l'état du stock change (et non pour chaque diminution de quantité).

UpdateProduct ne peut modifier que les attributs au niveau du produit. Il ne peut pas être utilisé pour modifier les attributs d'inventaire en magasin pour localInventories ou fulfillmentInfo.

Lorsque vous effectuez un appel avec UpdateProduct ou ImportProducts, il est important de spécifier le paramètre updateMask. updateMask contient la liste des champs à mettre à jour. Seuls les champs spécifiés dans updateMask seront mis à jour, même si d'autres champs sont transmis dans le corps de la requête. Si aucun updateMask n'est présent dans une requête de mise à jour ou d'importation, tous les champs sont mis à jour avec les valeurs exactes envoyées dans le corps de la requête.

Lorsque UpdateProduct est appelé et que le masque de champ UpdateProductRequest.update_mask contient des champs d'inventaire, les valeurs fournies dans UpdateProductRequest.product remplacent les valeurs préchargées pour ces champs respectifs.

En outre, l'heure de la dernière mise à jour des champs d'inventaire remplacés est réinitialisée sur l'heure de l'appel de méthode.

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"
  }
}

Cet exemple est très semblable à l'exemple SetInventory, à ceci près que la mise à jour s'applique, quelle que soit l'heure de la dernière mise à jour de chaque champ d'inventaire.

  • UpdateProduct pour l'inventaire peut être utile lorsque vous devez synchroniser des informations d'inventaire en ignorant les protections d'horodatage.

  • En définissant UpdateProductRequest.allow_missing sur true pour effectuer une insertion Product, vous pouvez précharger les informations d'inventaire à l'aide de UpdateProduct. Cette méthode nécessite de définir des champs de catalogue spécifiques, comme UpdateProductRequest.product.title. Par conséquent, utilisez les méthodes de mise à jour d'inventaire pour les cas d'utilisation de préchargement.

DeleteProduct

Lorsque DeleteProduct est appelé, toutes les informations d'inventaire existantes pour le produit spécifié dans DeleteProductRequest.name sont supprimées, y compris tous les enregistrements de l'heure de dernière mise à jour pour chaque champ d'inventaire.

Points à prendre en compte si vous remplacez des attributs au niveau du produit par des attributs au niveau de l'inventaire

Tenez compte des points et des limites suivants associés à chaque approche :

Fonctionnalité Inventaire au niveau des produits Inventaire en magasin (local)
Filtre de recherche et commandes d'amplification Oui Oui
Format de clé de filtre et de facette spécifié dans facetSpec Oui Non
Facettes de recherche disponibles Oui Non
Renvoi dans la réponse de recherche Oui Oui (avec variantRollupKeys)
Filtres et commandes d'amplification de Recommendations AI v2 Oui Non
Fonctionnalité Inventaire au niveau des produits Inventaire au niveau du magasin (local)
Commandes de filtrage et d'amplification de la recherche
Format de clé de filtre et de facette spécifié dans facetSpec
Facettes de recherche disponibles
Renvoi dans la réponse de recherche (avec variantRollupKeys)
Filtres et commandes d'amplification de Recommendations AI v2

Les fonctionnalités des différentes méthodes de mise à jour de la disponibilité des produits, du traitement des commandes et du prix en magasin se chevauchent en partie :

Fonctionnalité UpdateProduct setInventory addLocalInventories
Mises à jour en temps réel
Modifier les champs d'un produit
Mettre à jour le prix d'un produit
Mettre à jour la disponibilité des produits
Mettre à jour fulfillmentInfo
Mettre à jour localInventories (prix en devise locale)
Séquençage des codes temporels

Exemples

Cette section explique comment mettre à jour l'inventaire des produits à l'aide des méthodes UpdateProduct et setInventory dans les commandes curl.

  • UpdateProduct utilise la méthode HTTP PATCH de l'API REST pour mettre à jour de manière synchrone et en temps réel les champs au niveau du produit, comme le prix et la disponibilité. Il peut également être utilisé pour les mises à jour par lot à l'aide de la méthode import avec un updateMask.

  • La méthode asynchrone setInventory est présentée pour mettre à jour les champs d'inventaire au niveau du produit (prix, disponibilité, quantité) et les informations de traitement en magasin à l'aide de fulfillmentInfo, mais elle ne peut pas modifier les prix ni les attributs en magasin stockés dans localInventories.

Utilisez UpdateProduct pour mettre à jour le prix et la disponibilité d'un produit.

Lorsque vous utilisez l'API REST, UpdateProduct utilise la méthode HTTP PATCH. La même URL de point de terminaison que CreateProduct, GetProduct et DeleteProduct utilise respectivement les méthodes HTTP PUT, GET et DELETE. Développez les liens suivants pour afficher les exemples curl correspondants.

Utilisez setInventory pour mettre à jour le prix et la disponibilité d'un produit.

setInventory n'accepte que les champs suivants :

  • availability
  • availableQuantity
  • priceInfo

Développez les liens suivants pour afficher les exemples curl correspondants.

Pour l'inventaire en magasin, placeIds et les types de fulfillment peuvent être transmis dans fulfillmentInfo, comme le montre cet exemple curl :

Tutoriels

Utilisez ces tutoriels pour découvrir comment utiliser setInventory ou ajouter ou supprimer des expéditions.

Configurer l'inventaire

Ce tutoriel explique comment envoyer des mises à jour de l'inventaire à l'aide de la méthode SetInventory au lieu de mettre à jour l'intégralité du produit.


Pour obtenir des instructions détaillées sur cette tâche directement dans l'éditeur Cloud Shell, cliquez sur Visite guidée :

Visite guidée


Ajouter des lieux de traitement

Nous vous recommandons d'utiliser la méthode AddLocalInventories plutôt que AddFulfillmentPlaces. AddLocalInventories permet d'obtenir les mêmes résultats, mais offre un contrôle plus précis sur l'ingestion des données d'inventaire en magasin. Pour en savoir plus, reportez-vous à la documentation AddLocalInventories.

Ce tutoriel explique comment mettre à jour les informations de traitement des produits à l'aide de la méthode AddFulfillmentPlaces. La recherche peut ainsi afficher les mises à jour indiquant où les produits sont disponibles et où les commandes peuvent être traitées. Par exemple, un client recherche un jean bleu dans un magasin, mais il n'y en a plus en stock. Dès que le jean est à nouveau en stock dans cette boutique ou dans une autre, l'acheteur voit les mises à jour et peut passer sa commande.


Pour obtenir des instructions détaillées sur cette tâche directement dans l'éditeur Cloud Shell, cliquez sur Visite guidée :

Visite guidée


Supprimer des lieux de traitement

Nous vous recommandons d'utiliser la méthode RemoveLocalInventories plutôt que RemoveFulfillmentPlaces. RmoveLocalInventories permet d'obtenir les mêmes résultats, mais offre un contrôle plus précis sur l'ingestion des données d'inventaire en magasin. Pour en savoir plus, reportez-vous à la documentation RemoveLocalInventories.

Ce tutoriel explique comment mettre à jour les informations de traitement des produits à l'aide de la méthode RemoveFulfillmentPlaces. Vertex AI Search pour le commerce peut ainsi afficher des informations indiquant que des produits ne sont pas disponibles et que des commandes ne peuvent pas être traitées. La recherche peut ainsi afficher les mises à jour indiquant que les produits ne sont pas disponibles et que les commandes ne peuvent pas être traitées. Par exemple, un client recherche un jean bleu dans un magasin. Si le jean n'est plus en stock dans cette boutique, l'acheteur le voit et ne peut pas passer sa commande.


Pour obtenir des instructions détaillées sur cette tâche directement dans l'éditeur Cloud Shell, cliquez sur Visite guidée :

Visite guidée