THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

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

Offline

#1 Les remises

(01-08-2007 09:58:58)


Je voudrais signaler que après avoir longuement cherché pourquoi mes remises ne fonctionnait pas, j'ai vu que ligne 49 de Promo.class.php on avait :

return $this->getVars("select * from $this->table where code=\"$code\" and datefin<'$datedj' and (utilise='0' OR illimite='1')");

au lieu de :

return $this->getVars("select * from $this->table where code=\"$code\" and datefin>'$datedj' and (utilise='0' OR illimite='1')");

Une erreur de signe...
Ce qui m'étonne c'est que les promo ont tout de même l'air de marcher chez les autres...

Last edited by LaKlara (01-08-2007 10:01:18)

  • yoan
  • Cofondateur Thelia

Offline

#2 Re: Les remises

(01-08-2007 11:02:41)


C'est corrigé depuis ça


http://yoandemacedo.com

Cofondateur de la solution Thelia 1.x

Offline

#3 Re: Les remises

(02-08-2007 07:54:33)


Pourtant la version de Thelia que j'utilise, je ne l'ai téléchargé que la semaine dernière ...

Je ne comprend pas à quoi sert le champ "utilise" dans la LISTE DES CODES PROMOS de l'espace d'admin.
Que je mette oui ou non, la promo est prise en compte.

Est il possible de définir une promo que pour un groupe de clients?
Ou de faire en sorte que certains articles ne peuvent pas bénéficier de remise?

  • yoan
  • Cofondateur Thelia

Offline

#4 Re: Les remises

(02-08-2007 08:00:50)


Elle est cochée illimitée ?

Est il possible de définir une promo que pour un groupe de clients? --> non
Ou de faire en sorte que certains articles ne peuvent pas bénéficier de remise? --> non

cependant un plugin pourrait être développé en attendant une intégration future


http://yoandemacedo.com

Cofondateur de la solution Thelia 1.x

Offline

#5 Re: Les remises

(02-08-2007 08:28:30)


Ah oui c'est coché illimité.
ça veut dire que ça peut être utilisé qu'une seule fois non ?

Sinon je vais voir pour faire ce plugin. J'ai déjà commencé à y réfléchir.
Mais pour ce faire, je dois ajouter des champs dans la base :
- Une table "RemisesParClient" où on peut mettre un nombre illimité de remises auxquels le client à le droit.
- Un champ "idRemisesParClient" dans clients afin de savoir à quelles remises à droit un client.

Et par exemple empêcher la remise d'avoir lieu, si les produits sont soldés( pour le moment je ne vois pas d'autres raisons d'empêcher la remise).

Et faire peut être une remise qui offre les frais de port, sauf en cas de livraison trop lourde.

Pour faire tout ça, il faut que je comprenne comment marche les plugins, parce que je ne vois pas d'exemples de plugin qui modifient la base au premier lancement. Je vais aller faire un petit tour du côté des plugins du genre "commentaire". smile

  • yoan
  • Cofondateur Thelia

Offline

#6 Re: Les remises

(02-08-2007 08:33:58)


si tu coches illimité, peu importe la valeur de utilise.

return $this->getVars("select * from $this->table where code=\"$code\" and datefin>'$datedj' and (utilise='0' OR illimite='1')"

Il faut que datefin > date_du_jour et que utilise = 0 ou illimit = 1

Le plugin commentaire modifie la base tout à fait.


http://yoandemacedo.com

Cofondateur de la solution Thelia 1.x

Offline

#7 Re: Les remises

(02-08-2007 14:34:45)


J'ai donc commencé à réfléchir à ce plugin mais je me demande :
En fait le calcul de la remise devra être calculé à partir des produits du panier.
donc #REMISE devra être modifié, à moins de créer #REMISEPARCLIENT.

Je n'arrive pas à trouver dans quel fichier le calcul de la remise a lieu ...

Je  pense que je n'ai pas besoin d'implémenter boucle() puisque je ne crée pas vraiment de boucle.
Que tout doit se dérouler dans action()...

J'ai du mal à visualiser...

  • yoan
  • Cofondateur Thelia

Offline

#8 Re: Les remises

(02-08-2007 14:47:13)


Tu as tout à fait raison mais la subtilité est d'utiliser tjs devise.
Ton action écrira la remise en session et elle deviendra la nouvelle remise.


http://yoandemacedo.com

Cofondateur de la solution Thelia 1.x

  • yoan
  • Cofondateur Thelia

Offline

#9 Re: Les remises

(02-08-2007 14:49:02)


Ajout : jette un oeil à substitpanier.php ainsi qu'à la fonction codepromo() de action.php


http://yoandemacedo.com

Cofondateur de la solution Thelia 1.x

Offline

#10 Re: Les remises

(02-08-2007 17:30:01)


Hummm ya beaucoup de lecture ^^

Bon c'est un bon point, j'ai trouvé où le calcul de la remise était effectué.
Mais le but de mon plugin sera de surcharger une des méthodes ? ou de redéfinir derrière celle ci la variable $remise ?

  • yoan
  • Cofondateur Thelia

Offline

#11 Re: Les remises

(02-08-2007 18:18:36)


Derrière


http://yoandemacedo.com

Cofondateur de la solution Thelia 1.x

Offline

#12 Re: Les remises

(08-08-2007 11:41:15)


J'ai commencé l'implémentation du plugin pour les remises.
- Une remise peut être créée pour tous les clients (champ "toutlemonde" à 1 ou à 0 de la table Promo)
- Une remise peut être créée juste pour qq clients (table remiseparclient, avec juste deux clés externes : id_client et id_promo).

code de action presque fini si c'est pas faux... wrote:

function action($res){
           
            if($_POST['action'] == "codepromo"){

                $remise = new RemisesParClient();
                //On regarde si la remise est valable pour chaque client
                $query_req = "SELECT * FROM promo
                        WHERE id_promo = $_GET['code']
                        AND  toutlemonde = 1;";
                $result_req = mysql_query($query_req, $cnx->link);   
               
                if ($result_req = mysql_fetch_array($query_req)) {
                    //Tous les clients ont droit à cette remise
                    //ne rien faire, laisser le calcul auto
                } else {
                    //TODO Requête pour savoir si le client a droit à cette remise
                    $query_req = "SELECT * FROM remisesparclient
                            WHERE id_promo = $_GET['code']
                            AND id_client = ?????????????;";
                    $result_req = mysql_query($query_req, $cnx->link);   
                   
                    //On teste le résultat de la requête afin de savoir si il y a des résultats
                    if (!($result_req = mysql_fetch_array($query_req))) {
                        //Pas de résultats : Le client n'a pas le droit à la remise
                        echo "Vous ne pouvez pas bénéficier de cette remise";
                        $remise = 0;
                        $texte = str_replace("#PANIER_REMISE", "$remise", $texte);
                    }
                }
            }           
        }

Une question, comme récupérer l'id du client qui est actuellement connecté?
Est ce : $_SESSION['navig']->client ?

Offline

#13 Re: Les remises

(12-08-2007 15:45:57)


J'ai bien avancé dans mon plugin seulement je rencontre un problème (ça aurait été trop simple sinon ...)
Je n'arrive pas à redéfinir #PANIER_REMISE. Je souhaite que la valeur de la remise soit égale à 0 si le client n'y a pas le droit.

Donc ça m'écrit bien "Vous ne pouvez pas bénéficier de cette remise", mais le montant de la remise ne passe pas à 0 !
J'ai mis cette ligne la (dans action($res)):

str_replace("#PANIER_REMISE", 0, $res);

J'ai également essayé de mettre :
   

function boucle($texte, $args) {
            return str_replace("#PANIER_REMISE", 0, $texte);
        }

J'ai essayé d'autre choses mais tjrs rien...
Des idées ?

Offline

#14 Re: Les remises

(23-08-2007 08:47:14)


Bon je cherchais trop compliqué.
Fallait tout simplement mettre : $_SESSION['navig']->promo = 0;

Par contre, j'aimerais bien offrir les frais de port...
Seulement, même problème, je n'arrive pas à trouver la formule magique !

Je pense que ça doit être $_SESSION['navig']->port mais ce n'est pas défini ou égal à 0 sad

Help me ! ça fait un petit moment que je cherche...

Offline

#15 Re: Les remises

(23-08-2007 09:12:02)


Essaye de te faire une page en affichant toutes les variables définies dans $_SESSION. Comme ca tu pourras savoir exactement ce qui est passé en session

Offline

#16 Re: Les remises

(23-08-2007 09:51:11)


Il y a t il un endroit pour savoir quels sont exactement les variables en session.
Parce que la j'ai tenté d'afficher tout ce qui semblait être apparenté aux frais de port...

Offline

#17 Re: Les remises

(23-08-2007 14:00:36)


Fait un print_r($_SESSION);
Ca va t'afficher toutes les variables en session....Et tu auras tout

Offline

#18 Re: Les remises

(24-08-2007 11:10:33)


J'ai tout affiché, cherché ce qui pourrait être les frais de port mais déjà la valeur n'est pas affichée (j'ai fais une recherche sur le montant des frais de port, et ça n'apparait pas une seule fois dans le listing).
Et j'ai tenté d'afficher des données séparéments mais toujours rien.

Mais si je ne dois pas chercher dans la session, où dois je chercher ?
Quelqu'un a une piste ?

Offline

#19 Re: Les remises

(28-08-2007 12:26:20)


Je suis toujours bloquée...
Je repose la question : comment modifier le montant des frais de port à l'exécution de mon plugin, après le calcul de celui ci par l'application ?