razhor Posted June 18, 2018 Share Posted June 18, 2018 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 More sharing options...
gusman126 Posted June 20, 2018 Share Posted June 20, 2018 (edited) 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 June 20, 2018 by gusman126 (see edit history) 1 Link to comment Share on other sites More sharing options...
razhor Posted June 20, 2018 Author Share Posted June 20, 2018 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 More sharing options...
razhor Posted June 20, 2018 Author Share Posted June 20, 2018 Una última duda, ¿Donde coloco la funcion del hook y la funcion que crea el csv? En el index.php de la ruta /admin/themes/default/template/controllers/orders/helpers/view ? Link to comment Share on other sites More sharing options...
gusman126 Posted June 20, 2018 Share Posted June 20, 2018 debes programar un modulo, dentro de la configuración del modulo le añades los hooks necesarios entre ellos , el de hookDisplayOrderConfirmation($params) 1 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now