Normalmente soy yo quien viene a traeros contenido nuevo sobre Prestashop, por lo general se trata de alguna modificación que he tenido que hacer y decido compartir con todos vosotros para mejorar cada día más las tiendas electrónicas.
Lo que traigo hoy es «novedoso» por aqui, vengo a preguntaros a vosotros. Si me venís leyendo hace tiempo habreis visto que en las entradas de Prestashop voy opinando un poco sobre cosas que echo en falta o que no me acaban de cuadrar. Pero hoy como comentaba no depende de mi, si no de vosotros, quiero saber que funcionalidad echais en falta a la hora de administrar vuestra tienda online, estoy seguro que más de una vez habeis pensado «Si tuviera tal acabaría mucho más rápido» o «Vendería un 20% más si esto funcionase de esta forma«, pues ahora es un buen momento para compartirlo. Déjame un comentario con esa nueva funcionalidad tan genial que echas de menos en Prestashop.
¡Espero vuestros comentarios!
elena
Yo hecho en falta poder hacer packs de productos pudiendo seleccionar atributos como color, talla…. Sin esto, es absurdo hacer packs de productos que los tengan.
dwalins
Hola Elena,
Es verdad que a la hora de hacer packs de productos se queda un poco corto, han ido mejorando pero aún les faltan algunas mejoras que hacer. Sigamos viendo haber como evoluciona en las próximas versiones. ¿Conoces algún módulo que mejore la creación de packs?
Juan Pablo
Hola!
Yo necesitaría un modulo para cambiar las letras aleatorias que aparecen como referencia de pedido en prestashop 1.6 por números, usaba un modulo llamado Modrefchange que hacia esto, pero era para version 1.5, te dejo el link: https://www.prestashop.com/forums/topic/218257-module-change-order-reference-using-order-id-andor-cart-id/
si sabes hacerlo mediante modificación de código también me sirve 🙂
Gracias!
dwalins
Hola!
¿Has llegado a probar este módulo en versiones nuevas? ¿Te da algún error en especial? ¿El número de referencia lo pone el modulo solo o te deja poner uno a tu gusto? Si te lo hace automaticamente según el ID de un pedido tiene un punto negativo y es que alguien(tu competencia) se puede hacer una idea bastante clara de las ventas que realizas, en versiones anteriores recuerdo que estaba así pero supongo que lo cambiarian por esto que te comento, no es que sea un problema de seguridad en si, pero estás dando información que tal vez no te interese que pueda conocer todo el mundo.
Un saludo
Juan Pablo
Hola Dwalins,
He probado el modulo en prestashop 1.6.0.14, de hecho, en esta versión no me funciona, y si, lo que hace el modulo es ponerte el ID de pedido como referencia, te da esa opción, y no encuentro otro modulo que haga lo mismo (gratuito). Tu sabrías hacer que ponga la referencia en números en lugar de letras modificando el código, si no es muy difícil?
dwalins
Hola Juan Pablo,
Como te comentaba no es una funcionalidad que me llame mucho la atención ya que puedes revelar datos que no interesan, asi que por el momento no había visto nada, pero seguramente se pueda modificar para que el módulo funcione, estoy seguro que no requerirá demasiados cambios, ¿cuando falla exactamente? ¿al instalarlo o al usarlo?
Juan Pablo
Simplemente lo instalo, marco la opción de usar ID de carrito como referencia y se guarda correctamente, pero cuando hago un pedido para probar, siguen siendo letras.. No hace el cambio. Por eso me gustaría cambiarlo.
dwalins
Hola Juan Pablo,
No lo he podido probar aún, pero parece que en el mismo foro te dan una solución, échale un vistazo a lo que comenta manu.unni en esta respuesta https://www.prestashop.com/forums/topic/218257-module-change-order-reference-using-order-id-andor-cart-id/page-18#entry1875701
Prueba y me comentas a ver si te va, y si no pues vemos a ver que se puede hacer 😉
amura
Hola! Estoy peleandome ahora mismo con el tema de los “número de pedido”. Parece que el módulo que comentais ya no existe. ¿Sabeis como se puede hacer esto ahora? Necesito formatear un número de pedido. Algo como PR001000. Gracias!
amura
Hola! Estoy peleandome ahora mismo con el tema de los «número de pedido». Parece que el módulo que comentais ya no existe. ¿Sabeis como se puede hacer esto ahora? Necesito formatear un número de pedido. Algo como PR001000. Gracias!
dwalins
Hola Amura,
¿Con que versión de PrestaShop estás trabajando? La verdad que no me he vuelto a encontrar nada asi, al principio PrestaShop te ordenaba los pedidos de una forma parecida, sin las letras pero correlativos, el problema es que de esa forma cualquiera puede saber cuantos pedidos recibe tu tienda y es una información que no todo el mundo quiere compartir. ¿El que sean en ese formato es por algún motivo en especial?
Un saludo
amura
Hola dwalins!
Gracias por responder! Estoy con prestashop 1.6.1.5. Si, he pensado en ese inconveniente que comentas, pero me lo están pidiendo así. Quieren ese formato específico por temas administrativos internos.
Y voy loca porque no consigo modificar esto.
Un saludo y gracias
amura
Hola de nuevo!
Ya lo he solucionado… No se si es la mejor forma… pero funcionando está.
Expongo mi solución por si a alguien le puede servir.
Quiero que prestashop en lugar de asignar a los pedidos una referencia alfanumérica aleatoria asigne un valor formateado, en mi caso, finalmente será S1XXX (PR1000, PR1001, PR1002…).
Para no utilizar el id del pedido (id_orders), me he creado una tabla nueva a la que he llamado por ejemplo ps_numeracion con un campo pedido donde guardo un contador, inicialmente con valor 1.
He modificado el archivo \classes\order\Order.php
Existe una función:
public static function generateReference()
{
return strtoupper(Tools::passwdGen(9, ‘NO_NUMERIC’));
}
Esta es la que genera la referencia por defecto.
La he modificado por la que sigue para crear mi referencia especifica. Esta función comprueba que no exista ya un pedido con la referencia que va a asignar y si es así porque en la asignación anterior ocurriese algún error busca la primera disponible actualizando el contador en la tabla de referencias.
public static function generateReference()
{
// return strtoupper(Tools::passwdGen(9, ‘NO_NUMERIC’));
//modifica Yolanda para que el número de pedido no sea alfanumérico
do
{
$contador = 0;
$sqlcontador = ‘select pedido from ps_numeracion’;
if ($row = Db::getInstance()->getRow($sqlcontador))
{
$contador = 1000+$row[‘pedido’];
}
$numpedido = ‘PR’.$contador;
$sql = ‘update ps_numeracion set pedido=pedido+1’;
Db::getInstance()->execute($sql);
//comprobamos si ya existe en la base de datos (puede pasar si en el mismo momento dos clientes hacen el pedido o si por error en el anterior no se ha incrementado el pedido)
$sql = «select reference from ps_orders where reference='».$numpedido.»‘»;
}
while($row = Db::getInstance()->getRow($sql));
return $numpedido;
}
Espero que sirva de ayuda a quien se encuentre en mi misma situación, al igual que espero que me corrijais errores y discutais la solución aportada.
Un saludo
dwalins
Hola Amura,
La modificación parece perfecta para lo que vas buscando la verdad. Como recomendación tal vez, aunque no se si lo has hecho, es que hagas esto en un override en lugar de en el archivo del nucleo, para que no te encuentres con una desagradable sorpresa cuando se actualice la tienda.
Un saludo
Amura
mmmmm vale! he visto en algunos foros que hablais de los override pero no sabía esto de que no se actualizan al actualizar la tienda. He programado mucho pero nunca en prestashop y no tengo muy clara la estructura todavía.
Muchas gracias, tomo nota y lo modifico.
Simplemente tengo que hacer una copia de \classes\order\Order.php en override con mis modificaciones, ¿verdad?
Gracias!
dwalins
Si, PrestaShop ignora esa carpeta al actualizar por lo que todo a salvo. Además puedes desactivarlos todos con un click desde el BO si te hiciera falta, imaginate que hay una actualización y el override entra en conflicto, pues desactivas rapidamente y ya lo solucionas.
Es casi una copia exacta pero tienes que hacer un extend de la clase para no redeclararla de nuevo, de memoria no te se decir exactamente que post es, pero si buscas override en el buscador del blog te va a aparecer seguro un ejemplo explicado de como usarlo
un saludo!!
Amura
Muchas gracias! Lo buscaré. Ayer hice la prueba con los pedidos, ya que he añadido campos a mostrar en el listado como dirección, nombre completo del cliente, teléfono… Lo tenía hecho directamente en el archivo y lo hice con un override. En un principio todo ok, me cargaba los datos que yo quería, pero al darle a ver la información del pedido, si lo hacía con el override ocurría algún error porque no la cargaba y quedaba la página en blanco, sin embargo el mismo código hecho directamente en el archivo funciona correctamente. Supongo que me dejé algo… que no encontré. Leeré más sobre el asunto y lo intentaré de nuevo.
Mil gracias!
amura
Hola!
Llevo poco tiempo tocando prestashop, pero ahora que lo hago… necesito exportar a csv los pedidos y esta opción está muy limitada en prestashop. (A no ser que exista pero no lo haya encontrado).
Puedo exportar un listado de pedidos pero no el detalle de los mismos, los productos de cada pedido.
¿Alguien sabe si esto es posible?
Un saludo!
dwalins
Hola Amura,
Pues el detalle del pedido no conozco ahora mismo nada con lo que lo puedas hacer. Tal vez haciendo una consulta en la parte de SQL y que asi te exporte todo. Dependiendo de lo que quieras desarrollar lo mismo te interesan otras alternativas, ¿has visto los webservice?
Si solo te interesa un listado quizás lo más apropiado sea eso, ejecutar una consulta SQL y que te exporte los datos que vas buscando.
Un saludo
amura
Hola!!! ¿Y sabes alguna url con info sobre cómo funciona eso en prestashop? Para hacerme yo la consulta y demás.
Lo que he pensado hacer, que tengo ya la parte desarrolla en mi sistema para cuando me llegue el csv, es en un campo del csv poner las referencias y la info que necesito de los productos separados por | para trabajar con ellos luego. Pero ahora no encuentro donde poner esto. El campo de más lo muestro, desde default/controllers/admin/AdminOrdersController.php pero no se cómo cargar los datos. Me da igual mostrarlo en el listado de pedidos o directamente en el csv, pero como el csv exporta todo lo que se muestra habia pensado que lo fácil era mostrarlo. Pero no… no me está siendo tan fácil. No sé donde meter mi query!
Mil gracias
dwalins
Hola Amura,
Yo escribí hace algún tiempo sobre el ejecutar consultas sql y exportar los resultados, puedes encontrarlo en este enlace dwalins.com/2014/ejecutar-consultas-sql-y-exportar-informes-en-el-panel-de-administracion-en-prestashop/. La entrada es de 2014 pero sigue funcionando practicamente igual
Échale un vistazo a ver si te vale y me dices.
Un saludo