Fidelidad de los clientes y las recompensas en Prestashop 1.5 (Utilizar el vale desde su creación)

30 octubre, 2014 |

Si te gusta, compártelo ;)

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

default.php del módulo loyalty de Prestashop

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'));

21 comentarios:

  1. Como y donde ver los vales generados a los clientes, gracias.

    ResponderEliminar
  2. Hola, 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".

    Si 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.

    ResponderEliminar
    Respuestas
    1. 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í.

      Eliminar
    2. Exacto, 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.

      Eliminar
    3. Gracias, 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.

      Eliminar
    4. Pues 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.

      Eliminar
    5. Perdona 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
      tanto 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.

      Eliminar
    6. 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.

      Eliminar
    7. Hola amigo, tranquilo que no eres pesado ;)

      Si 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.

      Eliminar
    8. Gracias, eres un fenómeno, así si sale bien, gracias de nuevo.

      Eliminar
  3. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  4. Hola

    una pregunta.

    En la verisón 1.,6 de prestashop este modulo ya no esta disponible. ¿Conoces alguno similar gratuito? muchas gracias.

    ResponderEliminar
    Respuestas
    1. Hola,
      Mira 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.

      Eliminar
  5. Hola:
    No 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!!

    ResponderEliminar
  6. Hola:
    Ya 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!

    ResponderEliminar
  7. Hola:
    Ya 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

    ResponderEliminar
    Respuestas
    1. Hola,

      Lamento 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!

      Eliminar
  8. Hola:
    Muchisísimas gracias, entendidísimo. Me has servido de gran ayuda. Saludos!

    ResponderEliminar
  9. Muchas gracias por el aporte. ¡Lo probaré ahora mismo!

    ResponderEliminar