Códigos QR en loteDesarrollo y personalización

Un script de Python que crea un código QR para cada fila de su lista, con nombre y listo para imprimir

Suele estar listo en 15 minutosCambios incluidosControl de calidad
Paquetes
Protección de pagoDetalles
  • Los cambios dentro del paquete son gratuitos.
  • Si no responde en los 3 días siguientes a la entrega, el trabajo se acepta automáticamente.

El dinero queda reservado al pagar y solo se libera cuando usted acepta el trabajo.

Un script de Python que crea un código QR para cada fila de su lista, con nombre y listo para imprimir

Ejemplo de resultado

Ejemplo del paquete Estándar

Unir los archivos de ventas mensuales de 9 tiendas en un único informe de Excel

Cómo se ejecuta

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  Carpeta: sales/2026-10, 9 archivos encontrados
2026-11-02 09:14:03 INFO  shop-01.csv: 1.284 filas
2026-11-02 09:14:04 INFO  shop-02.xlsx: 967 filas
2026-11-02 09:14:04 WARN  shop-07.csv: 3 filas sin precio omitidas (líneas 88, 412, 913)
2026-11-02 09:14:05 INFO  Listo: 10.412 filas -> report-2026-10.xlsx (hojas “Ventas” y “Totales”)

Configuración, no código

Los nombres de columna de cada tienda están en settings.ini, así que una tienda nueva o una columna renombrada es una línea ahí:

[columns]
date = Fecha, Fecha de venta, Día
product = Producto, Artículo, Nombre
quantity = Cant., Cantidad, Uds.
price = Precio, Precio unitario

Una parte del código

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """Lee el archivo de una tienda y le da los nombres de columna del informe."""
    table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
    renamed = {}
    for name, variants in columns.items():
        found = next((c for c in table.columns if c.strip() in variants), None)
        if found is None:
            raise ReportError(f"{path.name}: no hay columna para '{name}' (se buscó {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

Archivos: un archivo ZIP con merge_sales.py (310 líneas), settings.ini, requirements.txt y un README sobre cómo instalar Python, ejecutar el script y qué significa cada mensaje del registro. El cliente lo ejecuta en su propio ordenador.

Cliente: una pequeña cadena de 9 papelerías; cada tienda envía sus ventas del mes en un archivo CSV o Excel, con nombres de columna ligeramente distintos. Tarea: un único script que lea todos los archivos de una carpeta, dé a las columnas un mismo formato y genere un solo informe de Excel con todas las ventas y una hoja de totales por tienda.

El cliente y todos los datos son ficticios.

Acerca de este servicio

Tarjetones de mesa para un restaurante, etiquetas para stock o equipos, entradas, etiquetas de producto, códigos para cada página de un catálogo: cuando necesita cientos de códigos QR, crearlos uno a uno en una web es eterno. Este script de Python lee su lista (CSV o Excel) y crea un código QR para cada fila: un enlace, un texto, una tarjeta de contacto o los datos de una wifi, guardado en PNG para pantalla o en SVG para imprenta, con el nombre de una columna como el número de mesa o el SKU. Desde Estándar añade un pie y comprueba que cada código se lee correctamente; Premium los coloca en una hoja PDF de etiquetas. Son códigos estáticos: el enlace va dentro del código, así que no puede cambiarse tras imprimirlo y los escaneos no se cuentan. Escanee unos cuantos de prueba antes de imprimir muchos.

Qué incluye

  • Qué recibeUn archivo ZIP con el script de Python, un README con instrucciones paso a paso y, desde Estándar, un archivo de configuración con tamaño, colores y pies; el código también se muestra en la página del pedido.
  • Un código por filaEnlaces, textos, tarjetas de contacto o datos de wifi
  • Para pantalla o imprentaPNG del tamaño que fije, o SVG escalable
  • Nombres a su maneraArchivos con el nombre de una columna de su lista
  • Comprobación de lecturaDesde Estándar, cada código se decodifica para confirmar que coincide
  • Código legibleCon comentarios, fácil cambiar el aspecto más adelante

Cómo funciona

  1. 1
    ListaUsted envía una muestra de la lista y cómo se usarán los códigos
  2. 2
    CódigoEscribimos el script y la guía para ejecutarlo
  3. 3
    PruébeloCrea códigos para unas filas y los escanea con su móvil
  4. 4
    CambiosPide cambios dentro de su paquete y nos envía cualquier mensaje de error

Qué necesitamos de usted

10-20 filas de su lista en CSV o Excel, qué columna va dentro del código y cuál da el nombre de archivo o el pie, y dónde se usarán los códigos: pantalla, pegatina, tarjeta o cartel, con el tamaño impreso si lo sabe. Los colores si no es negro sobre blanco, su logotipo en PNG o SVG para Premium, y la disposición de la hoja de etiquetas (tamaño del papel, códigos por fila y columna). Su sistema: Windows, macOS o Linux.

Le preguntaremos:

  • ¿Para qué son los códigos?
  • ¿Qué va dentro de cada código?
  • ¿Pantalla o imprenta, y de qué tamaño?

Comparar paquetes

PaquetesBásicoCódigos desde una lista16 US$EstándarCódigos con configuración33 US$PremiumHerramienta QR67 US$
Plazo1 día2 días3 días
Cambios123
Códigohasta 150 líneashasta 400 líneashasta 1.000 líneas
Archivos de código1hasta 3hasta 8
Archivo de configuraciónNoSíSí
Mensajes de error claros y registroNoSíSí
Opciones de ejecución y guía para ejecutarlo de forma programadaNoNoSí
Guía de instalación y uso (README)SíSíSí
LenguajePythonPythonPython
Hacer pedido BásicoHacer pedido EstándarHacer pedido Premium

Protección de pago

Usted paga al hacer el pedido, pero el dinero solo se libera por un trabajo aceptado.

  • Precio fijoEl precio del paquete no cambia después del pago.
  • El dinero queda reservadoAl pagar, el importe solo queda reservado. Pasa a Dleex cuando usted acepta el trabajo.
  • Revisado antes de la entregaCada resultado pasa un control de calidad antes de llegar a usted, y lo ve en la página del pedido antes de aceptarlo.
  • Cambios gratuitosSolicite cambios dentro de su brief tantas veces como permita el paquete.
  • Aceptación a los 3 díasSi en los 3 días siguientes a la entrega no acepta el trabajo ni solicita cambios, se acepta automáticamente. Si escribe en el chat del pedido después de la entrega, el pedido queda en espera; cuando le respondamos, podremos reiniciar el plazo de 3 días y se lo indicaremos en el chat.
  • Rehacer el trabajo o reembolso totalSi el resultado no se ajusta a su brief y los cambios no lo resolvieron, o el trabajo tarda más del doble de su plazo, escriba en el chat del pedido: rehacemos el trabajo o le reembolsamos el pago íntegro.
Cómo funciona →

Preguntas y respuestas

¿Puedo cambiar adónde lleva un código tras imprimirlo?

Con estos códigos no: la dirección va dentro del propio código. Si puede que necesite cambiarla, haga que los códigos apunten a páginas de su propia web que pueda redirigir más adelante.

¿Puede contar cuántas personas han escaneado un código?

No, para contar hace falta un servidor entre el código y la página, y este script no lo tiene. Puede añadir parámetros UTM a sus enlaces y ver las visitas en la analítica de su web.

¿Es seguro poner un logotipo en el centro?

Un logotipo pequeño funciona cuando el código usa una corrección de errores alta, que Premium configura. La comprobación de lectura y un escaneo de prueba con su móvil se lo confirman.

¿Cuántos códigos puede crear?

Tantos como filas haya; miles llevan un minuto o dos en un ordenador normal.

¿No encontró su respuesta?

Paquetes