Como criar e gerenciar os recursos do produto

Depois de criar um conjunto de produtos, crie produtos para adicionar a ele. Ao criar um produto, você precisa fornecer o nome de exibição e a categoria a que ele pertence. As categorias atualmente aceitas são: homegoods-v2, apparel-v2, toys-v2, packagedgoods-v1 e general-v1 *.

Também é possível fornecer uma descrição e rótulos, ambos opcionais, para o produto. Os rótulos são pares de chave-valor que descrevem seu produto, como color=black ou style=mens. Inclua rótulos para filtrar os resultados de uma pesquisa de produto para pesquisar apenas determinadas imagens de produtos.

Como criar um produto

Use a importação on-line para criar um produto individual. Depois de criar um produto, é possível incluir uma imagem de referência nele ou adicioná-lo a um ou mais conjuntos de produtos.

REST

Antes de usar os dados da solicitação abaixo, faça estas substituições:

  • PROJECT_ID: o ID do projeto do Google Cloud .
  • LOCATION_ID: um identificador de local válido. Os identificadores de local válidos são: us-west1, us-east1, europe-west1 e asia-east1.
  • DISPLAY_NAME: um nome de exibição de string de sua escolha.
  • PRODUCT_DESCRIPTION: uma descrição de string de sua escolha.
  • product-category: uma categoria de produto válida. As seguintes categorias de produtos estão disponíveis no momento: homegoods-v2, apparel-v2, toys-v2, packagedgoods-v1 e general-v1 .
  • productLabels: um ou mais pares de chave-valor associados a um produto. Cada KEY_STRING precisa ter um VALUE_STRING associado.

Método HTTP e URL:

POST https://vision.googleapis.com/v1/projects/project-id/locations/location-id/products

Corpo JSON da solicitação:

{
  "displayName": "display-name",
  "description": "product-description",
  "productCategory": "product-category",
  "productLabels": [
      {
        "key": "key-string",
        "value": "value-string"
      }
  ]
}

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando abaixo:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://vision.googleapis.com/v1/projects/project-id/locations/location-id/products"

PowerShell

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando abaixo:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://vision.googleapis.com/v1/projects/project-id/locations/location-id/products" | Select-Object -Expand Content

Exemplo de corpo da solicitação:

{
  "displayName": "sample-product-1234",
  "description": "Athletic shorts",
  "productCategory": "apparel-v2",
  "productLabels": [
      {
        "key": "style",
        "value": "womens"
      },
      {
        "key": "color",
        "value": "blue"
      }
  ]
}

Quando a solicitação é bem-sucedida, o servidor retorna um código de status HTTP 200 OK e a resposta no formato JSON:

Será exibido um código semelhante a este. Use o ID do produto (neste caso, 37b9811d308c4e42) para realizar outras operações no produto.

{
  "name": "projects/project-id/locations/location-id/products/37b9811d308c4e42",
  "displayName": "sample-product-456",
  "description": "Athletic shorts",
  "productCategory": "apparel-v2",
  "productLabels": [
    {
      "key": "style",
      "value": "womens"
    },
    {
      "key": "color",
      "value": "blue"
    }
  ]
}

Go

Para saber como instalar e usar a biblioteca de cliente da Pesquisa de produtos da API Vision, consulte Bibliotecas de cliente da Pesquisa de produtos da API Vision. Confira mais detalhes na documentação de referência da API Go da Pesquisa de Produtos da API Vision.

Para se autenticar na Pesquisa de Produtos da API Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.


import (
	"context"
	"fmt"
	"io"

	vision "cloud.google.com/go/vision/apiv1"
	"cloud.google.com/go/vision/v2/apiv1/visionpb"
)

// createProduct creates a product.
func createProduct(w io.Writer, projectID string, location string, productID string, productDisplayName string, productCategory string) error {
	ctx := context.Background()
	c, err := vision.NewProductSearchClient(ctx)
	if err != nil {
		return fmt.Errorf("NewProductSearchClient: %w", err)
	}
	defer c.Close()

	req := &visionpb.CreateProductRequest{
		Parent:    fmt.Sprintf("projects/%s/locations/%s", projectID, location),
		ProductId: productID,
		Product: &visionpb.Product{
			DisplayName:     productDisplayName,
			ProductCategory: productCategory,
		},
	}

	resp, err := c.CreateProduct(ctx, req)
	if err != nil {
		return fmt.Errorf("CreateProduct: %w", err)
	}

	fmt.Fprintf(w, "Product name: %s\n", resp.Name)

	return nil
}

Java

Para saber como instalar e usar a biblioteca de cliente da Pesquisa de Produtos da API Vision, consulte este link. Confira mais detalhes na documentação de referência da API Java da Pesquisa de Produtos da API Vision.

Para se autenticar na Pesquisa de Produtos da API Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

/**
 * Create one product.
 *
 * @param projectId - Id of the project.
 * @param computeRegion - Region name.
 * @param productId - Id of the product.
 * @param productDisplayName - Display name of the product.
 * @param productCategory - Category of the product.
 * @throws IOException - on I/O errors.
 */
public static void createProduct(
    String projectId,
    String computeRegion,
    String productId,
    String productDisplayName,
    String productCategory)
    throws IOException {
  try (ProductSearchClient client = ProductSearchClient.create()) {

    // A resource that represents Google Cloud Platform location.
    String formattedParent = LocationName.format(projectId, computeRegion);
    // Create a product with the product specification in the region.
    // Multiple labels are also supported.
    Product myProduct =
        Product.newBuilder()
            .setName(productId)
            .setDisplayName(productDisplayName)
            .setProductCategory(productCategory)
            .build();
    Product product = client.createProduct(formattedParent, myProduct, productId);
    // Display the product information
    System.out.println(String.format("Product name: %s", product.getName()));
  }
}

Node.js

Para saber como instalar e usar a biblioteca de cliente da Pesquisa de Produtos da API Vision, consulte este link. Confira mais detalhes na documentação de referência da API Node.js da Pesquisa de Produtos da API Vision.

Para se autenticar na Pesquisa de Produtos da API Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

// Imports the Google Cloud client library
const vision = require('@google-cloud/vision');

// Creates a client
const client = new vision.ProductSearchClient();
async function createProduct() {
  /**
   * TODO(developer): Uncomment the following line before running the sample.
   */
  // const projectId = 'Your Google Cloud project Id';
  // const location = 'A compute region name';
  // const productId = 'Id of the product';
  // const productDisplayName = 'Display name of the product';
  // const productCategory = 'Catoegory of the product';

  // Resource path that represents Google Cloud Platform location.
  const locationPath = client.locationPath(projectId, location);

  const product = {
    displayName: productDisplayName,
    productCategory: productCategory,
  };

  const request = {
    parent: locationPath,
    product: product,
    productId: productId,
  };

  const [createdProduct] = await client.createProduct(request);
  console.log(`Product name: ${createdProduct.name}`);
}
createProduct();

Python

Para saber como instalar e usar a biblioteca de cliente da Pesquisa de Produtos da API Vision, consulte este link. Confira mais detalhes na documentação de referência da API Python da Pesquisa de Produtos da API Vision.

Para se autenticar na Pesquisa de Produtos da API Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

from google.cloud import vision
from google.protobuf import field_mask_pb2 as field_mask

def create_product(
    project_id, location, product_id, product_display_name, product_category
):
    """Create one product.
    Args:
        project_id: Id of the project.
        location: A compute region name.
        product_id: Id of the product.
        product_display_name: Display name of the product.
        product_category: Category of the product.
    """
    client = vision.ProductSearchClient()

    # A resource that represents Google Cloud Platform location.
    location_path = f"projects/{project_id}/locations/{location}"

    # Create a product with the product specification in the region.
    # Set product display name and product category.
    product = vision.Product(
        display_name=product_display_name, product_category=product_category
    )

    # The response is the product with the `name` field populated.
    response = client.create_product(
        parent=location_path, product=product, product_id=product_id
    )

    # Display the product information.
    print(f"Product name: {response.name}")


Linguagens adicionais

C#: siga as Instruções de configuração do C# na página das bibliotecas de cliente e acesse a documentação de referência da Pesquisa de Produtos da API Vision para .NET.

PHP: siga as Instruções de configuração do PHP na página das bibliotecas de cliente e acesse a documentação de referência da Pesquisa de Produtos da API Vision para PHP.

Ruby: Siga as Instruções de configuração do Ruby na página das bibliotecas de cliente e acesse a documentação de referência da Pesquisa de produtos da API Vision para Ruby.

Como adicionar um produto a um conjunto de produtos

Quando um produto e um conjunto de produtos estão disponíveis, é possível adicionar o produto ao conjunto.

REST

Antes de usar os dados da solicitação abaixo, faça estas substituições:

  • PROJECT_ID: o ID do projeto do Google Cloud .
  • LOCATION_ID: um identificador de local válido. Os identificadores de local válidos são: us-west1, us-east1, europe-west1 e asia-east1.
  • PRODUCT_SET_ID: o ID do conjunto de produtos no qual você quer executar a operação.
  • PRODUCT_NAME: o nome completo do recurso do produto. Formato:
    • projects/PROJECT_ID/locations/LOCATION_ID/products/PRODUCT_ID

Método HTTP e URL:

POST https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets/product-set-id:addProduct

Corpo JSON da solicitação:

{
  "product": "product-name"
}

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando abaixo:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets/product-set-id:addProduct"

PowerShell

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando abaixo:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets/product-set-id:addProduct" | Select-Object -Expand Content

Você receberá uma resposta JSON semelhante a esta:

{}

Go

Para saber como instalar e usar a biblioteca de cliente da Pesquisa de produtos da API Vision, consulte Bibliotecas de cliente da Pesquisa de produtos da API Vision. Confira mais detalhes na documentação de referência da API Go da Pesquisa de Produtos da API Vision.

Para se autenticar na Pesquisa de Produtos da API Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.


import (
	"context"
	"fmt"
	"io"

	vision "cloud.google.com/go/vision/apiv1"
	"cloud.google.com/go/vision/v2/apiv1/visionpb"
)

// addProductToProductSet adds a product to a product set.
func addProductToProductSet(w io.Writer, projectID string, location string, productID string, productSetID string) error {
	ctx := context.Background()
	c, err := vision.NewProductSearchClient(ctx)
	if err != nil {
		return fmt.Errorf("NewProductSearchClient: %w", err)
	}
	defer c.Close()

	req := &visionpb.AddProductToProductSetRequest{
		Name:    fmt.Sprintf("projects/%s/locations/%s/productSets/%s", projectID, location, productSetID),
		Product: fmt.Sprintf("projects/%s/locations/%s/products/%s", projectID, location, productID),
	}

	if err = c.AddProductToProductSet(ctx, req); err != nil {
		return fmt.Errorf("NewProductSearchClient: %w", err)
	}

	fmt.Fprintf(w, "Product added to product set.\n")

	return nil
}

Java

Para saber como instalar e usar a biblioteca de cliente da Pesquisa de Produtos da API Vision, consulte este link. Confira mais detalhes na documentação de referência da API Java da Pesquisa de Produtos da API Vision.

Para se autenticar na Pesquisa de Produtos da API Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.


/**
 * Add a product to a product set.
 *
 * @param projectId - Id of the project.
 * @param computeRegion - Region name.
 * @param productId - Id of the product.
 * @param productSetId - Id of the product set.
 * @throws IOException - on I/O errors.
 */
public static void addProductToProductSet(
    String projectId, String computeRegion, String productId, String productSetId)
    throws IOException {
  try (ProductSearchClient client = ProductSearchClient.create()) {

    // Get the full path of the product set.
    String formattedName = ProductSetName.format(projectId, computeRegion, productSetId);

    // Get the full path of the product.
    String productPath = ProductName.of(projectId, computeRegion, productId).toString();

    // Add the product to the product set.
    client.addProductToProductSet(formattedName, productPath);

    System.out.println(String.format("Product added to product set."));
  }
}

Node.js

Para saber como instalar e usar a biblioteca de cliente da Pesquisa de Produtos da API Vision, consulte este link. Confira mais detalhes na documentação de referência da API Node.js da Pesquisa de Produtos da API Vision.

Para se autenticar na Pesquisa de Produtos da API Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

const vision = require('@google-cloud/vision');
const client = new vision.ProductSearchClient();

async function addProductToProductSet() {
  /**
   * TODO(developer): Uncomment the following line before running the sample.
   */
  // const projectId = 'Your Google Cloud project Id';
  // const location = 'A compute region name';
  // const productId = 'Id of the product';
  // const productSetId = 'Id of the product set';

  const productPath = client.productPath(projectId, location, productId);
  const productSetPath = client.productSetPath(
    projectId,
    location,
    productSetId
  );

  const request = {
    name: productSetPath,
    product: productPath,
  };

  await client.addProductToProductSet(request);
  console.log('Product added to product set.');
}
addProductToProductSet();

Python

Para saber como instalar e usar a biblioteca de cliente da Pesquisa de Produtos da API Vision, consulte este link. Confira mais detalhes na documentação de referência da API Python da Pesquisa de Produtos da API Vision.

Para se autenticar na Pesquisa de Produtos da API Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

from google.cloud import vision

def add_product_to_product_set(project_id, location, product_id, product_set_id):
    """Add a product to a product set.
    Args:
        project_id: Id of the project.
        location: A compute region name.
        product_id: Id of the product.
        product_set_id: Id of the product set.
    """
    client = vision.ProductSearchClient()

    # Get the full path of the product set.
    product_set_path = client.product_set_path(
        project=project_id, location=location, product_set=product_set_id
    )

    # Get the full path of the product.
    product_path = client.product_path(
        project=project_id, location=location, product=product_id
    )

    # Add the product to the product set.
    client.add_product_to_product_set(name=product_set_path, product=product_path)
    print("Product added to product set.")


Linguagens adicionais

C#: siga as Instruções de configuração do C# na página das bibliotecas de cliente e acesse a documentação de referência da Pesquisa de Produtos da API Vision para .NET.

PHP: siga as Instruções de configuração do PHP na página das bibliotecas de cliente e acesse a documentação de referência da Pesquisa de Produtos da API Vision para PHP.

Ruby: Siga as Instruções de configuração do Ruby na página das bibliotecas de cliente e acesse a documentação de referência da Pesquisa de produtos da API Vision para Ruby.

Como remover um produto de um conjunto de produtos

Também é possível remover um produto atual de um conjunto de produtos.

REST

Antes de usar os dados da solicitação abaixo, faça estas substituições:

  • PROJECT_ID: o ID do projeto do Google Cloud .
  • LOCATION_ID: um identificador de local válido. Os identificadores de local válidos são: us-west1, us-east1, europe-west1 e asia-east1.
  • PRODUCT_SET_ID: o ID do conjunto de produtos no qual você quer executar a operação.
  • PRODUCT_NAME: o nome completo do recurso do produto. Formato:
    • projects/PROJECT_ID/locations/LOCATION_ID/products/PRODUCT_ID

Método HTTP e URL:

POST https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets/product-set-id:removeProduct

Corpo JSON da solicitação:

{
  "product": "product-name"
}

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando abaixo:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets/product-set-id:removeProduct"

PowerShell

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando abaixo:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets/product-set-id:removeProduct" | Select-Object -Expand Content

Você receberá uma resposta JSON semelhante a esta:

{}

Go

Para saber como instalar e usar a biblioteca de cliente da Pesquisa de produtos da API Vision, consulte Bibliotecas de cliente da Pesquisa de produtos da API Vision. Confira mais detalhes na documentação de referência da API Go da Pesquisa de Produtos da API Vision.

Para se autenticar na Pesquisa de Produtos da API Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.


import (
	"context"
	"fmt"
	"io"

	vision "cloud.google.com/go/vision/apiv1"
	"cloud.google.com/go/vision/v2/apiv1/visionpb"
)

// removeProductFromProductSet removes a product from a product set.
func removeProductFromProductSet(w io.Writer, projectID string, location string, productID string, productSetID string) error {
	ctx := context.Background()
	c, err := vision.NewProductSearchClient(ctx)
	if err != nil {
		return fmt.Errorf("NewProductSearchClient: %w", err)
	}
	defer c.Close()

	req := &visionpb.RemoveProductFromProductSetRequest{
		Name:    fmt.Sprintf("projects/%s/locations/%s/productSets/%s", projectID, location, productSetID),
		Product: fmt.Sprintf("projects/%s/locations/%s/products/%s", projectID, location, productID),
	}

	if err = c.RemoveProductFromProductSet(ctx, req); err != nil {
		return fmt.Errorf("NewProductSearchClient: %w", err)
	}

	fmt.Fprintf(w, "Product removed from product set.\n")

	return nil
}

Java

Para saber como instalar e usar a biblioteca de cliente da Pesquisa de Produtos da API Vision, consulte este link. Confira mais detalhes na documentação de referência da API Java da Pesquisa de Produtos da API Vision.

Para se autenticar na Pesquisa de Produtos da API Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.


/**
 * Remove a product from a product set.
 *
 * @param projectId - Id of the project.
 * @param computeRegion - Region name.
 * @param productId - Id of the product.
 * @param productSetId - Id of the product set.
 * @throws IOException - on I/O errors.
 */
public static void removeProductFromProductSet(
    String projectId, String computeRegion, String productId, String productSetId)
    throws IOException {
  try (ProductSearchClient client = ProductSearchClient.create()) {

    // Get the full path of the product set.
    String formattedParent = ProductSetName.format(projectId, computeRegion, productSetId);

    // Get the full path of the product.
    String formattedName = ProductName.format(projectId, computeRegion, productId);

    // Remove the product from the product set.
    client.removeProductFromProductSet(formattedParent, formattedName);

    System.out.println(String.format("Product removed from product set."));
  }
}

Node.js

Para saber como instalar e usar a biblioteca de cliente da Pesquisa de Produtos da API Vision, consulte este link. Confira mais detalhes na documentação de referência da API Node.js da Pesquisa de Produtos da API Vision.

Para se autenticar na Pesquisa de Produtos da API Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

const vision = require('@google-cloud/vision');

const client = new vision.ProductSearchClient();

async function removeProductFromProductSet() {
  /**
   * TODO(developer): Uncomment the following line before running the sample.
   */
  const productSetPath = client.productSetPath(
    projectId,
    location,
    productSetId
  );

  const productPath = client.productPath(projectId, location, productId);

  const request = {
    name: productSetPath,
    product: productPath,
  };

  await client.removeProductFromProductSet(request);
  console.log('Product removed from product set.');
}
removeProductFromProductSet();

Python

Para saber como instalar e usar a biblioteca de cliente da Pesquisa de Produtos da API Vision, consulte este link. Confira mais detalhes na documentação de referência da API Python da Pesquisa de Produtos da API Vision.

Para se autenticar na Pesquisa de Produtos da API Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.

from google.cloud import vision

def remove_product_from_product_set(project_id, location, product_id, product_set_id):
    """Remove a product from a product set.
    Args:
        project_id: Id of the project.
        location: A compute region name.
        product_id: Id of the product.
        product_set_id: Id of the product set.
    """
    client = vision.ProductSearchClient()

    # Get the full path of the product set.
    product_set_path = client.product_set_path(
        project=project_id, location=location, product_set=product_set_id
    )

    # Get the full path of the product.
    product_path = client.product_path(
        project=project_id, location=location, product=product_id
    )

    # Remove the product from the product set.
    client.remove_product_from_product_set(name=product_set_path, product=product_path)
    print("Product removed from product set.")


Linguagens adicionais

C#: siga as Instruções de configuração do C# na página das bibliotecas de cliente e acesse a documentação de referência da Pesquisa de Produtos da API Vision para .NET.

PHP: siga as Instruções de configuração do PHP na página das bibliotecas de cliente e acesse a documentação de referência da Pesquisa de Produtos da API Vision para PHP.

Ruby: Siga as Instruções de configuração do Ruby na página das bibliotecas de cliente e acesse a documentação de referência da Pesquisa de produtos da API Vision para Ruby.