Carga de archivos CSV por SFTP
Los comerciantes que elijan alimentar a Rappi con datos de inventario actualizados mediante la transferencia de archivos CSV necesitan comprender la autenticación, las convenciones de archivos y esquema indicados en este documento.
Quienes se integren con nuestra API de inventario pueden encontrar un desglose completo del esquema de autenticación y el esquema de carga JSON en la documentación de la especificación de la API.
Autenticación SFTP
Utiliza las credenciales de autenticación (nombre de usuario-contraseña) proporcionadas por tu TAM en cada carga de archivo.
Carpeta de destino
Siempre transfiere tus archivos CSV de inventario a la carpeta uploads
en el servidor SFTP.
Convenciones de archivo
Para que Rappi ingiera exitosamente tus datos de inventario, cada archivo CSV DEBE cumplir con las siguientes convenciones:
Los archivos no deben incluir datos de tiendas múltiples.
Los nombres de los archivos deben seguir la convención
<store_id> _ <unix_time> .csv
. Para más información sobrestore_id
, consulta la sección Tu lista de tiendas de la guía de integración.
El Tiempo Unix se usa ampliamente en sistemas operativos y formatos de archivo. Representa el número de segundos que han transcurrido desde el 1 de enero de 1970.
Esta marca de tiempo identifica cuándo el proceso ETL creó el archivo CSV. Rappi aprovecha esto para asegurarse de que los datos de inventario más actualizados siempre se apliquen a su catálogo orientado al cliente.
Los nombres de los archivos siempre se deben ser añadidos con la extensión
.csv
.Los archivos siempre deben usar codificación UTF-8.
La primera fila de cada archivo siempre debe llevar los nombres de las columnas.
Consulta la sección del esquema de datos para obtener información sobre las columnas obligatorias y opcionales.
Los nombres de las columnas siempre deben estar en minúsculas.
Siempre utiliza
;
(punto y coma) para separar las columnas.Pon entre comillas TODOS los valores string (es decir, valores de texto), por ejemplo: "ejemplo".
Siempre utiliza
.
(punto) como separador decimal.
Un archivo de ejemplo está disponible aquí: inventory-upload-example.csv
Esquema de datos
Hay siete columnas obligatorias que siempre deben pasarse en el archivo CSV. Estas están marcadas con la etiqueta required
en todo el esquema.
store_id
required
string
- Un identificador generado por el comerciante para la tienda que tiene actualizado su inventario.
- Si tienes varias tiendas, aplica un identificador único a cada una de ellas.
- Nuestro motor de ingestión de datos asigna tu
store_id
con los que Rappi maneja internamente. Si deseas agregar una nueva tienda, primero comunícate con tu gerente de cuenta, para manejar todas las disposiciones internas para permitir que la nueva tienda se incluya en nuestra aplicación.
id
required
string
- El id único de cada producto, usualmente el identificador de SKU.
- Gestionado internamente por los comerciantes.
- Es posible que nuestro motor de ingestión de datos ignore los ID que no se hayan incluido previamente en su catálogo principal (siempre comunícate con tu gerente de cuentas para agregar nuevos productos a tu catálogo principal).
ean
required
string
- El EAN (o UPC) de un producto; comúnmente conocido como el código de barras del producto.
- La columna
ean
se puede ser usada para crear un ID de producto único para paquetes de SKU individual, usando el formato<ean> _ <quantity>
(en esos casos, debes pasar unid
(ID de producto) diferente para el paquete, no el SKU original).
El siguiente ejemplo ilustra un escenario de paquete:
id | ean | price | |
---|---|---|---|
id | ean | price | |
hwtz | 7896009760433 | 6.99 | |
hwtz_3 | 7896009760433 | 18.88 |
name
required
string
- El nombre del producto.
sale_type
required
string
- Esta columna indica cómo el producto es vendido.
- Utiliza "U" para los productos vendidos por unidades o "WW" para los vendidos por peso en kilogramos (Kg).
stock
required
integer
- La cantidad de producto disponible para la venta.
price
required
number
- El precio regular de un producto.
- Hay una columna opcional para pasar precios temporalmente rebajados.
Descuentos
Tres columnas controlan los descuentos (rebajas). Si desea rebajar un producto, entonces se deben completar las tres columnas (es decir, son obligatorias).
discount_price
number
- Este es el precio de venta temporal del producto.
discount_start_at
string, format: date
- Esta es la fecha de inicio del descuento; utilice siempre el formato de fecha ISO 8601
AAAA-MM-DD
discount_end_at
string, format: date
- Esta es la fecha de finalización del descuento. Se aplica la misma convención para el formato de cadena de fecha.
Optional columns
is_available
boolean
- Este interruptor indica si el producto debe publicarse en la aplicación independientemente de sus existencias.
Rappi usa
is_available
dentro de sus propios sistemas. Rappi lo completa de acuerdo con un conjunto de reglas que incluyen factores como el recuento de existencias proporcionado en la columnastock
.Rappi puede aplicar un nivel de seguridad de existencias para reducir el riesgo de desabastecimiento, por ejemplo, el stock actual de una marca de pasta de dientes es de 3 unidades, pero se ha asignado un nivel de seguridad de existencias de 5 a esa tienda. Este SKU puede mostrarse en la aplicación con una advertencia de existencias agotadas o bajas.
El nivel de seguridad de existencias es un factor con el que se puede llegar a un acuerdo con tu TAM. Es posible que los comerciantes más grandes con mecanismos sofisticados de control de existencias no requieran dicha configuración. También se adopta un enfoque conservador de estimación de existencias durante las promociones.
category_first_level
string
- Esta es la categoría principal para listar el producto.
category_second_level
string
- Esta es la categoría secundaria para listar el producto
image_url
string
- Una URL públicamente accesisble de una imagen de producto.