Skip to content

Exportar pedidos prestashop automaticamente

Exportar cosas desde nuestros ecommerce hoy en día es una necesidad para integrar los datos en nuestro software de gestion. En el caso de prestashop, ya tiene un sistema de gestión integrado con el que podemos hacer todo lo indispensable para nuestro negocio; pero en muchas ocasiones necesitaremos un ERP a parte con el que tratar la información para ganar funcionalidades.

Además, los sistemas nos obligan a hacerlo de manera manual, por lo que una pequeña configuración extra es necesaria para hacerlo de manera automática.

En el caso de hoy, tenía la necesidad de exportar pedidos prestashop automaticamente, concretamente los pedidos de TPV, y generar un fichero en una ruta concreta a una hora determinada. Lo que se consigue con esto es que luego el ERP se conecte a la ruta, recoja el fichero, y lo importe. Os cuento cómo lo he resuelto:

Exportar pedidos prestashop automaticamente con un php

Lo primero, he generado un .php con el que extraer los datos de la base de datos de prestashop y cargarlos en un fichero, en este caso, CSV. Os lo pongo con sus comentarios, auqnue no hay mucho que explicar:

$server = "localhost";
	$db = ""; //El nombe completo de la BBDD
	$user = ""; //El usuario de BBDD
	$pass = ""; //La contraseña de la BBDD
	
	//El directorio donde quieres dejar el CSV
	$ruta = 'exportar.csv'; //Aquí el nombre y la ruta (si existe, con directorios y todo. Por ejemplo, /carpeta/exportar.csv
	
	//Seteamos el tema
	unlink($ruta); //Eliminamos lo que haya, para asegurarnos de que añadimos sólo los datos adecuados
	
	if (($archivo = fopen($ruta, "w")) !== FALSE) {
		//Empezamos la conexion
		$con = new mysqli($server, $user, $pass,$db);
		$buscar = mysqli_query($con, "SELECT O.date_upd , OD.product_id , RIGHT(OD.product_ean13,2) , OD.product_price , OD.product_quantity , O.payment FROM tpvs_orders O, tpvs_order_detail OD WHERE OD.id_order = O.id_order ORDER BY `O`.`date_upd` ASC ");
		//Fetcheamos y a cada vuelta del bucle añadimos una fila de la consulta
		while($datos = mysqli_fetch_array($buscar)){
			fputcsv($archivo, $datos, ',', ';');
		}
	}
	
	//Cerramos el archivo
	fclose($archivo);
	
	//Y liberamos la memoria y cerramos la conexión a la BBDD
	mysqli_free_result($buscar);
	mysqli_close($con);

Generar trabajo cron

Luego, tenemos que generar la tarea en el panel de control de nuestro hosting. Es simplemente un comando linux con el que decimos:

  • frecuencia de la tarea
  • hora exacta de ejecución
  • ruta de ejecución
  • el archivo concreto a ejecutar
  • y correo para notificación del Cron

Al final quedará algo así:

Exportar pedidos prestashop automaticamente

En resumen, es bastante sencillo, y yo en este caso lo he usado para Exportar pedidos prestashop automaticamente, pero podríamos cambiar la consulta y hacer cualquier otra, o hacer varios procesos… El límite está en vuestra imaginación.

Descarga

Por si acaso algún perezoso no quiere hacer el fichero, ya lo tengo hecho en un zip que, como siempre, podéis descargar fácilmente dándome un me gusta:

[sociallocker]DESCARGAR[/sociallocker]

Y tú… ¿Cómo haces para exportar automaticamente desde prestashop?

Volver arriba