THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Bonjour.
J'ai ajouté un champs dans la table commande.
Mais comment faire pour qu'il se remplisse lors d'une commande.

Dans la fonction paiement de action.php il y a des définition du type :
$commande->date = date("Y-m-d H:i:s");

Mais si je rajoute
$commande->monchamps = date("Y-m-d H:i:s");

le champs "monchamps" de la table commande ne se modifie pas.


...Merci de m'aider

Offline


C'est bon merci. J'ai trouvé !

Offline


Tant mieux big_smile
mais il faut partir du principe que le probleme que tu as eu interessera peut etre un jour quelqu'un d'autre,
qui ne se satisfera pas necessairement d'un 'j'ai trouve'...
Partage ta solution wink


le-bouquiniste.com                                                      tongue  plugin 1.4.x / 1.5   => valeurstock / Mailpaiement / formcontact

Offline


Tout à fait d'accord.

Je suis sous thelia 1.5.4.3 et j'ai rajouté 2 champs à la table commande.
pointsfidelite
codereduction

Je veux faire apparaitre sur la commande et facture les intitulés et montants de ces remises.

j'ai procédé à un essai sur  action.php
// procédure de paiement
function paiement($type_paiement){

$commande->pointsfidelite = 1;
$commande->codereduction = 1;

La commande ne s'enregistre pas

Les tables venteprod, ventedeclidisp et venteadr se sont remplies

j'avoue que j'ai du mal à trouver le cheminement entre le panier qui est en session et son traitement vers l'insertion commande mysql
entre action.php boucles.php PluginsPaiements.class.php

Le code promo et la remise figurent bien dans la session

$_SESSION["navig"]->client->pourcentage
$_SESSION["navig"]->promo

est ce qu'il faut rajouter les infos dans la session pour que cela soit traité automatiquement à la fin du paiement genre

$_SESSION["navig"]->commande->pointsfidelite = 1;
$_SESSION["navig"]->commande->codereduction = 1;

Last edited by fredodefrance (03-03-2014 11:12:20)


C'est en faisant qu'on apprends.

Offline


J'ai situé les points à modifier dans fonctions/action.php

Ligne 404 environ

        if ($_SESSION['navig']->client->pourcentage>0) $commande->remise = $total * $_SESSION['navig']->client->pourcentage / 100;

        $total -= $commande->remise;
//rajout
        $totalremiseclient = $commande->remise;
//rajout

Ligne 409 environ

        if($_SESSION['navig']->promo->id != ""){
//rajout           
            $totalremisepromo = calc_remise($total);
//rajout
            $commande->remise += calc_remise($total);

Ligne 436 environ
        if($commande->remise > $total)
            $commande->remise = $total;

        //rajout       
        $commande->pointsfidelite = "remise: ".$totalremiseclient;
        $commande->codereduction = "Code #".$promoutil->code.": ".$totalremisepromo;

Ca fonctionne mais les données insérées dans commande sont faussées


C'est en faisant qu'on apprends.

Offline


Il ne faut pas toucher au core, mais construire un plugin qui gèrera tes champs supplémentaires, tu as tous les points d'entrée nécessaire pour celà.


OpenStudio Toulouse