Jump to content

XLS o CSV automático al dar un pedido como pago aceptado


razhor

Recommended Posts

Buenos días, soy Alex, actualmente estoy llevando los pedidos del prestashop de una empresa y me piden que al igual que cuando se dá un pedido como pago aceptado crea y aparece como opción de descarga los pdf de factura y albarán, que el propio back office emita además y automáticamente un CSV o XLS con los mismos datos y los guarde en algún lugar de nuestro servidor.

He estudiado programación y desarrollo web y en teoría es fácil guardar un XLS de una consulta SQL pero no consigo entenderme con las plantillas SMARTY y la jerarquía de datos de prestashop. Me he informado mucho y he conseguido sacar una consulta y que me dé la opción de guardar el archivo a mano, mediante un enlace justo debajo de los de factura y albarán. ( poniendo la consulta en el gestor SQL y lanzándola desde este enlace )

 

Mi duda es, esto es realmente posible? Alguno podría darme algo de luz sobre este tema o aclararme cualquier cosa? Tengo un cacao muy grande y no se como tirar.

 

POSDATA: soy bastante nuevo en foros y no sé si este hilo va aquí o si no debería estar directamente,.

Link to comment
Share on other sites

Puedes usar el hook, llamas a tu funcion y ahi añades todo el codigo necesario para generar ese csv o xml

aqui un ejemplo que te ayudara ( al editar se me ha ido, vigila que llamo a la funcion makecsv, pero realmente se llama sendorder  y el punto y coma ; de la orden de //var_dump ... ";" no esta, añade si quieres usarla

 

public function  hookDisplayOrderConfirmation($params) 
    {
       
        $formadepago = $params['objOrder']->module;
       
       
       self::makecsv($params);  
       
       
        
    }
public function sendorder($params){
//var_dump($params['objOrder'])
$ref_order = $params['objOrder']->reference;
$total_productos = $params['objOrder']->total_products;
$cliente = $params['objOrder']->id_customer;
$order = $params['objOrder'];
$datoscliente = new Customer($order->id_customer); 
$addressDelivery = new Address((int)$order->id_address_delivery); 
$products = $order->getProducts(); // array de productos

}

 

Edited by gusman126 (see edit history)
  • Like 1
Link to comment
Share on other sites

1 hour ago, gusman126 said:

Puedes usar el hook, llamas a tu funcion y ahi añades todo el codigo necesario para generar ese csv o xml

aqui un ejemplo que te ayudara ( al editar se me ha ido, vigila que llamo a la funcion makecsv, pero realmente se llama sendorder  y el punto y coma ; de la orden de //var_dump ... ";" no esta, añade si quieres usarla

 


public function  hookDisplayOrderConfirmation($params) 
    {
       
        $formadepago = $params['objOrder']->module;
       
       
       self::makecsv($params);  
       
       
        
    }
public function sendorder($params){
//var_dump($params['objOrder'])
$ref_order = $params['objOrder']->reference;
$total_productos = $params['objOrder']->total_products;
$cliente = $params['objOrder']->id_customer;
$order = $params['objOrder'];
$datoscliente = new Customer($order->id_customer); 
$addressDelivery = new Address((int)$order->id_address_delivery); 
$products = $order->getProducts(); // array de productos

}

 

Me salvas la vida jaja, voy a probar a meter el código y a ver el resultado, me has dado también la gran idea de exportarlo como XML y lo estoy comentando con los jefazos, la cosa pinta bien y una muy buena solución.

 

En unas horas me dedico a probar resultados y si todo funciona marco el tema como cerrado.

 

Muchísimas gracias por tu ayuda.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...