Jump to content

Avoir + bon de réduction durée par défaut de validité d'1 an


Asu34

Recommended Posts

Bonjour à tous,

Lors de la génération d'un avoir avec un bon de réduction, ce dernier à dans sa règle panier et condition une durée de validité d'1 an.

Je souhaiterais passer ces derniers à 6 mois.

Auriez-vous une idée comment mettre ça en place ?

Je vous remercie par avance,

Link to comment
Share on other sites

Si je ne me trompe pas, ce bon de réduction est généré en fonction postProcess() du contrôleur AdminOrdersController :

Vous pouvez réécrire (override) la fonction.

// Generate voucher
if (Tools::isSubmit('generateDiscountRefund') && !count($this->errors) && $amount > 0) {
    $cart_rule = new CartRule();
    $cart_rule->description = $this->trans('Credit slip for order #%d', array('#%d' => $order->id), 'Admin.Orderscustomers.Feature');
    $language_ids = Language::getIDs(false);
    foreach ($language_ids as $id_lang) {
        // Define a temporary name
        $cart_rule->name[$id_lang] = sprintf('V0C%1$dO%2$d', $order->id_customer, $order->id);
    }

    // Define a temporary code
    $cart_rule->code = sprintf('V0C%1$dO%2$d', $order->id_customer, $order->id);
    $cart_rule->quantity = 1;
    $cart_rule->quantity_per_user = 1;

    // Specific to the customer
    $cart_rule->id_customer = $order->id_customer;
    $now = time();
    $cart_rule->date_from = date('Y-m-d H:i:s', $now);
    $cart_rule->date_to = date('Y-m-d H:i:s', strtotime('+1 year')); //Change this to +6 months
    ...
}

 

  • Thanks 1
Link to comment
Share on other sites

Bonjour,

@joseantgv super je te remercie ! C'est tout bon et ça fonctionne en override.

J'en ai profité pour modifier la structure de génération des codes (des clients avaient du mal avec le '0' & 'O') et leur nom afin qu'en BO ils soient plus "parlant".

NB : il faut faire les modifications à 2 endroits

// Generate voucher
if (Tools::isSubmit('generateDiscountRefund') && !count($this->errors) && $amount > 0) {
//...
}

// &

// Generate voucher
if (Tools::isSubmit('generateDiscount') && !count($this->errors)) {
//...
}

Voici ce que ça donne en BO  (nouveau et ancien avoir & bon de réduction ):

2019-12-11_14h15_11.thumb.png.d9fff15c5c9c4e40efd49f861fb92f0a.png

  • Like 1
Link to comment
Share on other sites

  • 3 months later...

J'ai une précision , peut etre idiote, mais la validité du bon de réduction c'est une date fixe, on ne peut pas indiquer une durée, par exemple - mois, à partir du moment où le client en bénéficie ?

Link to comment
Share on other sites

En 1/4/2020 a las 6:02 PM, Pat_07 dijo:

J'ai une précision , peut etre idiote, mais la validité du bon de réduction c'est une date fixe, on ne peut pas indiquer une durée, par exemple - mois, à partir du moment où le client en bénéficie ?

Oui:

$cart_rule->date_from = date('Y-m-d H:i:s', $now);
$cart_rule->date_to = date('Y-m-d H:i:s', strtotime('+1 year')); //Change this to +6 months

 

  • Like 1
Link to comment
Share on other sites

Oui je sais que le sujet n'est pas directement lié.
Je cherche à offrir un bon de réduction après l'achat d'un article spécifique.
Mais je veux que ce bon de réduction soit valable 1 an à partir de l'achat de l'article par le client.
 

Link to comment
Share on other sites

  • 1 month later...

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...