
Peibolvig
Members-
Posts
31 -
Joined
-
Last visited
Everything posted by Peibolvig
-
Hi, I'm using prestashop version 1.5.4.1. I was asked to send a bcc email to a second address only when the order status change to payment done. I found some solutions to send a second email everytime an email is sent, but can't locate where is the test of orderStatus to send or not the secondary email. Can anyone give me some guidance please? Regards.
-
Enviar email bcc sólo cuando se acepta el pago
Peibolvig replied to Peibolvig's topic in Discusión general
Creo que la clave está en el AdminOrdersControllers.php, estoy echándole un ojo y en la función: postProcess() hay un comentario que pone: "/* Change order state, add a new entry in order history and send e-mail to the customer if needed */" Pero todavía no logro dar con la forma de enviar el mail cuando está en estado "Pago aceptado" o "Pago electrónicamente Aceptado". Aunque presiento que estoy cerca Saludos! -
Hola, Uso 1.5.4.1. Me piden que cuando el cliente haya pagado el carrito, se envíe un email en copia oculta a un destinatario fijo. He encontrado algunas soluciones que envían esa copia siempre que hay un cambio de estado en el producto, pero yo busco que esa copia del email sólo se envíe en caso de cambio de estado del pedido a "pagado". Se os ocurre alguna solución? Dónde podría tocar, para diferenciar si el estado es "pagado" y entonces hacer el envío del email con copia? Saludos!
-
Ok, por si a alguien le interesa, solucioné el problema usando {$smarty.server.HTTP_REFERER} Aunque esto con la variable $come_from debería funcionar, por lo que supongo que debe de haber algún bug. Lo lógico sería que en FrontController.php, se inicializara correctamente, pero por alguna razón no lo hace (al menos en mi caso). Saludos!!
-
Hola, Usando Prestashop 1.5.4.1 Tengo un problema con la variable $come_from de smarty, siempre me apunta a la misma web en la que me encuentro, y no entiendo si esto es un bug o es que alguien tocó algo dónde no debía antes de encargarme llevar este proyecto. Se sabe si esto es un bug? si no, sabéis dónde define smarty esa variable? ¿Alguna sugerencia alternativa que no sea el back history de javascript? Saludos!!
-
Pues no conocía esa opción para configurar el pedido mínimo, es bueno saberlo. En principio la idea era advertir al cliente que podía continuar, pero que se le cobraría el precio mínimo del carrito. Efectivamente estoy bajo la normativa europea. No sabía que hacer algo así sería ilegal, ayer me plantearon si existía la posibilidad de hacer eso y me puse a buscar. Pero les comentaré lo de la normativa, para que traten de buscar otra solución (que yo creo que lo mejor sería aplicar lo que comentas del pedido mínimo, a coste de perder algún cliente). Les comentaré a los jefes que lo que quieren hacer puede estar en la zona roja de lo legal, voy a ver si encuentro algo de información al respecto para enviárselo. Muchas gracias por la información Moraira!!
-
Hola, Alguien sabe cómo puedo definir un precio mínimo por carrito? Es decir, si el precio mínimo por carrito es 45€ y el cliente hace un pedido de 20€, avisarlo y que si decide seguir adelante, se le cobren 45€. Es que veo que se puede configurar pedido mínimo para descuentos y similar, pero no vi o no se me ocurrió cómo hacer algo similar a lo que comento. ¿Se os ocurre algo a vosotros? Saludos
-
Hola, Estoy usando la versión de prestashop 1.5.4.1. Tengo el gestor de stocks desactivado, para que los productos se puedan vender siempre, sin un stock definido. El problema es que no sé que cantidad debería de poner en el campo correspondiente del csv para hacer la importación. El csv lo tengo hecho y me importa bien todos los datos, el problema que me encuentro es que al hacer la importación, me activa el gestor de stock (y se supone que todos los días lanzaré un script de importación, por lo que no es práctico estar todo el rato desmarcando la casilla de gestión de stock). Probé a poner un cero en el campo, pero si hago eso me activa el gestor de stock igualmente y por lo tanto me aparece como que el artículo está agotado. Si le pongo una cantidad Alguna pista?
-
Pues yo ahora mismo estoy muy liado con otras cosas, pero en cuanto tenga que ponerme con eso (porque ya me lo dejó caer el experto en SEO) le echaré un ojo a ver si se puede hacer alguna implementación o algo, para poder llevar a cabo la tarea... Aunque sospecho que va a ser bastante complicada...
-
Supongo que quizás la solución sería encontrar alguna variable que guarde el nombre del producto al que pertenece la imagen, que pueda utilizar para cuando prestashop hace el renombrado de imágenes. Pero eso sólo sería una parte del "problema" porque si la imagen se llama distinto, todas las referencias a la misma deberían de seguir el mismo patrón. Alguien hizo algo similar alguna vez? o quizás hay alguna forma de tocar sólo un sitio que cambie todas esas referencias... (Si lo hay, yo por ahora no lo he encontrado, XD) Saludos
-
Hola, Conocéis alguna manera de hacer que las imágenes subidas, una vez procesadas por prestashop, tengan el nombre del producto en su nombre? Por ejemplo, si subo la imagen para el producto: "Libreta cuadriculada A4" en lugar de que se generen imágenes con nombres tipo: 32-medium_default.jpg Que fuera algo así: 32-Libreta_cuadriculada_A4-medium_default.jpg Saludos
-
Hola Enrique, Pues me parece una buena opción, y es una información que seguro que me viene bien para el futuro, porque lo había visto en su momento pero no me acababa de quedar clara la manera de proceder con los métodos de la clase producto, no sabía que sólo el método add() ya era más que suficiente para hacer la inserción. Muchas gracias!! Al final, busqué un poco más y en estos mismos foros (en francés) encontré la solución para lo que planteaba, así que os pongo aquí el desarrollo (junto con el enlace del post original del que saqué la información). Es una modificación pequeña, haciendo un override de la clase AdminImportController La modificación para lo que yo buscaba basta con aplicarlo a producto, pero también se lo apliqué a las combinaciones tal como hacían en la fuente original. Solución probada en la versión 1.5.4.1 1º Hacer una copia de: controllers/admin/AdminImportController.php en override/controllers/admin/AdminImportController.php 2º En el fichero recién copiado (el de override/controllers/admin), hacemos las siguientes modificaciones: a. Para hacer el override de la clase. Localizamos la linea: class AdminImportControllerCore extends AdminController Y la cambiamos por: class AdminImportController extends AdminControllerCore b. Para que al seleccionar "Declinaciones" (combinaciones) en el desplegable de la importación CSV, nos aparezcan estos campos también como campos "importables". (Para la modificación que yo buscaba basta con aplicarlo a producto, pero al final también se lo apliqué a las combinaciones tal como hacían en la fuente original). Localizamos el código: case $this->entities[$this->l('Combinations')]: $this->required_fields = array( 'id_product', 'group', 'attribute' ); $this->available_fields = array( 'no' => array('label' => $this->l('Ignore this column')), ..... 'weight' => array('label' => $this->l('Impact on weight')), Y justo debajo pegamos el siguiente código: 'height' => array('label' => $this->l('Height')), 'width' => array('label' => $this->l('Width')), 'depth' => array('label' => $this->l('Depth')), Quedando la modificación así: case $this->entities[$this->l('Combinations')]: $this->required_fields = array( 'id_product', 'group', 'attribute' ); $this->available_fields = array( 'no' => array('label' => $this->l('Ignore this column')), ..... 'weight' => array('label' => $this->l('Impact on weight')), 'height' => array('label' => $this->l('Height')), 'width' => array('label' => $this->l('Width')), 'depth' => array('label' => $this->l('Depth')), c. Para que por defecto los nuevos campos de las combinaciones tengan valor 0. Localizamos el código un poco más abajo que el del anterior punto: self::$default_values = array( 'reference' => '', 'supplier_reference' => '', 'ean13' => '', 'upc' => '', 'wholesale_price' => 0, 'price' => 0, 'ecotax' => 0, 'quantity' => 0, 'minimal_quantity' => 1, 'weight' => 0, 'default_on' => 0, ); Y le añadimos, debajo de 'weight', las 3 lineas referentes a las medidas, quedando así: self::$default_values = array( 'reference' => '', 'supplier_reference' => '', 'ean13' => '', 'upc' => '', 'wholesale_price' => 0, 'price' => 0, 'ecotax' => 0, 'quantity' => 0, 'minimal_quantity' => 1, 'weight' => 0, 'height' => 0, 'width' => 0, 'depth' => 0, 'default_on' => 0, ); c) Por último, para añadirselo a la opción de importar Producto, y que en el desplegable de la importación CSV, nos aparezcan estos campos también como campos "importables". Localizamos el código: case $this->entities[$this->l('Products')]: self::$validators['image'] = array( 'AdminImportController', 'split' ); $this->available_fields = array( 'no' => array('label' => $this->l('Ignore this column')), ..... 'weight' => array('label' => $this->l('Weight')), Y justo debajo de weight, pegamos las 3 lineas de los parámetros que queremos añadir: 'height' => array('label' => $this->l('Height')), 'width' => array('label' => $this->l('Width')), 'depth' => array('label' => $this->l('Depth')), Con lo que quedaría así: case $this->entities[$this->l('Products')]: self::$validators['image'] = array( 'AdminImportController', 'split' ); $this->available_fields = array( 'no' => array('label' => $this->l('Ignore this column')), ..... 'weight' => array('label' => $this->l('Weight')), 'height' => array('label' => $this->l('Height')), 'width' => array('label' => $this->l('Width')), 'depth' => array('label' => $this->l('Depth')), Con esos cambios, tenemos ya lista la posibilidad de importar desde CSV las medidas, tanto en productos como en combinaciones. Adjunto el fichero entero ya modificado, que repito, es para la versión 1.5.4.1 El post original en francés, es este: http://www.prestasho...eur-profondeur/ Los campos en el fichero CSV ahora quedarán en este orden: ..... UPC Ecotasa Peso Alto Ancho Profundidad Cantidad Descripción breve ..... Adjunto un csv de ejemplo con todos los campos, probado y que funciona tras la modificación. OJO: Como este foro no permite subir ficheros con extensión .csv lo renombré a .txt Si lo queréis probar, tendréis que renombrarlo a .csv Podría haberlo hecho de manera más sutil quizás, no lo sé, pero no puedo dedicarle más tiempo (por ahora) a este asunto, así que así es como quedará hasta que me pueda parar a analizar si se puede mejorar y hacer un override más específico, y no de toda la clase AdminImportController. Sergio, al final es muy probable que utilice el script que me pasaste, muchas gracias Saludos y gracias a todos por las sugerencias. AdminImportController.php EjemploCSV_conMedidas.txt
-
Si, yo siempre procuro comprender cómo hace la funcionalidad la propia arquitectura, pero antes trato de buscar mucha información y si alguien lo hizo antes. En este caso encontré gente que tiene la misma "duda" que yo, pero no encontré una implementación que haya hecho alguien, así que me toca ponerme (y espero poder compartirla por aquí, para devolver la ayuda prestada, pero aún tengo pendiente documentar la solución de otro post que escribí hace unas semanas... se me acumula el trabajo,...) Bueno, voy a ponerme con esto a ver si consigo algo. No llevo mucho tiempo con prestashop y me cuesta comprender algunas cosas. Gracias por la ayuda!
-
He encontrado esto: http://stackoverflow.com/questions/13137480/prestashop-1-5-1-how-can-i-import-a-products-shipping-characteristics Que justo habla de lo que yo digo de importar las medidas de un producto también. No da una solución integrada, pero puede ayudar a hacer la integración metiendo las consultas en el controlador quizás...
-
Si, estuve echándole un ojo a la base de datos (usando el workbench), gracias por el documento igualmente. Quizás puedo hacer la sincronización en dos pasos... primero rellenar todos los datos posibles con el importador y luego completar con consultas SQL los datos que me falten, pero me gustaría poder hacer todo en un solo paso. Alguna sugerencia? Podría tratar de hacer una copia del controlador AdminImportController y modificarlo para hacer los Inserts que me falten. Si alguien me pudiera pasar alguna sugerencia de cómo llevar a cabo la modificación se lo agradecería mucho.
-
Jesa: El problema no es insertar todos los datos que me pide el CSV, si no que en los datos que importa desde CSV no incluye datos que me interesa importar, como son ancho, alto y profundidad del producto. Sergio Ruiz: No es exactamente lo que me hace falta, por la razón que le comento a Jesa, no puedo importar todos los campos de producto en los que estaría interesado usando la importación CSV, pero es interesante. Podría llegar a darle uso (si no para esto de ahora, si quizás en el futuro) Gracias por la ayuda a ambos Saludos!
-
Hola, Estoy tratando de integrar parte de una base de datos de una aplicación externa, con la base de datos de prestashop. Principalmente la integración sería sólo de productos. La idea es lanzar un script cada día que sincronice las bases de datos. Obviamente cada una tiene su estructura y la pregunta es. Cómo me aconsejaríais hacer esto de forma automática? Yo pensaba hacer "Inserts" en las tablas de producto, pero me estoy encontrando que hacer los Inserts a pelo es un problema, puesto que, a pesar de haber estado unas horas tratando de entender todos los lugares en los que se relacionan las tablas de producto entre si y demás, no me queda del todo claro qué datos serían imprescindibles, cuales no, y si me estoy dejando alguna relación importante por el camino. Vi la opción que tiene prestashop de la importación de CSV, pero los campos que importa no son todos los que necesitaría, porque para producto no importa las medidas, según la lista de campos "importables". Además, este tipo de importación no sabría cómo automatizarla. Espero vuestra ayuda, que hasta ahora me ha sido muy valiosa. Saludos!!
-
Pues mi idea es publicarlo, pero no encontré el momento todavía. Espero poder ponerme un rato con ello y hacer al how-to completo estos días. A ver si hay suerte. Saludos!
-
Hola, Estoy pensando en poner el módulo de newsletter en la página de mantenimiento, para que los usuarios puedan dejar su email y ser avisados cuando la web eche a andar. El caso es que como no tengo mucha práctica con esto me gustaría que me aconsejarais un poco. Se me ocurrió que podría crear un hook nuevo en la página de mantenimiento y modificar el módulo de newsletters para que pueda incluirse en ese hook nuevo. La duda que me surge, es si no habrá una forma más sutil de hacer esto para no tener que tocar el módulo original de newsletters. Se me ocurre la alternativa de hacer una copia del módulo de newsletters y tocar sólo la copia, pero no sé si eso no sería matar moscas a cañonazos. ¿Alguna sugerencia? ¿Van bien mis tiros con lo que se me ocurrió? ¿Cómo lo haríais vosotros? Lo que me gustaría es ser lo más "respetuoso" posible con el propio prestashop para evitar problemas si en el futuro actualizo la versión. Gracias!
-
[Solucionado] Cómo pruebo la página de mantenimiento?
Peibolvig replied to Peibolvig's topic in Discusión general
Hecho! Estaba buscándo el cómo hacerlo, pero no lo encontraba. Gracias por la ayuda -
[Solucionado] Cómo pruebo la página de mantenimiento?
Peibolvig replied to Peibolvig's topic in Discusión general
Cómo le puedo cambiar el título a este post? No encuentro la opción para editarlo y así poner "Solucionado" -
[Solucionado] Cómo pruebo la página de mantenimiento?
Peibolvig replied to Peibolvig's topic in Discusión general
Ya sabía yo que tenía que ser una chorrada que estaba pasando por alto... No sé por qué, me empeñé en pensar que si ponía la página en mantenimiento y no ponía mi IP en la lista blanca, luego no podría acceder ni siquiera al backoffice..... ^^u Gracias a todos por las respuestas tan rápidas, me habéis evitado seguir dando círculos Un saludo!! -
Hola, Quizás suena un poco tonta la pregunta pero... cómo pruebo una modificación que haya hecho en maintenance.tpl? Si estoy en maintenance mode y mi IP está en la lista blanca, no la voy a poder ver, y si no meto mi IP en la lista blanca luego no puedo acceder de nuevo al modo normal. Cómo hacéis vosotros? Hay alguna ruta que pueda ejecutar con algún parámetro y me muestre la maintenance page? Saludos!
-
Genial! ya lo conseguí. El problema era un tanto rebuscado... Al hacer algunas pruebas ví que la consulta que estaba utilizando en lugar de ... ®ion= ... me estaba transformando el '®' por el símbolo que es como el del copyright pero con una letra 'R' en lugar de una 'C'. Total, que como eso creí que me iba a dar problemas, traté de escaparlo de mil maneras, y la única que parecía darme resultado era usando: http_build_query($url_param,'','&'); para que el caracter '&' me lo interpretara como '&' Haciendo eso, todo parecía estar correcto, me aparecía bien toda la ruta de la query, peeeeeero, así no funcionaba (aquí era cuando me daba el error de REQUEST_DENIED). Probé a quitar el parametro 'region' y seguía sin irme, así que lo que hice fue dejar el http_build_query como sigue: http_build_query($url_param); Pero haciendo eso, volvía al problema inicial. Solución: moví el parámetro 'region' al primer lugar de la consulta (sí, lo sé... es un apaño... pero en serio que le di miles de vueltas con montón de funciones y trucos para escapar caracteres y no hubo forma...) Así que la estructura de la consulta que no me funcionaba era: http://maps.googleapis.com/maps/api/geocode/json?address=calle+el+limonar+1%20&sensor=false&language=es®ion=es&components=locality:el+chaparral|country:es|postal_code:03184|administrative_area:Torrevieja Y la que funciona quedó así; http://maps.googleapis.com/maps/api/geocode/json?region=es&address=calle+el+limonar+1%20&sensor=false&language=es&components=locality:el+chaparral|country:es|postal_code:03184|administrative_area:Torrevieja De ese modo evito que se junte ®ion y produzca el caracter no deseado. Ahora mismo ya tengo funcionando la validación de dirección completa, con calle, número, CP, ciudad, provincia y país. Todas las pruebas que hice son satisfactorias, pero aún tengo que estresarlo un poco y ver qué tal responde. Pinta bien