Transferencia por lotes

Tus feeds de datos te permiten hacer que tus restaurantes, servicios y menú estén disponibles en Pedidos de extremo a extremo.

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

Entornos de feeds de datos

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

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

Aloja feeds de datos

Para que los pedidos de extremo a extremo procesen tus feeds de datos de zona de pruebas y de producción mediante transferencia por lotes, debes alojar los archivos del feed de datos en Google Cloud Storage, Amazon S3 o HTTPS con un mapa del sitio.

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

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

  • Feed de la 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úrese de que los archivos de su 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 feed 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 exceder los 4 MB todas juntas.

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 S3 de producción y zona de pruebas, y al archivo marker.txt. La ruta de acceso debe comenzar con s3://.

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

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

Ejemplo de archivo marker.txt: 2018-12-03T08:30:42.694Z

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

Agrega la cuenta de servicio que proporcionó tu asesor 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: Configura permisos de buckets.

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

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

Ejemplo de archivo marker.txt: 2018-12-03T08:30:42.694Z

Proporciona la siguiente información a Google:

  • Credenciales para tu autenticación básica
  • Es la ruta de acceso a tus rutas de mapa del sitio de producción y 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 HTTP.
  • Seguridad: Google recomienda que protejas los archivos de tu feed alojados con la autenticación básica.
Cómo sabe Google qué archivos se deben recuperar Lista de directorios de todos los archivos en el bucket. Lista de directorios de todos los archivos en el bucket. 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 recuperarse Cuando termines de generar tus feeds de datos, actualiza el archivo marker.txt con la marca de tiempo más reciente. Cuando termines de generar tus feeds de datos, actualiza el archivo marker.txt con la marca de tiempo más reciente. Cuando termines 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 archivo en tu archivo en formato XML de 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 el Centro de Acciones. La configuración inicial de los feeds de producción se realiza en la página Tareas de integración. Los usuarios del portal con un rol administrativo pueden actualizar más adelante 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 la zona de pruebas se usa con fines de desarrollo y prueba, mientras que los feeds de producción se muestran a los usuarios.

Si alojas sus 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 entrega del feed: Configurado como Amazon S3.
    • Marker File: Proporciona la URL del archivo marker.txt.
    • Archivos de datos: Proporciona la URL al 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 desde los recursos de S3.
    • Clave de acceso: Ingresa la clave de acceso secreta de IAM con permisos para leer desde los recursos de S3.
  3. Haga clic en Enviar.
  4. Después de una o dos horas, verifica si la transferencia por lotes recupera los archivos de tu feed.

Si alojas sus feeds de datos en 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: Configurado en Google Cloud Storage.
    • Marker File: Proporciona la URL del archivo marker.txt.
    • Archivos de datos: Proporciona la URL al bucket de GCS que contiene los feeds de datos.
  3. Haga clic en Enviar.
  4. Se crea una cuenta de servicio para acceder a tu bucket de GCS. Podrás encontrar el nombre de la cuenta en Configuración > Feeds una vez que se completen las tareas de integración. Esta cuenta de servicio necesita el rol “Lector de objetos heredados de Storage”. Este rol se puede otorgar a la cuenta de servicio en la página IAM de la consola de Google Cloud.
  5. Después de una o dos horas, verifica si la transferencia por lotes recupera los archivos de tu feed.

Si alojas sus 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: Debe establecerse en 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. Haga clic en Enviar.
  4. Después de una o dos horas, verifica si la transferencia por lotes recupera los archivos de tu feed.

Rutas de ejemplo

La siguiente tabla contiene rutas de ejemplo para cada una de las opciones de hosting:

Amazon S3 Google Cloud Storage HTTPS con un mapa del sitio
Ruta de acceso 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 hosting HTTPS

Usa los siguientes lineamientos cuando definas mapas del sitio:

  • Los vínculos del mapa del sitio deben apuntar a los archivos en sí.
  • 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 exclusivo para tu trabajo por lotes.
  • Ten cuidado de no subir mapas del sitio parciales (como en el caso de una carga parcial de datos). Si lo haces, Google solo transferirá los archivos del mapa del sitio, lo que provocará que los niveles de inventario caigan y que se bloquee la transferencia del 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 tengas la referencia https://www.yourcloudprovider.com/your_id/10000.json de tu mapa del sitio hoy, sino la referencia https://www.yourcloudprovider.com/your_id/20000.json mañana.
Ejemplo de mapa del sitio

Este es un archivo sitemap.xml de ejemplo que publica 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>

Actualice sus feeds de datos

Después de conectar tus feeds de datos, Google busca actualizaciones una vez por hora, pero solo transfiere 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é inactivo.

A fin de especificar que los feeds de datos se modificaron y están listos para la transferencia por lotes, 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 utiliza estos valores para determinar qué tan actualizado es un feed de datos.

Mientras se transfiere el feed por lotes,

  • Se insertarán las entidades nuevas que no existan en tu inventario de pedidos de extremo a extremo actual y no tengan ningún error.
  • Las entidades que ya están presentes en el inventario y que no tienen errores en la transferencia y tienen un dateModified más reciente que su entrada actual o, en caso de no tener un dateModified, la hora de inicio de la transferencia del feed es más reciente que la entrada actual que 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 estén incluidas en el feed por lotes que se procesa, siempre que no haya errores a nivel de archivo en el feed.

La marca de tiempo o el encabezado de respuesta last-modified solo se deben actualizar después de que se hayan generado y actualizado 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, debes dejar un espacio de al menos tres horas entre cada trabajo por lotes. Si no sigues estos pasos, es posible que Google recupere archivos inactivos.