Transferencia por lotes

Tus feeds de datos te permiten hacer que tu restaurante, tus servicios y tu menú estén disponibles en el sistema de pedidos de extremo a extremo.

En este documento, se explica cómo alojar tus inventarios de pruebas y producción, y usar la transferencia por lotes para actualizar tu inventario en el proceso de pedidos de extremo a extremo.

Entornos de feeds de datos

Hay tres entornos de feeds de datos disponibles para el desarrollo de tu integración:

Entorno del feed Descripción Transferencia por lotes
Zona de pruebas El entorno de prueba para el desarrollo de tu feed Obligatorio
Producción El entorno de producción para el inventario que deseas lanzar. Obligatorio

Feeds de datos de Hosting

Para que Ordering End-to-End procese tus feeds de datos de Sandbox y producción por transferencia por lotes, debes alojar tus archivos de feeds de datos en Google Cloud Storage, Amazon S3 o HTTPS con un mapa del sitio.

Te recomendamos que alojes los feeds de datos de tus entornos de zona de pruebas y producción por separado. Este enfoque te permite realizar el desarrollo y las pruebas en el entorno de tu feed de zona de pruebas antes de implementar los cambios en producción.

Por ejemplo, si usas Google Cloud Storage como opción de hosting, tendrías las siguientes rutas:

  • Feed de zona de pruebas: gs://foorestaurant-google-feed-sandbox/
  • Feed de producción: gs://foorestaurant-google-feed-prod/

Para alojar tu inventario, haz lo siguiente:

  1. Genera los archivos de tu feed de datos.
  2. Elige una solución de hosting.
  3. Aloja tus feeds de datos.
  4. Asegúrate de que los archivos de tu feed de datos se actualicen con regularidad. Los feeds de datos de producción deben actualizarse a diario.

Para obtener detalles sobre cómo crear un feed de inventario, consulta la documentación de las entidades Restaurant, Service y Menu, así como la sección Cómo crear un feed de datos.

Lineamientos sobre los archivos de feeds de datos

Cada archivo, que puede contener varias entidades, no debe superar los 200 MB. Las entidades de nivel superior Restaurant, Service y Menu, junto con sus entidades secundarias, no deben superar los 4 MB en total.

Elige una solución de hosting

En la siguiente tabla, se enumeran las opciones para alojar tus feeds de datos y cómo funcionan esos hosts con el ordenamiento de extremo a extremo:

Amazon S3 Google Cloud Storage HTTPS con un mapa del sitio
Credenciales y acceso

Proporciona la siguiente información a Google:

  • ID de clave de acceso
  • Clave de acceso secreta
  • Las rutas de acceso a los directorios de S3 de producción y zona de pruebas, y el archivo marker.txt La ruta de acceso debe comenzar con s3://.

El bucket de S3 debe incluir la siguiente información:

  • Archivos de feed de tu inventario
  • marker.txt, que contiene una marca de tiempo que se usa para la recuperación.

Archivo marker.txt de ejemplo: 2018-12-03T08:30:42.694Z

Proporciona a Google las rutas de acceso a los directorios de los buckets de producción y de zona de pruebas, y el archivo marker.txt. Las rutas de acceso deben comenzar con gs://.

Agrega la cuenta de servicio que te proporcionó tu consultor de Google como lector de tu bucket de Google Cloud Storage.

Para obtener más información sobre cómo controlar el acceso a Google Cloud Storage (GCS), consulta Google Cloud Platform Console: Cómo configurar los permisos de bucket.

El bucket de GCS debe incluir la siguiente información:

  • Archivos de feed de tu inventario
  • marker.txt, que contiene una marca de tiempo que se usa para la recuperación.

Archivo marker.txt de ejemplo: 2018-12-03T08:30:42.694Z

Proporciona la siguiente información a Google:

  • Credenciales para tu autenticación básica.
  • La ruta de acceso a los mapas del sitio de producción y de zona de pruebas. La ruta de acceso debe comenzar con https://.
  • Protocolo: Debes hacer que los archivos de tu feed estén disponibles a través de HTTPS, no de HTTP.
  • Seguridad: Google recomienda que protejas tus archivos de feed alojados con la autenticación básica.
Cómo sabe Google qué archivos se deben recuperar Es la lista de directorios de todos los archivos del bucket. Es la lista de directorios de todos los archivos del bucket. Son las URLs individuales de los archivos que se enumeran en el mapa del sitio.
Cómo sabe Google que los archivos están listos para recuperar Después de terminar de generar tus feeds de datos, actualiza el archivo marker.txt con la marca de tiempo más reciente. Después de terminar de generar tus feeds de datos, actualiza el archivo marker.txt con la marca de tiempo más reciente. Después de terminar de generar tus feeds de datos, actualiza el encabezado de respuesta last-modified de tu sitemap.xml con la marca de tiempo más reciente.
Límites de archivos

Cantidad máxima de archivos: 100,000.

Debes tener menos de 100,000 archivos en total en tu bucket de Amazon S3.

Cantidad máxima de archivos: 100,000.

Debes tener menos de 100,000 archivos en total en tu bucket de Google Cloud Storage.

Cantidad máxima de archivos: 100,000.

La cantidad de rutas de acceso de archivos dentro del archivo en formato XML del mapa del sitio debe ser inferior a 100,000.

Conecta tus feeds de datos para la transferencia por lotes

Después de alojar tus feeds, debes conectarlos a tu proyecto en Actions Center. La configuración inicial de los feeds de producción se realiza en la página Tareas de integración. Más adelante, cualquier usuario del portal con un rol administrativo puede actualizar la configuración de los feeds de producción y de la zona de pruebas desde la página Configuración > Feeds en cualquier momento. El entorno de zona de pruebas se usa para fines de desarrollo y pruebas, mientras que los feeds de producción se muestran a los usuarios.

Si alojas tus feeds de datos con Amazon S3

  1. En el Centro de acciones, ve a Configuración > Feeds.
  2. Haz clic en Editar y completa el formulario Actualizar feed:

    • Método de publicación del feed: Establece la opción en Amazon S3.
    • Archivo de marcadores: Proporciona la URL del archivo marker.txt.
    • Archivos de datos: Proporciona la URL del bucket de S3 que contiene los feeds de datos.
    • ID de acceso: Ingresa el ID de clave de acceso de IAM con permisos para leer los recursos de S3.
    • Clave de acceso: Ingresa la clave de acceso secreta de IAM con permisos para leer los recursos de S3.
  3. Haz clic en Enviar.
  4. Después de una o dos horas, verifica si la transferencia masiva recupera los archivos de tu feed.

Si alojas tus feeds de datos con Google Cloud Storage

  1. En el Centro de acciones, ve a Configuración > Feeds.
  2. Haz clic en Editar y completa el formulario Actualizar feed:

    • Método de publicación del feed: Establece la opción Google Cloud Storage.
    • Archivo de marcadores: Proporciona la URL del archivo marker.txt.
    • Archivos de datos: Proporciona la URL del bucket de GCS que contiene los feeds de datos.
  3. Haz clic en Enviar.
  4. Se crea una cuenta de servicio para acceder a tu bucket de GCS. Puedes encontrar el nombre de la cuenta en Configuración > Feeds después de completar las tareas de integración. Esta cuenta de servicio necesita el rol de “Lector de objetos heredados de almacenamiento”. Este rol se puede otorgar a la cuenta de servicio en la página de IAM de la consola de Google Cloud.
  5. Después de una o dos horas, verifica si la transferencia masiva recupera los archivos de tu feed.

Si alojas tus feeds de datos con HTTPS

  1. En el Centro de acciones, ve a Configuración > Feeds.
  2. Haz clic en Editar y completa el formulario Actualizar feed:

    • Método de publicación del feed: Establece HTTPS.
    • Archivo de mapa del sitio: Proporciona la URL del archivo sitemap.xml.
    • Nombre de usuario: Ingresa las credenciales del nombre de usuario para acceder al servidor HTTPS.
    • Contraseña: Ingresa la contraseña para acceder al servidor HTTPS.
  3. Haz clic en Enviar.
  4. Después de una o dos horas, verifica si la transferencia masiva recupera los archivos de tu feed.

Rutas de ejemplo

En la siguiente tabla, se incluyen ejemplos de rutas para cada una de las opciones de alojamiento:

Amazon S3 Google Cloud Storage HTTPS con un mapa del sitio
Ruta s3://foorestaurant-google-feed-sandbox/ gs://foorestaurant-google-feed-sandbox/ https://sandbox-foorestaurant.com/sitemap.xml
Archivo de marcador s3://foorestaurant-google-feed-sandbox/marker.txt gs://foorestaurant-google-feed-sandbox/marker.txt No aplicable

Mapas del sitio para el hosting de HTTPS

Sigue los siguientes lineamientos cuando definas los mapas de sitios:

  • Los vínculos de tu mapa del sitio deben dirigir a los archivos.
  • Si tu mapa del sitio incluye referencias a un proveedor de servicios en la nube en lugar de tu propio nombre de dominio, asegúrate de que el inicio de las URLs, como https://www.yourcloudprovider.com/your_id, sea estable y único para tu trabajo por lotes.
  • Ten cuidado de no subir mapas del sitio parciales (como en el caso de una carga de datos parcial). De lo contrario, Google solo transferirá los archivos del mapa del sitio, lo que hará que disminuyan los niveles de tu inventario y podría bloquear la transferencia de tu feed.
  • Asegúrate de que las rutas de acceso a los archivos a los que se hace referencia en el mapa del sitio no cambien. Por ejemplo, no hagas que tu mapa del sitio haga referencia a https://www.yourcloudprovider.com/your_id/10000.json hoy y, luego, a https://www.yourcloudprovider.com/your_id/20000.json mañana.
Ejemplo de mapa del sitio

Este es un ejemplo de archivo sitemap.xml que entrega archivos de feed de datos:

Ejemplo 1: Entidades agrupadas por comercios (recomendado).

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>

Ejemplo 2: Entidades agrupadas por tipos

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>

Actualiza tus feeds de datos

Una vez que se conectan tus feeds de datos, Google busca actualizaciones una vez por hora, pero solo transferimos todos los feeds de datos cuando se modifican los archivos marker.txt o sitemap.xml. Esperamos que actualices tus feeds de datos una vez al día para evitar que el inventario esté desactualizado.

Para especificar que los feeds de datos se modificaron y están listos para la transferencia masiva, actualiza el campo de metadatos del objeto last-modified del archivo marker.txt (para GCP y S3) o el encabezado de respuesta last-modified del archivo sitemap.xml. Google usa estos valores para determinar qué tan actualizados están los feeds de datos.

A medida que se transfiere el feed por lotes,

  • Se insertarán entidades nuevas que no existen en tu inventario actual de pedidos de extremo a extremo y que no tengan errores.
  • Las entidades que ya están presentes en el inventario y no tienen errores en la transferencia, y que tienen un dateModified más reciente que su entrada actual o, en el caso de no tener un dateModified, la hora de inicio de la transferencia del feed es más reciente que la entrada actual, se actualizarían. De lo contrario, se marcarían como inactivas.
  • Se borrarán las entidades que formaban parte de un feed anterior y que ya no se incluyen en el feed por lotes que se está procesando, siempre que no haya errores a nivel del archivo en el feed.

La marca de tiempo o el encabezado de respuesta last-modified solo se deben actualizar después de que se generen y actualicen todos los archivos del feed de datos. Limita los trabajos por lotes que actualizan tus feeds de datos para que se ejecuten solo una vez al día. Como alternativa, deja un intervalo de al menos tres horas entre cada trabajo por lotes. Si no sigues estos pasos, es posible que Google recupere archivos inactivos.