Este tutorial va a tratar sobre el módulo La fidelidad de los clientes y las recompensas de Prestashop 1.5.
Cuando un cliente canjea sus puntos de fidelidad se crea automáticamente un Vale de descuento. El problema es que este vale de descuento no se puede utilizar hasta pasados 15 días. Veamos cómo podemos solucionar esto y que el cliente pueda utilizar el vale desde su creación. Para ello debemos editar el archivo prestashop/modules/loyalty/controllers/front/default.php
Como vemos en la imagen anterior debemos borrar la variable $date_from pasada como parámetro a la función date(). ¡Borrar solo donde indica la flechita!
Hecho esto eliminaremos la adición de 15 días y el vale estará disponible desde su creación.
Os dejo el código que aparece en la imagen:
if (Configuration::get('PS_ORDER_RETURN')) $date_from += 60 * 60 * 24 * (int)Configuration::get('PS_ORDER_RETURN_NB_DAYS'); $cart_rule->date_from = date('Y-m-d H:i:s', $date_from); $cart_rule->date_to = date('Y-m-d H:i:s', strtotime($cart_rule->date_from.' +1 year'));
Como y donde ver los vales generados a los clientes, gracias.
ResponderEliminarHola, primeramente (supongo que lo sabrás) debes tener instalado el módulo "La fidelidad de los clientes y las recompensas". Cuando instalas el módulo, el cliente verá en la página de producto un texto así: "Al comprar este producto puede obtener hasta 141 puntos de fidelidad".
ResponderEliminarSi el cliente compra un producto recibirá los puntos; éstos los podrá canjear desde su cuenta, en la opción "Mis puntos de fidelidad" (esta opción solo se ve si instalas el módulo).
Si el cliente canjea los puntos de fidelidad podrá disponer de un vale de descuento de X valor. Cunado el cliente canjea sus puntos, tú como administrador, podrás ver el vale en el Back-office desde "Reglas de precios > Reglas de compra".
Si tienes alguna duda más pregunta.
Si pero entonces si no entiendo mal solo los vales se pueden ver cuando el cliente decide utilizarlos y no antes para saber si se han generado o no y supongo que habrá que validarlos o algo así.
EliminarExacto, solo se generan si el cliente decide utilizarlos. Y está activado por defecto, por lo que el cliente puede utilizar el vale. Si tienes una tienda en local puedes probarlo. Cuando digo en local quiero decir, que tengas instalado en tu PC un servidor local con WampServer o Xampp.
EliminarGracias, lo tengo en local pero no me atreví a hacerlo pues tenia que llegar a la parte de pago y no se si teniéndolo en local comunicaría con el banco.
EliminarPues elige como forma de pago "Contra reembolso". Además no hace falta que completes el pedido, aplica el código del vale en el primer paso del proceso de compra, y verás el descuento aplicado.
EliminarGracias.
EliminarPerdona que te moleste, he probado en local y ya veo como genera los vales de descuento, ahora el problema que tengo es al usarlos el vale se genera por 0,20 € y en los vales de fidelidad aparece así, pero cuando lo uso el valor lo pone así Vales en total (sin IVA):. -0,24 € he probado a poner en la configuración del módulo Apply taxes on the voucher Activado Desactivado
Eliminartanto de una forma como de otra y me pone lo mismo y lo calcula igual, quiero que el vale sea del descuento real es decir que si es de 0,20 sea de ese importe es decir que el iva ya este incluido.
Ya se donde esta el fallo, esta en que el vale que genera y sale en reglas de compra en acciones del vale siempre sale con el importe con impuestos excluidos y si lo cambias a incluidos entonces sale con el importe del vale por su valor. lo bueno seria poder ponerlo automático. Gracias y perdón por ser tan pesado.
EliminarHola amigo, tranquilo que no eres pesado ;)
EliminarSi lo quieres automático busca el archivo prestashop/modules/loyality/controllers/front/default.php
Busca esto en este archivo:
$cart_rule = new CartRule();
$cart_rule->code = $voucher_code;
$cart_rule->id_customer = (int)$this->context->customer->id;
$cart_rule->reduction_currency = (int)$this->context->currency->id;
$cart_rule->reduction_amount = LoyaltyModule::getVoucherValue((int)$customer_points);
$cart_rule->quantity = 1;
$cart_rule->quantity_per_user = 1;
/*¡¡¡¡¡¡¡¡Coloca esta línea!!!!!!!!!!*/ $cart_rule->reduction_tax = 1;
El comentario bórralo!! El 1 es para impuestos incluidos. El 0 para impuestos excluidos.
Haz lo mismo en el archivo: prestashop/modules/loyality/loyality-program.php
En este archivo busca por: $cartRule = new CartRule();
Y coloca la línea: $cart_rule->reduction_tax = 1;
...tal como lo hiciste en el primer archivo. Espero que lo entiendas.
Gracias, eres un fenómeno, así si sale bien, gracias de nuevo.
EliminarDe nada amigo.
EliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarHola
ResponderEliminaruna pregunta.
En la verisón 1.,6 de prestashop este modulo ya no esta disponible. ¿Conoces alguno similar gratuito? muchas gracias.
Hola,
EliminarMira este enlace
http://sobreprestashop.blogspot.com.es/2015/01/modulos-prestashop-16-faltan-modulos.html
Lo que pasa es que algunos módulos no vienen por defecto en Prestashop 1.6.
En el enlace que te indico se indica como descargarlo. Estar está, ahora falta que sea compatible con Prestashop 1.6. No lo he probado con la 1.6.
Hola:
ResponderEliminarNo consigo que los clientes accedan a sus puntos para gastarlos. Confirmar se confirman, lo he editado para que se les active conforme se envía y no a los 15 días, pero es que no pueden gastarlos. Podrías darme algún consejo? muchas gracias!!
Hola:
ResponderEliminarYa conseguí hacerlo!! Pero en vez de 0 días para crear el ticket descuento o 15 días no se pueden poner a los 4 días?? Saludos y muchas gracias!
Hola:
ResponderEliminarYa lo conseguí! pero la función de los días tiene que ser 15 días o 0 días? no pueden ser 4 días para que se pueda generar el ticket? Saludoos
Hola,
EliminarLamento no haber respondido antes. Es muy simple solo debes sumar los segundos de esta forma:
$cart_rule->date_from = date('Y-m-d H:i:s', $date_from + 345600);
Como ves hay que añadir esto: + 345600
Estos segundos equivalen a 4 días.
Si buscas en Google esto: "dias a segundos" te aparece un convertidor, solo debes indicar el número de segundos que quieres.
Espero que te haya servido. Un saludo!
Hola:
ResponderEliminarMuchisísimas gracias, entendidísimo. Me has servido de gran ayuda. Saludos!
Muchas gracias por el aporte. ¡Lo probaré ahora mismo!
ResponderEliminar