Jump to content

[Résolu] TVA TTC et HT Groupes Clients


Recommended Posts

Bonjour à tous,

Après maintes recherches sur les forums, je n'ai pas trouvé de réponse s'il était possible ou non de spécifier une TVA pour un groupe de clienst, le but évident étant la vente aux professionnels et aux particuliers :

- Particuliers : TTC
- Pros : HT

Merci pour vos réponses.


A l'attention de la team : le calcul des taux de TVA est un sujet complexe, Magento refond la totalité de ses calculs dans la version 1.4, tant les problèmes ont été présents.


Samuel

Link to comment
Share on other sites

1) Ajouter le champ TVA à la table group

ALTER TABLE  `PREFIXE_group` ADD  `tva` TINYINT( 1 ) NOT NULL DEFAULT  '1' AFTER  `reduction`



2) Rajouter champ tva sur les groupes

/admin/tabs/AdminGroups.php

Ligne 36 on affiche dans le listing des groupes le champ TVA

'tva' => array('title' => $this->l('Tva'), 'width' => 50, 'align' => 'right'),



Ligne 76 on ajoute le champs TVA dans le formulaire de création de groupe :

'.$this->l('Tva:').' 

   Oui <input type="radio" name="tva" value="1" '.($this->getFieldValue($obj, 'tva') ? 'checked' : '').' />
 Non <input type="radio" name="tva" value="0" '.(!$this->getFieldValue($obj, 'tva') ? 'checked' : '').' />  

 



3) On déclare le nouveau champ dans notre objet "Group"

/classes/Group.php

Ligne 25 :

/** @var bool Tva */
public         $tva;



Ligne 53 :

$fields['tva'] = intval($this->tva);



Ligne 97 on ajoute la fonction pour savoir si le client est assujetti à la TVA ou non :

static public function getTva($id_customer)
{
   $result = Db::getInstance()->getRow('
   SELECT g.`tva`
   FROM `'._DB_PREFIX_.'group` g
   LEFT JOIN `'._DB_PREFIX_.'customer_group` cg ON (cg.`id_group` = g.`id_group`)
   WHERE cg.`id_customer` = '.intval($id_customer).'
   ORDER BY g.`tva` ASC');
   return $result['tva'];
}



4) On déclare la TVA à zéro si le client fait partie du groupe sans tva

/classes/Tax.php

Ligne 170 :

if(!Group::getTva($cart->id_customer))
 return 0 ;




Samuel

14403_HX6D6KMdq0M91KAswYwK_t

Link to comment
Share on other sites

Cela peut être utile sauf que si le client s'enregistre et passe commande immédiatement, on n'aura pas eu le temps de le mettre dans le bon groupe.
Il faudrait pouvoir sélectionner Particulier ou Professionnel (avec numéro de TVA intra-communautaire) pour dispatcher automatiquement un utilisateur dans le bon groupe dès sa création.

Link to comment
Share on other sites

Attention ! Pour la vente aux professionnels en France, ce n'est qu'un probleme d'affichage des prix HT au lieu de TTC puisqu'au final il payera la TVA lors de l'achat.

Ce n'est qu'a l'export que la TVA n'est pas incluse dans le prix.

On a donc 2 cas de figure.

Est ce que cette modif affiche le HT ou exclut la TVA?

Sujet interessant sur la tva et les ventes a l'export:
http://www.prestashop.com/forums/viewthread/470

A noter que le svn a corrigé le calcul de la TVA en le calculant selon l'adresse de livraison et non selon l'adresse de facturation comme c'est le cas pour jusqu'a PS1.2.
PS1.3 verra donc le mode de calcul de la TVA changé !

Link to comment
Share on other sites

Bonjour,

En général quand une société s'inscrit sur un site elle doit être validée par la société qui gère le site, qui après validation le met dans le bon groupe, sinon moi en tant que particulier je m'inscris, puis j'achète HT.

"Attention ! Pour la vente aux professionnels en France, ce n’est qu’un probleme d’affichage des prix HT au lieu de TTC puisqu’au final il payera la TVA lors de l’achat."
Je ne vois pas de quoi vous voulez parler, de la façon dont je l'ai codé, il paye HT.

"Ce n’est qu’a l’export que la TVA n’est pas incluse dans le prix." Hors union européenne uniquement.

Vivement la 1.3
Samuel

Link to comment
Share on other sites

Bonjour,

Merci chateau.fr pour la solution.

J'essaye moi aussi de différencier un accès pro et un accès particulier sur ma boutique. Pour aller un peu plus loin dans la réflexion sur les deux groupes de clients pros et particuliers, savez-vous comment faire pour:

- Définir des prix pros et des prix particuliers pour chaque produit. Pas simplement un pourcentage de remise sur toute la boutique.

- Créer des comptes clients pour des personnes morales au lieu de personne physiques (pas de champs Nom et Prénom mais Raison sociale, Siret,...)

Merci d'avance pour les éventuelles pistes ;)

Link to comment
Share on other sites

Salut !

Pour les comptes clients, il suffit de rajouter quelques champs au formulaire d'inscription, les ajouter aussi à la commande, c'est pas grand chose, je pense qu'il faut garder les noms prénoms de l'interlocuteur c pas si mal même pour une société :)

En ce qui concerne les tarifs de produit par groupe (déjà il faudrait pouvoir dire si un produit fait partie de tel ou tel groupe) c'est déjà un peu plus de modifications parmis les classes, mais je suis actuellement dessus :)

Je suis également sur le fait de pouvoir charger selon le nom de domaine les produits de tel ou tel groupe (en fait un groupe reviendrait à un nom de domaine) pour avoir 2 boutiques bien séparées, mais ça reste une pointe lourd comme modifications.

Prestashop n'a visiblement pas du tout été prévu pour ce genre de choses.

Dans tous les cas toi et moi avons le même problème :) Mais je vais coder tout ça, car je suis obligé de l'avoir.

Mais dans la liste des fonctionnalités à venir il est spécifié :

"Gestion de plusieurs boutiques" ce qui à priori réglera notre problème, mais quand, je ne sais pas du tout, petit appel à la team prestashop ?

http://www.prestashop.com/fr/features#feature4

Samuel

Link to comment
Share on other sites

Hello,

On a effectivement le même problème, puisque mon idée de base est aussi d'avoir l'accès professionnel sur un sous domaine différent de l'accès particulier (pros.monsite.fr et www.monsite.fr). Et aussi d'avoir quelques produits différents pour les deux types de clients. Mais vu que la gestion multi boutique n'existe pas encore, les groupes clients sont déjà une idée à explorer...

Je suis nouveau sur prestashop, je n'ai pas encore trop regardé le code de près, mais je vais pas tarder à m'y mettre. C'est cool de savoir que tu as la même problématique, on va peut-être pouvoir s'entraider pour faire fonctionner ça.

Tiens moi au courant de tes avancées :)

Link to comment
Share on other sites

Tu verras c'est ultra simplement codé, maintenant je dirais que voici les next steps :

- Proposer un tarif par groupe et par produit

- Proposer d'afficher le produit uniquement pour tel ou tel groupe (+ ajouter des filtres en admin pour le retrouver)

- Charger les produits suivant le groupe du client

- Quand un client s'inscrit, déterminer le groupe par défaut suivant le domaine

- Déterminer le groupe à afficher suivant le domaine + pas de tarif si le groupe est pro



ça fait quand même du taf :)


Samuel

Link to comment
Share on other sites


"Attention ! Pour la vente aux professionnels en France, ce n’est qu’un probleme d’affichage des prix HT au lieu de TTC puisqu’au final il payera la TVA lors de l’achat."
Je ne vois pas de quoi vous voulez parler, de la façon dont je l'ai codé, il paye HT.


Bonjour,

Jolvil a raison, en France ce système ne convient pas : les entreprises paient en TTC et récupèrent ensuite la TVA.
Dans quel pays êtes-vous ?
Link to comment
Share on other sites

Tout ça pour dire que Prestashop ne le gère pas.

Dites moi si je me trompe :

Il faudrait créer 2 zones de Pays : Hors UE et UE

Ensuite pouvoir associer à ces zones une TVA

Ensuite créer plusieurs groupes : particuliers/pros/pros_tva_intracomm et stipuler que le groupe pros_tva_intracomm, malgré qu'il soit en UE, ne paye pas la TVA.


Samuel

Link to comment
Share on other sites

  • 3 months later...

Bonjour,

Je suis Belge et je gère un site E Business qui vend en France, au luxemboug, en Suisse, en Afrique et bien sur en Belgique.
J’ai donc de l’expérience pour le vente en CEE et Hors CEE.
Le principe de la TVA est relativement simple :

En CEE :
Si vous vendez vers un pays de la CEE (autre que le votre), la TVA ne doit pas être ajoutée SI – le client fournit son No de TVA Intracommunautaire et que l’adresse de facturation se situe dans un pays CEE autre que le votre. – L’adresse de livraison doit se situer dans un pays CEE autre que le votre. Autrement dit la marchandise doit sortir du pays.
Les 2 conditions doivent être remplies. Dans tous les autres cas la TVA du pays qui facture est d’application.
Cette règle est valables pour les 85 % des marchandises (pas les services et pas celles qui pour dépassent une somme importante).

Hors CEE
La TVA ne s’applique pas, que vous vendiez à un professionnel ou à un particulier. Vous devez obtenir un formulaire EX1 de la douane pour prouvez l’exportation (sauf cas particulier).

A première vue PRESTASHOP ne permet pas l’application automatique de ses règles. C’est dommage car c’est la seule raison qui m’empêche de développer un nouveau site sur base de PRESTASHOP.
Ces règles sont-elles incluent dans la dernière version ou à défaut seront-elles présentent dans la prochaine version ?

Il faudrait donc que PrestShop

1. Permettent au client d'encoder son No de TVA (s'il n'en a pas il n'encode rien)
2. Si le Pays de livraison et de facturation est Hors CEE alors PAS de TVA appliquée
2. Si non (Pays CEE) contrôle si le No de TVA est présent, SI NON La TVA est appliquée
3 Si oui, contrôle si le pays de livraison est différent de celui de la boutique SI NON la TVA est appliquée
4. SI OUI, Contrôle si le Pays de Facturation est différent de celui de la boutique, SI NON la TVA est appliquée
5. Si oui PAS de TVA appliquée
NB : Taux de TVA appliqué = Celui du pays de la boutique.

Un tel module résoudrait plus de 90% des transactions B2B en et hors communauté Européenne.

Si un super codeur peut si mettre, cela ne devrait pas lui prendre des années.

Avis aux amateurs,

Cordialement



Cordialement,

Link to comment
Share on other sites

  • 1 month later...
  • 1 month later...

Bonjour,

ces petits bouts de code m'ont été très utiles pour les clients pro CEE, mais est-il possible de mettre la TVA sur les frais de port à 0 également ? les particuliers CEE payent la TVA, donc je ne peux pas mettre la TVA à 0 sur le transporteur.

ou le top, serait d'appliquer un transporteur avec une TVA à 0 sur un groupe de client précis (celui qui n'a pas de TVA sur le total de ses achats).

Merci d'avance.

Link to comment
Share on other sites

  • 2 months later...

Je n'ai pas eu d'autre choix que de créer un transporteur supplémentaire pour les clients qui ne sont pas en France et d'ajouter [ professionnal only ] au nom de celui-ci et mettre la TVA à 0.

un client étranger à donc le choix entre 2 transporteurs : 1 classique avec TVA et 1 réservé au pro sans TVA (avec dans les conditions de vente et de livraison un message indiquant que si un particulier étranger choisi le transporter réservé aux pros, il ne sera pas livré

c'est du bricolage..mais je ne n'ai que ça pour le moment.

Link to comment
Share on other sites

  • 2 months later...
  • 11 months later...

Bonjour à tous !

 

Quelqu'un saurait-il dans quelle méthode faut-il placer le code de l'étape 4 ?

if(!Group::getTva($cart->id_customer))

return 0 ;

J'ai la version 1.4.3 et les lignes ne sont visiblement pas correspondantes.

 

Et merci pour cette documentation. joseph

Link to comment
Share on other sites

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...