오프라인 저장소로

데이터 피드를 사용하면 Ordering End-to-End에서 음식점, 서비스, 메뉴를 제공할 수 있습니다.

이 문서에서는 샌드박스 및 프로덕션 인벤토리를 호스팅하고 일괄 처리를 사용하여 주문 엔드 투 엔드에서 인벤토리를 업데이트하는 방법을 설명합니다.

데이터 피드 환경

통합 개발에 사용할 수 있는 데이터 피드 환경은 세 가지입니다.

피드 환경 설명 오프라인 저장소로
샌드박스 피드 개발을 위한 테스트 환경입니다. 필수
프로덕션 출시하려는 인벤토리의 프로덕션 환경입니다. 필수

데이터 피드 호스팅

주문 엔드 투 엔드에서 일괄 처리를 통해 샌드박스 및 프로덕션 데이터 피드를 처리하려면 Google Cloud Storage, Amazon S3 또는 HTTPS에서 데이터 피드 파일을 사이트맵과 함께 호스팅해야 합니다.

샌드박스 및 프로덕션 환경의 데이터 피드를 별도로 호스팅하는 것이 좋습니다. 이 접근 방식을 사용하면 변경사항을 프로덕션에 배포하기 전에 샌드박스 피드 환경에서 개발 및 테스트할 수 있습니다.

예를 들어 Google Cloud Storage를 호스팅 옵션으로 사용하는 경우 다음과 같은 경로가 있습니다.

  • 샌드박스 피드: gs://foorestaurant-google-feed-sandbox/
  • 프로덕션 피드: gs://foorestaurant-google-feed-prod/

인벤토리를 호스팅하려면 다음 단계를 따르세요.

  1. 데이터 피드 파일을 생성합니다.
  2. 호스팅 솔루션을 선택합니다.
  3. 데이터 피드를 호스팅합니다.
  4. 데이터 피드 파일이 정기적으로 업데이트되는지 확인합니다. 프로덕션 데이터 피드는 매일 업데이트해야 합니다.

인벤토리 피드를 만드는 방법에 관한 자세한 내용은 Restaurant, Service, Menu 항목의 문서와 데이터 피드 만들기 섹션을 참고하세요.

데이터 피드 파일 가이드라인

여러 항목을 포함할 수 있는 각 파일은 200MB 이하여야 합니다. 최상위 항목 Restaurant, Service, Menu과 하위 항목을 합친 크기는 4MB를 초과해서는 안 됩니다.

호스팅 솔루션 선택

다음 표에는 데이터 피드를 호스팅하는 옵션과 이러한 호스트가 엔드 투 엔드 주문과 함께 작동하는 방식이 나와 있습니다.

Amazon S3 Google Cloud Storage 사이트맵이 있는 HTTPS
사용자 인증 정보 및 액세스

Google에 다음 정보를 제공합니다.

  • 액세스 키 ID
  • 보안 비밀 액세스 키
  • 프로덕션 및 샌드박스 S3 디렉터리와 marker.txt 파일의 경로입니다. 경로는 s3://로 시작해야 합니다.

S3 버킷에는 다음 정보가 포함되어야 합니다.

  • 인벤토리의 피드 파일
  • 가져오기에 사용되는 타임스탬프가 포함된 marker.txt

marker.txt 파일 예시: 2018-12-03T08:30:42.694Z

프로덕션 및 샌드박스 버킷 디렉터리와 marker.txt 파일의 경로를 Google에 제공합니다. 경로는 gs://로 시작해야 합니다.

Google 컨설턴트가 제공한 서비스 계정을 Google Cloud Storage 버킷의 리더로 추가합니다.

Google Cloud Storage (GCS)의 액세스를 제어하는 방법에 관한 자세한 내용은 Google Cloud Platform 콘솔: 버킷 권한 설정을 참고하세요.

GCS 버킷에는 다음 정보가 포함되어야 합니다.

  • 인벤토리의 피드 파일
  • 가져오기에 사용되는 타임스탬프가 포함된 marker.txt

marker.txt 파일 예시: 2018-12-03T08:30:42.694Z

Google에 다음 정보를 제공합니다.

  • 기본 인증 사용자 인증 정보입니다.
  • 프로덕션 및 샌드박스 사이트맵 경로의 경로입니다. 경로는 https://로 시작해야 합니다.
  • 프로토콜: 피드 파일을 HTTP가 아닌 HTTPS를 통해 제공해야 합니다.
  • 보안: 호스팅된 피드 파일을 기본 인증으로 보호하는 것이 좋습니다.
Google에서 가져와야 하는 파일을 파악하는 방법 버킷의 모든 파일 디렉터리 목록입니다. 버킷의 모든 파일 디렉터리 목록입니다. 사이트맵에 나열된 파일의 개별 URL입니다.
Google에서 파일을 가져올 준비가 되었다고 인식하는 방법 데이터 피드 생성을 완료한 후 marker.txt 파일을 최신 타임스탬프로 업데이트합니다. 데이터 피드 생성을 완료한 후 marker.txt 파일을 최신 타임스탬프로 업데이트합니다. 데이터 피드 생성을 완료한 후 sitemap.xml의 응답 헤더 last-modified를 최신 타임스탬프로 업데이트합니다.
파일 한도

최대 파일 수: 100,000개

Amazon S3 버킷에 총 100,000개 미만의 파일이 있어야 합니다.

최대 파일 수: 100,000개

Google Cloud Storage 버킷에 총 100,000개 미만의 파일이 있어야 합니다.

최대 파일 수: 100,000개

사이트맵 XML 파일 내의 파일 경로 수는 100,000개 미만이어야 합니다.

일괄 처리를 위해 데이터 피드 연결

피드를 호스팅한 후에는 Actions Center에서 피드를 프로젝트에 연결해야 합니다. 프로덕션 피드의 초기 구성은 온보딩 태스크 페이지에서 이루어집니다. 나중에 관리 역할이 있는 포털 사용자는 언제든지 구성 > 피드 페이지에서 프로덕션 및 샌드박스 피드 구성을 업데이트할 수 있습니다. 샌드박스 환경은 개발 및 테스트 목적으로 사용되며 프로덕션 피드는 사용자에게 표시됩니다.

Amazon S3로 데이터 피드를 호스팅하는 경우

  1. 작업 센터에서 구성 > 피드로 이동합니다.
  2. 수정을 클릭하고 피드 업데이트 양식을 작성합니다.

    • 피드 전송 방법: Amazon S3로 설정합니다.
    • 마커 파일: marker.txt 파일의 URL을 입력합니다.
    • 데이터 파일: 데이터 피드가 포함된 S3 버킷의 URL을 입력합니다.
    • 액세스 ID: S3 리소스에서 읽을 수 있는 권한이 있는 IAM 액세스 키 ID를 입력합니다.
    • 액세스 키: S3 리소스에서 읽을 수 있는 권한이 있는 IAM 보안 비밀 액세스 키를 입력합니다.
  3. 제출을 클릭합니다.
  4. 1~2시간 후에 일괄 처리 처리에서 피드 파일을 가져오는지 확인합니다.

Google Cloud Storage로 데이터 피드를 호스팅하는 경우

  1. 작업 센터에서 구성 > 피드로 이동합니다.
  2. 수정을 클릭하고 피드 업데이트 양식을 작성합니다.

    • 피드 전송 방법: Google Cloud Storage로 설정합니다.
    • 마커 파일: marker.txt 파일의 URL을 입력합니다.
    • 데이터 파일: 데이터 피드가 포함된 GCS 버킷의 URL을 제공합니다.
  3. 제출을 클릭합니다.
  4. GCS 버킷에 액세스하기 위한 서비스 계정이 생성됩니다. 계정 이름은 온보딩 작업이 완료된 후 구성 > 피드에서 확인할 수 있습니다. 이 서비스 계정에는 'Storage Legacy Object Reader' 역할이 필요합니다. 이 역할은 Google Cloud 콘솔의 IAM 페이지에서 서비스 계정에 부여할 수 있습니다.
  5. 1~2시간 후에 일괄 처리 처리에서 피드 파일을 가져오는지 확인합니다.

HTTPS로 데이터 피드를 호스팅하는 경우

  1. 작업 센터에서 구성 > 피드로 이동합니다.
  2. 수정을 클릭하고 피드 업데이트 양식을 작성합니다.

    • 피드 전송 방법: HTTPS로 설정합니다.
    • 사이트맵 파일: sitemap.xml 파일의 URL을 입력합니다.
    • 사용자 이름: HTTPS 서버에 액세스할 사용자 이름 사용자 인증 정보를 입력합니다.
    • 비밀번호: HTTPS 서버에 액세스하는 비밀번호를 입력합니다.
  3. 제출을 클릭합니다.
  4. 1~2시간 후에 일괄 처리 처리에서 피드 파일을 가져오는지 확인합니다.

경로 예

다음 표에는 각 호스팅 옵션의 경로 예시가 나와 있습니다.

Amazon S3 Google Cloud Storage 사이트맵이 있는 HTTPS
경로 s3://foorestaurant-google-feed-sandbox/ gs://foorestaurant-google-feed-sandbox/ https://sandbox-foorestaurant.com/sitemap.xml
마커 파일 s3://foorestaurant-google-feed-sandbox/marker.txt gs://foorestaurant-google-feed-sandbox/marker.txt 해당 사항 없음

HTTPS 호스팅을 위한 사이트맵

사이트맵을 정의할 때는 다음 가이드라인을 따르세요.

  • 사이트맵의 링크는 파일 자체를 가리켜야 합니다.
  • 사이트맵에 자체 도메인 이름 대신 클라우드 제공업체에 대한 참조가 포함된 경우 URL 시작 부분(예: https://www.yourcloudprovider.com/your_id)이 일괄 작업에 대해 안정적이고 고유해야 합니다.
  • 부분적인 데이터 업로드의 경우와 같이 부분적인 사이트맵을 업로드하지 않도록 주의하세요. 이렇게 하면 Google에서 사이트맵의 파일만 처리하므로 인벤토리 수준이 떨어지고 피드 처리가 차단될 수 있습니다.
  • 사이트맵에 참조된 파일의 경로가 변경되지 않았는지 확인합니다. 예를 들어 오늘은 사이트맵에서 https://www.yourcloudprovider.com/your_id/10000.json를 참조하고 내일은 https://www.yourcloudprovider.com/your_id/20000.json를 참조하지 마세요.
사이트맵 예

다음은 데이터 피드 파일을 제공하는 sitemap.xml 파일의 예입니다.

예 1: 판매자별로 그룹화된 항목 (권장)

XML

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
 <url>
   <loc>https://your_fulfillment_url.com/restaurant_1.ndjson</loc>
   <lastmod>2018-06-11T10:46:43+05:30</lastmod>
 </url>
 <url>
   <loc>https://your_fulfillment_url.com/restaurant_2.ndjson</loc>
   <lastmod>2018-06-11T10:46:43+05:30</lastmod>
 </url>
 <url>
   <loc>https://your_fulfillment_url.com/restaurant_3.ndjson</loc>
   <lastmod>2018-06-11T10:46:43+05:30</lastmod>
 </url>
</urlset>

예 2: 유형별로 그룹화된 항목

XML

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
 <url>
   <loc>https://your_fulfillment_url.com/restaurant.json</loc>
   <lastmod>2018-06-11T10:46:43+05:30</lastmod>
 </url>
 <url>
   <loc>https://your_fulfillment_url.com/menu.json</loc>
   <lastmod>2018-06-11T10:46:43+05:30</lastmod>
 </url>
 <url>
   <loc>https://your_fulfillment_url.com/service.json</loc>
   <lastmod>2018-06-11T10:46:43+05:30</lastmod>
 </url>
</urlset>

데이터 피드 업데이트

데이터 피드가 연결되면 Google에서는 1시간마다 한 번 업데이트를 확인하지만 marker.txt 또는 sitemap.xml 파일이 수정된 경우에만 모든 데이터 피드를 처리합니다. 비활성 인벤토리를 방지하려면 하루에 한 번 데이터 피드를 업데이트하는 것이 좋습니다.

데이터 피드가 수정되었으며 일괄 처리할 준비가 되었음을 지정하려면 marker.txt 파일의 last-modified 객체 메타데이터 필드 (GCP 및 S3의 경우) 또는 sitemap.xml 파일의 last-modified 응답 헤더를 업데이트합니다. Google은 이러한 값을 사용하여 데이터 피드의 최신성을 판단합니다.

일괄 피드가 처리되는 동안

  • 현재 주문 엔드 투 엔드 인벤토리에 없고 오류가 없는 새 항목이 삽입됩니다.
  • 인벤토리에 이미 존재하며 처리 시 오류가 없고 현재 항목보다 최신 dateModified가 있거나 dateModified가 없는 경우 피드 처리 시작 시간이 현재 항목보다 최신인 항목은 업데이트됩니다. 그렇지 않으면 비활성으로 표시됩니다.
  • 피드에 파일 수준 오류가 없는 경우 이전 피드의 일부였으나 더 이상 처리 중인 일괄 피드에 포함되지 않은 항목은 삭제됩니다.

타임스탬프 또는 last-modified 응답 헤더는 모든 데이터 피드 파일이 생성되고 업데이트된 후에만 업데이트해야 합니다. 데이터 피드를 업데이트하는 일괄 작업이 하루에 한 번만 실행되도록 제한합니다. 또는 각 일괄 작업 사이에 3시간 이상의 간격을 두세요. 이 단계를 수행하지 않으면 Google에서 오래된 파일을 가져올 수 있습니다.