En este artículo se explica cómo preparar un fichero “orders” para importarlo con Splio. Los registros de este alcance representan los pedidos realizados en tiendas (física u online), que se relacionan a los registros del alcance “ordersitems”, que representan las líneas de recibo.
Encontrarás un ejemplo de un fichero para este alcance al final del artículo.
Ten en cuenta que “orders” es uno de los alcances que se puede actualizar. Los datos existentes se pueden cambiar en futuras importaciones. Si importas un nuevo archivo de líneas de recibo vinculado a un recibo existente, este reemplazará el archivo de líneas de recibo existente (si lo hay).
Splio rechazará todos los registros "orderitem" si el pedido correspondiente aún no se ha creado.
Requisitos previos
- Conocimiento básico del formato CSV y la codificación UTF-8
- Un editor de texto UTF-8
- Un software de hoja de cálculo
- Creación de la subsecuencia para la tabla “orders” en el fichero de configuración
Preparación de un fichero de recibos
Edita el fichero de importación con tu editor de texto de UTF-8 preferido. Si es necesario, controla el número y posición de las columnas con un software de hoja de cálculo que te guste. Es la mejor herramienta para eliminar cualquier columna que no desees importar.
💡 | Recuerda guardar siempre utilizando la codificación UTF-8 sin BOM.
⚠️| Por favor, limita el tamaño del archivo a 200K.
Cabecera y columnas
La primera línea del archivo, llamada cabecera, se utiliza para determinar el contenido de las líneas siguientes. Por lo tanto, debería contener únicamente los nombres de los campos (uno por cada columna).
⚠️ | Recuerda que, si el Datahub encuentra un nombre de columna que no reconoce, no procesará el archivo.
Para el fichero “orders”, están disponibles las siguientes columnas:
Columna |
Obligatorio |
Tipo de dato / Longitud máxima |
Descripción |
order_id |
Sí |
Texto (máx. 50 caracteres) |
Identificador externo del pedido importado (el número único de un recibo). Este valor debe ser único para cada recibo. |
customer_key |
Sí |
Texto |
Clave única del contacto al cual está relacionado el recibo. |
card_code |
No |
Texto |
Código de una tarjeta loyalty, crea un vínculo entre el pedido y la tarjeta loyalty. Consulta «Recibos Loyalty» a continuación para más información. |
store_id |
Sí |
Texto (máx. 50 caracteres) |
Id externo de la tienda donde se ha hecho el pedido, creando una relación entre “orders” y “stores”. Los valores de esta columna deben referirse a tiendas ya importadas. |
order_date |
No |
Fecha |
Fecha en la que se realizó el pedido. Consulta «Fechas» a continuación para más información sobre el formato.⚠️ | Para evitar errores, rellena siempre las horas, minutos y segundos. |
shipping_amount |
No |
Decimal |
Gastos de envío en el recibo. |
discount_amount |
No |
Decimal |
Descuento total aplicado al pedido. |
tax_amount |
No |
Decimal |
Tasas totales (IVA, tasas de ventas) aplicadas al pedido. |
total_amount |
No |
Decimal |
Importe total pagado por los productos del pedido (y envío), menos el descuento. |
currency |
No |
Texto (máx. 3 caracteres) |
Código de 3 letras para la divisa del pedido; Se aplica a todos los valores de importe. Si no aparece ninguna divisa, Splio asumirá la divisa configurada por defecto en el universo. |
salesperson |
No |
Texto (máx. 120 caracteres) |
Vendedor asociado al pedido. |
c0 |
No |
|
Una o más columnas correspondientes a los campos personalizados de recibo en tu universo. Puedes incluir hasta 32 columnas denominadas “c0” a “c31”. |
📗| Ten en cuenta que todos los nombres de campos de sistema se escriben siempre en minúscula y que los nombres de los campos son case sensitive.
💡| La columna customer_key identifica los contactos en la base de datos a través de su clave única del universo Splio. Consulta Datahub - Contactos para obtener más información sobre cómo funciona.
⚠️ | Las columnas “order_id”, “customer_key” y “store_id” son obligatorias. Si el Datahub no las detecta, la importación fallará.
Ejemplo 1: Clave única por defecto
Las primeras líneas de un fichero de importación “orders” que utiliza la clave única por defecto (email de contacto) pueden aparecer así:
order_id;customer_key;store_id;order_date;total_amount;currency
"70x1bMhtt-1531745300";"misterspots@examplemail.org";"Internet";"2018-06-22 11:30:00;173.00";"EUR"
"70x1byTRJ-1531778200";"lady@examplemail.org";"Internet";"2018-06-21 12:10:00";"244.99";"EUR"
"70xb1KLio-1531723300";"8sk5k7g87@examplemail.org";"Internet";"2018-06-20 17:33:00;25.50";"EUR"
📗| Cada línea está compuesta por 6 columnas exactamente. La de “order_id” se utiliza para distinguir entre pedidos, mientra que la de “customer_key” vincula el recibo con el contacto que lo compró.
Ejemplo 2: Campo personalizado como clave única
Esto es un ejemplo de fichero de importación que utilice un campo personalizado como clave única:
order_id;customer_key;store_id;order_date;total_amount;currency
"70x1bKkUt-1531738300";"PPL000000045732";"MGZOO;2018-06-27 12:17:27;225.00";"EUR"
"70x1bKooY-1531738300";"PPL000000007633";"MGZOO;2018-06-27 12:19:23;17.00";"EUR"
"70x1bu9Gt-1531756600";"PPL000000045661";"MGZOO;2018-06-27 12:22:07;112.50";"EUR"
📗 | Esta importación es muy similar a la del Ejemplo 1: la principal diferencia es el tipo de valores de la columna “customer_key”. Debes utilizar siempre el mismo tipo de clave única como se define en tu universo Splio.
Recibos Loyalty
Puedes crear conexiones entre recibos y programas Loyalty añadiendo la columna “card_code”. El siguiente ejemplo muestra un fichero de importación con la columna “card_code”.
order_id;customer_key;store_id;card_code;order_date;total_amount;currency
72cvSYhmJ-1537635000;72RqRjczN-1537005545@nomail.xl.cx;Internet;72RqRjeki;2018-09-22 13:37:48;262.19;EUR
1562029508;72TSdyzYr-1537097372@yopmail.com;Internet;72TSdz0iy;2019-07-01 10:03:45;371.95;EUR
73XAxEvFX-1540830000;73F3Q9dzx-1539800401@mailnesia.com;Internet;73F3Q9nHM;2018-10-29 17:33:00;14.92;EUR
📗 | Los pedidos importados con un “card_code” son «recibos loyalty» (recibos vinculados a una tarjeta loyalty). Los recibos importados de esta forma aparecerán después en la sección “Loyalty” de los datos de contacto y serán procesados por las reglas configuradas en el programa Loyalty basadas en condiciones de recibo. Esto permitirá que el miembro gane puntos o rewards.
💡 | Puedes importar la columna “card_code” tanto con ficheros “orders”, como por ficheros “ordersitems” para eventos loyalty. Recuerda poner en el fichero de “ordersitems” la columna “card_code” si quieres utilizar reglas loyalty basadas en los productos presentes en los recibos.
Nombre del fichero
Para guardar tu archivo, utiliza un nombre compuesto por el nombre del universo, el alcance (“orders”), la subsecuencia y la fecha actual. Por ejemplo:
myuniverse_orders_zoo_20210225.csv
Este nombre de archivo pertenece al universo “myuniverse”, subsecuencia “zoo” definido para recibos y su fecha es el 25 de febrero de 2021.
Si deseas más información, consulta la sección «Reglas de nomenclatura de ficheros» en el articulo Datahub - Información general.
Ahora puedes subir el fichero al SFTP/FTPS.
Fechas
Todas las fechas de los ficheros de importación de tienda están compuestas por 4 dígitos para el año, 2 para el mes, y 2 para el día, seguido de las horas, minutos y segundos, 2 dígitos cada uno. Una fecha correcta para el 11 de marzo de 2021, 1:17 p.m. tiene el siguiente formato:
2021-03-11 13:17:00
El día y hora están separados por un espacio en blanco. Puedes omitir la parte de la hora y utilizar solo la fecha. Si lo haces de esta forma, Splio asumirá la hora más temprana posible del día (medianoche). Por lo tanto,
2021-03-07
será tratada exactamente como si introdujeras
2021-03-07 0:00:00
⚠️ | Usar fechas sin hora no es una opción muy recomendada: 00:00:00 es medianoche y Splio intentará procesar la fecha como tal. Esto puede causar errores y algunos triggers relacionados con las fechas fallarán. Además, todos los datos loyalty son siempre considerados como información financiera. Esto quiere decir que tú y tu empresa sois responsables de estos datos y no os podéis permitir dejar detalles al azar.
📗| Un beneficio adicional de utilizar fechas completas es que podrás buscar y filtrar por fecha con una precisión mucho mayor.
⚠️ | Al importar fechas con hora, asegúrate de que siempre utilizas franja horaria CEST.
Explicación: NULL y valores de borrado
NULL es un valor especial que informa a la base de datos de que el campo que lo contiene está vacío.
Tu universo Splio puede configurarse para interpretar los valores NULL como instrucciones para vaciar campos. Puedes utilizarlo para borrar valores almacenados en la base de datos. Para ello, asegúrate de que el valor importado es exactamente NULL. Debes evitar espacios delante o detrás: “ NULL” o “NULL ” se reconocerán como valores string.
Si esta opción no está configurada, Splio retendrá los valores para los campos en los que el valor importado sea NULL.
Diferencia entre NULL y campo vacío
“”es un string vacío. En la mayoría de los casos, tanto NULL como “” serán importados como un valor vacío.
Ten presente que el string vacío “” no es considerado como un valor NULL, por lo que no provocará el borrado del valor existente en un campo.