Passage TVA 5.5% à 7% au 01/01/2012 : les arrondis

0

Comment mettre à jour facilement le catalogue de votre site e-commerce avec le nouveau taux de TVA et gérer les arrondis ?
Facile de créer le code et le taux de TVA à 7%, mais, si vous obtenez bien un nouveau prix exact, voici comment maîtriser vos arrondis pour avoir des prix plus faciles à retenir ou plus « psychologiques ».

Dans le contexte Zencart, les étapes sont les suivantes :

  • - créer la classe de taxe et le taux de taxe à 7%,
  • - mettre à jour tous les produits concernés avec le nouveau code correspondant au taux de 7% par la requête

UPDATE zen_products SET products_tax_class_id = X,

  • calculer et mettre à jour les produits par la requête

UPDATE zen_products SET products_price = ceil(round(products_price * 1.07,1)*2)/2,products_price = round(products_price / 1.07,4)
et
UPDATE zen_products_attributes SET options_values_price = ceil(round(options_values_price * 1.07,1)*2)/2, options_values_price = round(options_values_price / 1.07,4)

Que fait cette requête ?

  1. calcul du nouveau prix TTC avec la TVA à 7%
  2. arrondi au 1/2 euro supérieur
  3. mise à jour du nouveau prix HT

Variantes possibles :

  • 1/2 euro inférieur remplacer ceil() par floor()
  • ajuster les décimales au niveau de round()

A vous de jouer et bonne année 2012 !

Zencart : cannot redeclare class …

0

Pour éviter les angoisses et la perte de temps, il suffit de vérifier que vous n’avez pas trop de script php sur un même emplacement.

Ce qui peut arriver lorsque vous conservez une sauvegarde d’un script modifié avec un nom légèrement différent avec la même extension php.

Exemple vécu :
dans le répertoire modules/pages/checkout_shipping vous faire une modif dans header_php.php, vous conserver la version initiale sous le nom header_php-original.php.
Et vous avez l’erreur « PHP fatal error : cannot redeclare class order … »
Parce que Zencart lit tous les scripts php du répertoire !

Donc pensez à renommer votre script original avec une extension différente, quelle qu’elle soit.
Par exemple header_php.backphp

Cette astuce est valable aussi pour les feuilles de style !
Vérifiez dans le code source de la page si vous n’entraînez pas  des css inutiles !

Google +