El blog de LiveCommerce

Un blog de comercio electrónico y tiendas online

Cómo conectar Lovecherry a tu tienda online sin dolores de cabeza

Una de las tareas más pesadas en e-commerce siempre es la misma: enlazar el catálogo de un proveedor con tu tienda. Los ficheros suelen llegar en CSV, cada uno con sus propias reglas: columnas con nombres distintos, el stock en un archivo separado, categorías jerárquicas que no encajan a la primera… un pequeño laberinto.

En este artículo te muestro cómo hacerlo con Lovecherry. Da igual si usas ShopinCloud, Prestashop o cualquier otra plataforma: lo que verás es la lógica básica para poner orden y no perderte en el intento.

1. Categorías: ordenar el árbol

Lovecherry entrega un CSV con las categorías, pero las columnas vienen con nombres como id categoria o id padre . Lo primero es renombrarlas a algo claro, tipo id y parent_id. Con eso puedes reconstruir fácilmente el árbol jerárquico con una función sencilla.

El resultado: un diccionario en el que cada categoría sabe quién es su madre y cuál es su nombre. Así, cuando cargues los productos, tu cliente verá que un Body encaje está en Lencería > Bodies y no perdido en un listado de números.

2. Productos y stock: unir piezas

Aquí viene otra parte clave. Los productos van en un CSV y el stock en otro. Para complicarlo un poco más, el stock puede depender de combinaciones de talla o color.

Si no unes bien esos dos ficheros, te encontrarás con productos sin stock o stock que no sabes a qué variante pertenece.

La solución es clara: haz un join por idProducto y idCombinacion. Así cada producto se enriquece con el stock real que le corresponde.

3. Dar sentido al producto

Cuando ya tienes producto + stock, toca añadir la categoría principal. Lovecherry mete varias en un campo separado por #. Lo práctico es quedarte con la primera como principal y después añadirle el nombre de esa categoría para que tu sistema lo entienda.

Al final tendrás un JSON ordenado con campos básicos: idProducto, nombre, precio, stock, category_id y category.

4. Ejemplo de salida

[
  {
    "idProducto": "12345",
    "nombre": "Body encaje Luna",
    "precio": 29.95,
    "stock": 14,
    "category_id": "12",
    "category": "Lencería > Bodies"
  },
  {
    "idProducto": "12346",
    "nombre": "Lubricante Aloe 100ml",
    "precio": 7.90,
    "stock": 120,
    "category_id": "22",
    "category": "Bienestar > Lubricantes"
  }
]

No es el JSON real, pero sirve para visualizar lo que deberías conseguir.

5. Errores típicos y cómo evitarlos

  • Encoding: a veces los acentos se rompen. Forza UTF-8.
  • Columnas que cambian de nombre: hoy es “Id producto”, mañana “id producto”. Ten un mapa de alias preparado.
  • Categorías vacías: pon una por defecto (Uncategorized) y evitas errores.
  • Stock nulo: si no hay datos, decide si lo interpretas como 0 o lo dejas vacío.
  • Archivos enormes: procesa por partes o usa caché.

6. Checklist rápido

  • Variables de entorno para las URLs de Lovecherry (nunca hardcodees).
  • Cachear los CSV para no descargarlos una y otra vez.
  • Validar precios y stocks (que sean números reales).
  • Guardar logs: cuántos productos entran y cuántos se descartan.

7. ¿Y ahora qué?

Con el JSON limpio ya puedes:

  • Importar productos en tu tienda.
  • Pasarlos a una cola de procesos en segundo plano.
  • Filtrar categorías que no te interesen.
  • Aplicar reglas de márgenes o impuestos.

Lo bueno es que este patrón no se limita a Lovecherry. Con pequeños ajustes (URLs y nombres de columna) sirve para cualquier otro proveedor que use CSV.

Para terminar

Trabajar con proveedores externos siempre pasa por lo mismo: normalizar datos, unir CSV y acabar con una estructura limpia. Si controlas esos tres pasos, tu tienda —sea ShopinCloud o cualquier otra— funcionará sin sobresaltos.

Ejemplo en código con Shopping Cloud

{% set file = 'URL_CATEGORIAS' %}
{% set csvCategories = sh().read_csv(file) %}
{% set csvCategories = sh().arrays_replace_key("id categoria","id",csvCategories) %}
{% set csvCategories = sh().arrays_replace_key("id padre","parent_id",csvCategories) %}

{% set categoriesPaths = sh().buildTreeInOneLevel(csvCategories, 2, 'parent_id', 'id', 'nombre') %}

{% set file = 'URL_PRODUCTOS' %}
{% set csvProducts = sh().read_csv(file) %}

{% set file = 'URL_STOCK' %}
{% set csvStocks = sh().read_csv(file) %}
{% set csvStocks = sh().arrays_replace_key("Id producto","idProducto",csvStocks) %}
{% set csvStocks = sh().arrays_replace_key("Id combinacion","idCombinacion",csvStocks) %}

{% set csvProducts = sh().unionArraysByKeys(csvProducts, csvStocks, ['idProducto','idCombinacion']) %}
{% set newData = [] %}
{% for row in csvProducts%}
    {% set categoryID = row.categorias|split('#')|first%}
    {% set newItem = row|merge({'category_id':categoryID,'category': categoriesPaths[categoryID]['nombre'] }) %}
    {% set newData = newData|merge([newItem]) %}
{% endfor %}

{{ newData|json_encode }}

Conecta Lovecherry a tu tienda online sin complicaciones y empieza a vender más.

Compártelo:

¿Tienes alguna consulta?

Si tienes alguna pregunta o sabes la respuesta sobre algún comentario, no dudes en contribuir.
Responderemos rápidamente.
Puedes utilizar etiquetas BBCode para escribir negrita, enlaces, imágenes, etc...
Más información en la página oficial de BBCOde http://www.bbcode.org/ Ejemplo:
[url=http://google.com]links[/url], [color=red]colores[/color] [b]negrita[/b]...

¿Has visto los videos en nuestro canal de Youtube?

En nuestro canal de Youtube publicamos periódicamente mejoras y funcionalidades del software de ecommerce .