Imagen vectorial donde aparecen diferentes herramientas de oficina

Exportar datos de facturación en Prestashop

Muchas son las personas que utilizan Prestashop para vender, pero que utilizan otros programas o plataformas para gestionar la facturación de su empresa.

Lo ideal en estos casos es tener un módulo que sincronice los datos entre ambas plataformas. Pero por desgracia no siempre es posible. Puede ser que ese módulo no exista y contratar a un desarrollador para que nos cree uno a medida puede resultar muy caro. En estos casos es cuando entra el juego el gestor SQL de Prestashop.

¿Qué es el gestor SQL de Prestashop?

El gestor SQL es una herramienta incluida en Prestashop, que podemos encontrar bajo el apartado Parámetros Avanzados > Base de datos. Gracias a esta herramienta podemos crear consultas personalizadas a la base de datos y exportar los resultados en un documento CSV de forma muy sencilla.

Si accedemos al apartado anteriormente indicado, podemos crear una nueva consulta haciendo click en el botón de la esquina superior derecha. Se nos abrirá una nueva pantalla de edición donde debemos escribir nuestra consulta SQL y ponerle un nombre identificativo. Guardamos y volveremos a la pantalla anterior donde veremos listada nuestra nueva consulta.

Hay que saber que solo podemos hacer consultas de tipo select, es decir solo podemos leer los datos de nuestra base de datos pero no podremos añadir o eliminar datos a través de esta herramienta.

¿Cómo exportamos todos los datos necesarios de una factura?

La consulta necesaria para sacar toda la información necesaria para crear una factura es bastante compleja. Por eso, os dejo a continuación una consulta con la que podréis exportar todos estos datos:

  • Referencia
  • Número de factura
  • Fecha de factura
  • Marca
  • Categoria principal
  • Cantidad
  • Precio con descuento sin impuestos
  • Porcentaje de descuento
  • Porcentaje de impuestos
  • Precio con descuento y con impuestos
  • Total sin impuestos
  • Total con impuestos
  • Nombre
  • DNI
  • Dirección de facturación
  • Provincia
  • Pais

A partir de esta consulta, podéis modificarla para sacar otros datos que necesitéis o quitar los que no necesitéis.

SELECT
o.reference 'REFERENCIA PEDIDO',
CONCAT('FA', LPAD(oi.number, 6, 0)) 'Nº FACTURA',
oi.date_add 'FECHA FACTURA',
od.product_name 'PRODUCTO',
m.name 'MARCA',
(
    SELECT GROUP_CONCAT(name)
    FROM ps_category_product cp
    LEFT JOIN `ps_category` c ON cp.id_category = c.id_category
    LEFT JOIN `ps_category_lang` cl ON cp.id_category = cl.id_category
    WHERE id_product = od.product_id AND cl.id_lang = 1 AND c.id_parent = 2
) 'FAMILIA',
cl.name 'CATEGORÍA PRINCIPAL',
(
    SELECT GROUP_CONCAT(name SEPARATOR ', ')
    FROM ps_category_product cp
    LEFT JOIN `ps_category_lang` cl ON cp.id_category = cl.id_category
    WHERE id_product = od.product_id AND cl.id_lang = 1
) 'OTRAS CATEGORÍAS',
od.product_quantity 'CANTIDAD',
CONCAT(FORMAT(od.product_price, '2', 'es_ES'), '€') 'PRECIO CON DESCUENTO SIN IVA',
CONCAT(FORMAT(od.reduction_percent, '2', 'es_ES'), '%') 'DESCUENTO',
CONCAT(FORMAT(
(
    SELECT GROUP_CONCAT(t.rate)
    FROM `ps_tax_rule` tr
    LEFT JOIN `ps_tax` t ON t.id_tax = tr.id_tax
    WHERE tr.id_tax_rules_group = od.id_tax_rules_group and tr.id_country = 6
), '2', 'es_ES'), '%') 'IVA',
CONCAT(FORMAT(od.unit_price_tax_incl, '2', 'es_ES'), '€') 'PRECIO CON DESCUENTO CON IVA',
CONCAT(FORMAT(od.total_price_tax_excl, '2', 'es_ES'), '€') 'TOTAL SIN IVA',
CONCAT(FORMAT(od.total_price_tax_incl, '2', 'es_ES'), '€') 'TOTAL CON IVA',
CONCAT(a.firstname, ' ', a.lastname) 'NOMBRE CLIENTE',
UPPER(a.dni) 'DNI',
CONCAT(a.address1, ' ', a.postcode, ' ', a.city) 'DIRECCIÓN FACTURACIÓN',
s.name 'PROVINCIA',
c.name 'PAÍS'
FROM `ps_orders` o
LEFT JOIN `ps_address` a
ON o.id_address_invoice = a.id_address
LEFT JOIN `ps_order_detail` od
ON o.id_order = od.id_order
LEFT JOIN `ps_order_invoice` oi
ON o.invoice_number = oi.number
LEFT JOIN `ps_country_lang` c
ON a.id_country = c.id_country AND c.id_lang = 1
LEFT JOIN `ps_state` s
ON a.id_state = s.id_state
LEFT JOIN `ps_product` p
ON p.id_product = od.product_id
LEFT JOIN `ps_manufacturer` m
ON p.id_manufacturer = m.id_manufacturer
LEFT JOIN `ps_category_lang` cl
ON cl.id_category = p.id_category_default AND cl.id_lang = 1
WHERE o.invoice_number != 0;

¿Quieres exportar otros tipos de datos?

En Prestashop puedes exportar fácilmente la información de productos, pedidos y clientes. En cada uno de estos apartados, veras una símbolo de «ruedita» que desplegara varias opciones, entre ellas la opción de exportar la información.

Comparte este artículo

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Artículos

Relacionados