THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

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

Offline

#1 Afficher les prix en HT

(06-07-2014 17:41:29)


Bonjour,

J'aimerai afficher els prix en HT et non en TTC. J'ai bien modifier la variable use_tax_free_amounts dans l'interface d'administration mais ça ne change rien (même si je vide les caches).

Comment je peux modifier les templates en prenant en compte cette variable ?

Merci

Offline

#2 Re: Afficher les prix en HT

(07-07-2014 10:35:15)


Tu peux utiliser dans tes templates une variable de configuration {config key="nom_de_variable"}. Dans ton cas, tu peux donc utiliser {config key="use_tax_free_amounts"} pour récupérer l'information.

Pour alléger l'écriture, tu met en début de template: {$ht ={config key="use_tax_free_amounts"}}, et tu peux utiliser après {if $ht} ... {/if}


OpenStudio Toulouse

Offline

#3 Re: Afficher les prix en HT

(09-07-2014 14:43:12)


Bonjour, et merci pour cet éclairage,
j'ai une question similaire : sur mon site, j'ai des revendeurs et des clients lambda. Je voudrais que pour les revendeurs connectés, les prix s'affichent en ht, mais aussi avec le pourcentage de réduction attribué aux revendeurs.

Le client lambda voit prix = 120,
quand le revendeur verra prix = 40

Est-ce possible ?

Offline

#4 Re: Afficher les prix en HT

(09-07-2014 18:23:36)


Oui, mais pas automatique. Le remise est en effet accordée par Thelia lors de la mise au panier.

Ceci dit, tu peux utiliser de la même façon un coeff multiplicateur, que tu vas appliquer aux prix affichés, un truc du genre :

{$coeff = 1 - {customer attr='discount'} / 100}

{format_money number={$PRICE*$coeff}}


OpenStudio Toulouse

Offline

#5 Re: Afficher les prix en HT

(11-07-2014 14:47:04)


Roadster,

{$var = {customer attr="email"}} fonctionne
{$var = {customer attr="lastname"}} fonctionne
etc,

mais,
{$var = {customer attr="discount"}} ne fonctionne pas.

Le champ 'discount' existe pourtant bien dans la table 'customers', et il contient bien une valeur non nulle !


[maj]
ça fonctionne si le client se connecte APRES l'octroi d'un discount via le back-office. Sioux.

Last edited by ngw (15-07-2014 20:30:49)

Offline

#6 Re: Afficher les prix en HT

(13-07-2014 17:01:10)


J'ai réglé le problème en modifiant le fichier core/lib/Thelia/Model/Customer.php en ajoutant ->setDiscount($discount) dans createOrUpdate, j'espère que ça ne posera pas de pb ailleurs :


    public function createOrUpdate($titleId, $firstname, $lastname, $address1, $address2, $address3, $phone, $cellphone, $zipcode, $city, $countryId, $email = null, $plainPassword = null, $lang = null, $reseller = 0, $sponsor = null, $discount = 0, $company = null, $ref = null)
    {
        $this
            ->setTitleId($titleId)
            ->setFirstname($firstname)
            ->setLastname($lastname)
            ->setEmail($email)
            ->setPassword($plainPassword)
            ->setReseller($reseller)
            ->setSponsor($sponsor)
            ->setDiscount($discount)
            ->setRef($ref)
        ;

        if (!is_null($lang)) {
            $this->setLang($lang);
        }

        $con = Propel::getWriteConnection(CustomerTableMap::DATABASE_NAME);
        $con->beginTransaction();
        try {
            if ($this->isNew()) {
                $address = new Address();

                $address
                    ->setLabel("default")
                    ->setCompany($company)
                    ->setTitleId($titleId)
                    ->setFirstname($firstname)
                    ->setLastname($lastname)
                    ->setAddress1($address1)
                    ->setAddress2($address2)
                    ->setAddress3($address3)
                    ->setPhone($phone)
                    ->setCellphone($cellphone)
                    ->setZipcode($zipcode)
                    ->setCity($city)
                    ->setCountryId($countryId)
                    ->setDiscount($discount)
                    ->setIsDefault(1)
                    ;

                $this->addAddress($address);

            } else {
                $address = $this->getDefaultAddress();

                $address
                    ->setCompany($company)
                    ->setTitleId($titleId)
                    ->setFirstname($firstname)
                    ->setLastname($lastname)
                    ->setAddress1($address1)
                    ->setAddress2($address2)
                    ->setAddress3($address3)
                    ->setPhone($phone)
                    ->setCellphone($cellphone)
                    ->setZipcode($zipcode)
                    ->setCity($city)
                    ->setCountryId($countryId)
                    ->setDiscount($discount)
                    ->save($con)
                ;
            }
            $this->save($con);

            $con->commit();

        } catch (PropelException $e) {
            $con->rollback();
            throw $e;
        }
    }

[maj]
Cette manip n'est pas à faire, ça perturbe le fonctionnement de Thelia lors de la création d'un client. Pour bénéficier d'une ristourne, le client doit se connecter APRES l'octroi de la ristourne via le back-office !

Last edited by ngw (15-07-2014 20:29:14)

Offline

#7 Re: Afficher les prix en HT

(14-07-2014 10:27:36)


Tu peux faire une pull request dans Github si tu veux.


OpenStudio Toulouse

Offline

#8 Re: Afficher les prix en HT

(15-07-2014 12:35:24)


Merci pour la réponse mais j'ai toujours une question.

J'ai beau lire la doc. je ne vois pas bien comment on récupère un attribut, que ce soit le prix hors taxe ou le prix ttc ....

Dans le template par défaut, j'ai bien trouvé la variable $TAXED_PRICE à laquelle était assignée la valeur de l'attribut real_price. J'ai cherché un peu pour récupérer le prix en ht, rien trouvé. Et dans la doc non plus sad   (je débute complet dans thelia j'avoue)

Du coup, pour mon prix en ht, où est-ce que je dois pêcher l'info ?

Offline

#9 Re: Afficher les prix en HT

(15-07-2014 13:05:37)


Je ne suis pas sûr que voir les prix en ht fonctionne bien pour le moment, mais tu peux t'en sortir comme suit :

Dans le layout, tu places :

    {$coeffprice = 1.2}

et dans chaque template où les prix sont utilisés (product.html, cart.html...), tu corriges les lignes correspondantes :

{$TAXED_PRICE} devient {$TAXED_PRICE / $coeffprice}
etc...

Last edited by ngw (15-07-2014 13:06:14)

Offline

#10 Re: Afficher les prix en HT

(16-07-2014 08:10:26)


Merci, ca marche bien. Y a t-il une solution plus propre pour récupérer coeffprice ?

Offline

#11 Re: Afficher les prix en HT

(16-07-2014 09:36:52)


Je vous rappelle que $PRICE de la boucle product donne le prix HT du produit.

Cf. http://doc.thelia.net/en/documentation/ … oduct.html


OpenStudio Toulouse

Offline

#12 Re: Afficher les prix en HT

(16-07-2014 13:59:04)


Autant pour moi smile
Je lisais en diagonale ou faisait des recherches avec le navigateur, suffisait de cliquer sur l'onglet ... Merci beaucoup