카탈로그 정보 관리

이 페이지에서는 소매업용 Vertex AI Search로 카탈로그를 가져온 후 제품 정보를 관리하는 방법을 설명합니다. 카탈로그에서 제품을 읽고 쓰고 삭제할 수 있습니다.

제품 정보가 변경될 때마다 카탈로그를 최신 상태로 유지하려면 카탈로그를 처음 시작할 때와 동일한 방식으로 가져오세요. 카탈로그 가져오기에 대한 도움말은 카탈로그 정보 가져오기를 참조하세요.

제품 만들기/가져오기/업데이트/삭제 튜토리얼

이 튜토리얼에서는 다음 작업을 수행하는 API 메서드를 사용하는 방법을 보여줍니다.

  • 제품 만들기
  • 제품 가져오기
  • 제품 업데이트
  • 제품 삭제

Cloud Shell 편집기에서 이 태스크의 단계별 안내를 직접 수행하려면 둘러보기를 클릭합니다.

둘러보기


제품 만들기 튜토리얼

이 튜토리얼에서는 단일 제품을 만드는 방법을 보여줍니다.


Cloud Shell 편집기에서 이 태스크의 단계별 안내를 직접 수행하려면 둘러보기를 클릭합니다.

둘러보기


제품 가져오기 튜토리얼

이 튜토리얼에서는 제품 항목을 검색하는 방법을 설명합니다.


Cloud Shell 편집기에서 이 태스크의 단계별 안내를 직접 수행하려면 둘러보기를 클릭합니다.

둘러보기


제품 업데이트 튜토리얼

이 튜토리얼에서는 카탈로그에서 제품을 업데이트하는 방법을 보여줍니다.


Cloud Shell 편집기에서 이 태스크의 단계별 안내를 직접 수행하려면 둘러보기를 클릭합니다.

둘러보기


제품 삭제 튜토리얼

이 튜토리얼에서는 카탈로그에서 제품을 삭제하는 방법을 보여줍니다.


Cloud Shell 편집기에서 이 태스크의 단계별 안내를 직접 수행하려면 둘러보기를 클릭합니다.

둘러보기


제품 업로드

curl

products.create REST 메서드를 사용하여 단일 제품 항목을 만듭니다.

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     --data '{
      "title": "PRODUCT_TITLE",
      "categories": "CATEGORY"
    }' \
    "https://retail.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products?productId=PRODUCT_ID"

요청이 성공하면 다음 예시와 같이 제품 객체가 반환됩니다.

{
  "name": "projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products/PRODUCT_ID",
  "id": "PRODUCT_ID",
  "primaryProductId": "PRODUCT_ID",
  "type": "PRIMARY",
  "categories": [
    "CATEGORY"
  ],
  "title": "PRODUCT_TITLE",
  "availability": "IN_STOCK"
}

Java

public static Product createProduct(Product productToCreate, String productId)
    throws IOException {
  return getProductServiceClient().createProduct(
      DEFAULT_BRANCH_NAME, productToCreate, productId
  );
}

제품 정보 업데이트

제품 카탈로그가 변경되면 새로운 제품, 가격, 재고 상태와 같은 제품 변경사항을 실시간으로 업로드하여 카탈로그를 새로고침할 수 있습니다. 추가되거나 변경된 제품만 업로드할 수 있습니다. 전체 카탈로그를 새로고침할 필요가 없습니다.

curl

products.patch 메서드를 사용하여 제품 정보를 업데이트합니다.

다음 예시에서는 특정 제품의 제목을 업데이트합니다.

curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
       "title": "new-title-value"
    }" \
    "https://retail.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products/PRODUCT_ID?updateMask=title"

요청이 성공하면 다음 예시와 같이 제품 객체가 반환됩니다.

{
  "name": "projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products/PRODUCT_ID",
  "id": "PRODUCT_ID",
  "primaryProductId": "PRODUCT_ID",
  "type": "PRIMARY",
  "categories": [
    "Parent category > Child category"
  ],
  "title": "new product title",
  "availability": "IN_STOCK"
}

Java

public static Product updateProduct(Product productToUpdate) throws IOException {
  return getProductServiceClient().updateProduct(productToUpdate, FieldMask.getDefaultInstance());
}

제품 정보 삭제

API는 카탈로그에서 제품을 삭제하는 방법을 제공하지만, 삭제된 제품 항목과 관련된 사용자 이벤트를 기록하면 API가 사용자 이벤트를 올바르게 처리할 수 없으며 사용자 이벤트가 삭제될 수 있다는 점을 유의하세요. 또한 이전 카탈로그 데이터를 포함하면 모델 품질이 개선되며 추천 및 검색결과에 매우 중요한 역할을 합니다.

사용되지 않는 제품의 availability를 삭제하는 대신 OUT_OF_STOCK으로 설정해야 합니다.

curl

delete 메서드를 사용하여 제품을 삭제합니다. 여기서 PRODUCT_ID를 삭제할 제품의 ID로 바꿉니다.

curl -X DELETE \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    "https://retail.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products/PRODUCT_ID"

Java

public static void deleteProduct(String productName) throws IOException {
  getProductServiceClient().deleteProduct(productName);
}

제품 항목 검색

curl

products 엔드포인트에 GET 요청을 만들어 제품 항목을 검색합니다. 여기서 PRODUCT_ID를 검색할 제품의 ID로 바꿉니다.

curl -X GET \
     -H "Authorization: Bearer $(gcloud auth application-default print-access-token)"  \
    "https://retail.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products/PRODUCT_ID"

다음과 비슷한 출력이 표시됩니다.

{
    "name": "projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products/PRODUCT_ID"
    "id": "PRODUCT_ID",
    "primaryProductId": "PRODUCT_ID",
    "type": "PRIMARY",
    "categories": [
      "Parent category > Child category"
    ],
    "title": "product title",
    "availability": "IN_STOCK"
}

Java

public static Product getProduct(String productName) throws IOException {
  return getProductServiceClient().getProduct(productName);
}

카탈로그에 대한 집계 정보 보기

Search for Retail 콘솔의 데이터 페이지에 있는 카탈로그 탭에서 카탈로그에 대한 합산 데이터를 보고 업로드된 제품을 미리 볼 수 있습니다.

카탈로그 데이터 품질 평가

카탈로그 데이터 품질을 평가하려면 다음 안내를 따르세요.

  1. Search for Retail 콘솔의 데이터 품질 페이지로 이동합니다.

    데이터 품질 페이지로 이동

    데이터 품질 페이지에서는 검색 결과 품질을 개선하고 검색 성능 등급을 잠금 해제하기 위해 카탈로그 데이터를 업데이트해야 하는지를 평가합니다.

검색 데이터 품질을 확인하고 검색 성능 등급을 보는 방법에 대한 자세한 내용은 검색 성능 등급 잠금 해제를 참조하세요.

사용 가능한 카탈로그 측정항목에 대한 요약은 카탈로그 품질 측정항목을 참조하세요.

제품 유형 변경

제품을 가져올 때 제품 유형이 기본인지, 변이인지, 컬렉션인지를 지정할 수 있습니다. 제품 유형이 변경되거나 잘못 지정된 경우 제품을 삭제하고 지정된 업데이트된 유형으로 만들어야 합니다.

제품의 유형은 TYPE_UNSPECIFIED, PRIMARY, VARIANT, COLLECTION으로 설정할 수 있습니다. 자세한 내용은 참조 문서의 product.Type을 확인하세요.

제품 수준 구성 변경

판매자 센터를 사용하여 카탈로그를 가져올 때 제품이 기본인지 또는 변이인지 지정해야 합니다. 이러한 제품 수준이 변경되거나 잘못 지정된 경우 아래 절차를 사용하여 구성을 수정합니다. 이 절차를 완료하려면 Retail 관리자 IAM 역할이 있어야 합니다.

  1. 제품 수준을 재구성하는 동안 가져오기가 발생하지 않도록 하세요. 그래야 데이터가 잘못된 수준에서 업로드되지 않습니다.

  2. 모든 제품 항목을 삭제합니다. products.delete를 참조하세요. 카탈로그가 완전히 비어 있어야 다음 단계를 진행할 수 있습니다.

  3. 데이터를 다시 가져와 제품 수준 구성을 변경합니다.

    이 절차는 가져오는 방식에 따라 다릅니다. 카탈로그 정보 가져오기의 적절한 절차에 따라 제품 수준을 새 구성으로 설정합니다.

  4. 카탈로그 정보 가져오기에서 선택한 절차에 따라 수정된 수준 구성으로 새 카탈로그 가져오기를 완료합니다.

  5. 모든 기존 모델을 미세 조정합니다.

    모델을 미세 조정하려면 모델 페이지로 이동하고 모델 이름을 클릭하여 세부정보 페이지를 확인한 다음 버튼 모음에서 수동 미세 조정을 클릭합니다.

    모델 페이지로 이동

    비용 미세 조정에 대한 자세한 내용은 가격 책정을 참조하세요.