Introdução ao Retail Search - Como importar um catálogo de produto

 Como dito antes, o Retail Search usa a API Retail do GCP.

Abaixo iremos mostrar o passo-a-passo de como importar o catalogo de produtos utilizando o Merchant Center, Cloud Storage ou o BigQuery.

É importante mencionar que todos os passos iniciam-se na opção Retail no console do GCP:



Cenário 1 - Merchant Center

Caso a empresa que deseja utilizar o retail search e seu catálogo de produtos esteja no Merchant Center é preciso seguir os passos abaixo:

  1. Clique em Importar catálogo de produtos para abrir o painel Importar dados.
  1. Escolha Catálogo de produtos.
  1. Selecione Merchant Center Sync como sua fonte de dados.
  1. Selecione sua conta do Merchant Center.
  1. Selecione a ramificação para fazer o upload do catálogo.
  1. Clique em Importar.


Cenário 2 - Cloud Storage

Caso a empresa que deseja utilizar o retail search e seu catálogo de produtos esteja no Cloud Storage é preciso seguir os passos abaixo:

  1. Clique em Importar catálogo de produtos para abrir o painel Importar dados.
  1. Escolha Catálogo de produtos como fonte de dados.
  1. Selecione a ramificação para fazer o upload do catálogo.
  1. Escolha Esquema de catálogos de produtos de varejo como o esquema.
  1. Insira o local dos seus dados no Cloud Storage (bucket e pasta).
  1. Clique em Importar.


Cenário 3 - BigQuery

Caso a empresa que deseja utilizar o retail search e seu catálogo de produtos esteja no BigQuery é preciso seguir os passos abaixo:

  1. Clique em Importar catálogo de produtos para abrir o painel Importar dados.
  1. Escolha Catálogo de produtos.
  1. Selecione BigQuery como origem de dados.
  1. Selecione a ramificação para fazer o upload do catálogo.
  1. Escolha um dos seguintes esquemas:
    • Esquema de catálogos de produtos de varejo: o esquema nessa opção é semelhante ao json abaixo:
    [
      {
        "name": "name",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "id",
        "type": "STRING",
        "mode": "REQUIRED"
      },
      {
        "name": "type",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "primaryProductId",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "collectionMemberIds",
        "type": "STRING",
        "mode": "REPEATED"
      },
      {
        "name": "gtin",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "categories",
        "type": "STRING",
        "mode": "REPEATED"
      },
      {
        "name": "title",
        "type": "STRING",
        "mode": "REQUIRED"
      },
      {
        "name": "brands",
        "type": "STRING",
        "mode": "REPEATED"
      },
      {
        "name": "description",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "languageCode",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "attributes",
        "type": "RECORD",
        "mode": "REPEATED",
        "fields": [
          {
            "name": "key",
            "type": "STRING",
            "mode": "NULLABLE"
          },
          {
            "name": "value",
            "type": "RECORD",
            "mode": "NULLABLE",
            "fields": [
              {
                "name": "text",
                "type": "STRING",
                "mode": "REPEATED"
              },
              {
                "name": "numbers",
                "type": "FLOAT",
                "mode": "REPEATED"
              },
              {
                "name": "searchable",
                "type": "BOOLEAN",
                "mode": "NULLABLE"
              },
              {
                "name": "indexable",
                "type": "BOOLEAN",
                "mode": "NULLABLE"
              }
            ]
          }
        ]
      },
      {
        "name": "tags",
        "type": "STRING",
        "mode": "REPEATED"
      },
      {
        "name": "priceInfo",
        "type": "RECORD",
        "mode": "NULLABLE",
        "fields": [
          {
            "name": "currencyCode",
            "type": "STRING",
            "mode": "NULLABLE"
          },
          {
            "name": "price",
            "type": "FLOAT",
            "mode": "NULLABLE"
          },
          {
            "name": "originalPrice",
            "type": "FLOAT",
            "mode": "NULLABLE"
          },
          {
            "name": "cost",
            "type": "FLOAT",
            "mode": "NULLABLE"
          },
          {
            "name": "priceEffectiveTime",
            "type": "STRING",
            "mode": "NULLABLE"
          },
          {
            "name": "priceExpireTime",
            "type": "STRING",
            "mode": "NULLABLE"
          }
        ]
      },
      {
        "name": "rating",
        "type": "RECORD",
        "mode": "NULLABLE",
        "fields": [
          {
            "name": "ratingCount",
            "type": "INTEGER",
            "mode": "NULLABLE"
          },
          {
            "name": "averageRating",
            "type": "FLOAT",
            "mode": "NULLABLE"
          },
          {
            "name": "ratingHistogram",
            "type": "INTEGER",
            "mode": "REPEATED"
          }
        ]
      },
      {
        "name": "expireTime",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "ttl",
        "type": "RECORD",
        "mode": "NULLABLE",
        "fields": [
          {
            "name": "seconds",
            "type": "INTEGER",
            "mode": "NULLABLE"
          },
          {
            "name": "nanos",
            "type": "INTEGER",
            "mode": "NULLABLE"
          }
        ]
      },
      {
        "name": "availableTime",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "availability",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "availableQuantity",
        "type": "INTEGER",
        "mode": "NULLABLE"
      },
      {
        "name": "fulfillmentInfo",
        "type": "RECORD",
        "mode": "REPEATED",
        "fields": [
          {
            "name": "type",
            "type": "STRING",
            "mode": "NULLABLE"
          },
          {
            "name": "placeIds",
            "type": "STRING",
            "mode": "REPEATED"
          }
        ]
      },
      {
        "name": "uri",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "images",
        "type": "RECORD",
        "mode": "REPEATED",
        "fields": [
          {
            "name": "uri",
            "type": "STRING",
            "mode": "REQUIRED"
          },
          {
            "name": "height",
            "type": "INTEGER",
            "mode": "NULLABLE"
          },
          {
            "name": "width",
            "type": "INTEGER",
            "mode": "NULLABLE"
          }
        ]
      },
      {
        "name": "audience",
        "type": "RECORD",
        "mode": "NULLABLE",
        "fields": [
          {
            "name": "genders",
            "type": "STRING",
            "mode": "REPEATED"
          },
          {
            "name": "ageGroups",
            "type": "STRING",
            "mode": "REPEATED"
          }
        ]
      },
      {
        "name": "colorInfo",
        "type": "RECORD",
        "mode": "NULLABLE",
        "fields": [
          {
            "name": "colorFamilies",
            "type": "STRING",
            "mode": "REPEATED"
          },
          {
            "name": "colors",
            "type": "STRING",
            "mode": "REPEATED"
          }
        ]
      },
      {
        "name": "sizes",
        "type": "STRING",
        "mode": "REPEATED"
      },
      {
        "name": "materials",
        "type": "STRING",
        "mode": "REPEATED"
      },
      {
        "name": "patterns",
        "type": "STRING",
        "mode": "REPEATED"
      },
      {
        "name": "conditions",
        "type": "STRING",
        "mode": "REPEATED"
      },
      {
        "name": "retrievableFields",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "publishTime",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "promotions",
        "type": "RECORD",
        "mode": "REPEATED",
        "fields": [
          {
            "name": "promotionId",
            "type": "STRING",
            "mode": "NULLABLE"
          }
        ]
      }
    ]
    • Merchant Center: nessa opção o esquema será semelhante ao usado para importação em massa do Merchant Center para o BigQuery, em que os dados são gravados em uma tabela chamada Products_merchant_id se você estiver usando um ID do comerciante individual ou Products_aggregator_id se você estiver usando uma conta da MCA. Geralmente os campos da tabela são:

    product_data_timestamp product_id merchant_id aggregator_id offer_id title description link mobile_link image_link additional_image_links content_language target_country* feed_label channel expiration_date google_expiration_date adult age_group availability availability_date brand google_brand_id color condition custom_labels custom_labels.label_0 custom_labels.label_1 custom_labels.label_2 custom_labels.label_3 custom_labels.label_4 gender gtin item_group_id material mpn pattern price price.value price.currency sale_price sale_price.value sale_price.currency sale_price_effective_start_date sale_price_effective_end_date google_product_category google_product_category_ids google_product_category_path product_type additional_product_types destinations destinations.name destinations.status* destinations.name destinations.approved_countries destinations.pending_countries destinations.disapproved_countries issues issues.code issues.servability issues.resolution issues.attribute_name issues.destination issues.short_description issues.detailed_description issues.documentation issues.applicable_countries

  1. Insira a tabela do BigQuery em que seus dados estão localizados.
  1. Em Mostrar opções avançadas, insira o local de um bucket do Cloud Storage que será temporário para seus dados em processamento.Se não for especificado, um local padrão será usado. Se especificado, o bucket do BigQuery e do Cloud Storage precisam estar na mesma região.
  1. Clique em Importar.


Referências:

https://cloud.google.com/retail/docs/setting-up?hl=pt-br#merchant-center-sync