Configurer les tarifs Colissimo de sa boutique PrestaShop

A la demande générale, j’ai enfin mis à jour un script SQL que j’avais mis à disposition l’année dernière, qui permet d’injecter rapidement dans votre boutique PrestaShop tous les tarifs Colissimo.

Je vous propose donc la mise à jour de ce script SQL, prenant en compte les tarifs de la Poste en date de mars 2012 (source : La Poste).

[message_box title= »Attention » color= »red »]

Si vous utilisez PrestaShop 1.5. veuillez consulter l’article spécifique aux Colissimo pour PrestaShop 1.5.

[/message_box]

Ce script vous configurera les tarifs suivants :

[list type= »check »]
  • Colissimo France
  • Colissimo France, recommandé R1 à R5
  • Colissimo DOM / TOM
  • Colissimo DOM / TOM recommandé R1 à R5
  • Colissimo DOM / TOM économique
  • Colissimo International (zones A, B, C et D)
[/list]

 

[message_box title= »Attention » color= »red »]

Ce script va écraser dans votre base de données des tables existantes, puis les re-créer en y insérant des lignes.
Veillez donc à faire un test en local ou sur une boutique de test avant de lancer ce script, et bien évidemment faire une sauvegarde de votre base de données.

[/message_box]

Ce script a été généré pour une version 1.4.8.2 de PrestaShop, mais devrait fonctionner avec toutes les versions 1.4.x. Pour les versions antérieures, rien n’est garanti, le schéma de la base ayant changé entre les versions 1.3 et 1.4.

[message_box title= »Attention » color= »yellow »] Ce script prend en compte le fait que le poids des produits est exprimé en grammes (Préférences/Localisation) et non en kilogrammes (cela a un impact sur les tranches de poids). La facturation du transport doit être effectuée en fonction du poids total (et non en fonction du prix total). Si vous avez saisi des poids en kg, une petite commande SQL supplémentaire devrait faire l’affaire :
UPDATE `ps_product` SET weight = weight * 1000
[/message_box]

Comment procéder ?
Téléchargez le script en cliquant sur ce lien.
Avec phpMyAdmin, sélectionnez votre base de données et copiez le contenu du script dans la fenêtre SQL.
Exécutez la requête.
Retournez dans le back-office de votre boutique PrestaShop. Allez dans l’onglet Transport/Transporteurs, et sélectionnez votre transporteur par défaut.
Si tout s’est bien passé, vos transporteurs devraient être correctement configurés !

Voir également

Module Forcer Robots pour PrestaShop

Il y a quelques temps, je vous proposais le module Ultimate noindex, qui permet de …

62 commentaires

  1. Bonjour,

    dejas un tres grand merci pour votre travail .

    je vient de telecharger le module qui marche tres bien mais j’ai un petit probleme car je me retrouve avec des (?) a la place des (é) exemple Colissimo recommand? ou france m?tropolitaine au lieu de recommandé comment faut il faire pour changer le probleme merci de votre aide

    cordialement

    • Pouvez-vous réessayer avec le nouveau fichier que je viens de mettre, en vous assurant de choisir « UTF8 » dans phpMyAdmin au moment de l’exécution du script ?

  2. Bonjour!

    Merci beaucoup!! depuis le temps que je cherchais ce genre de requète SQL ou module pour mes précédente boutique!

    Je viens de gagner 2 jours du coup grace a votre patience d’avoir créer cette requète!!

    Merci Merci Merci!!!

    • 2 jours, peut-être pas quand même ! Mais quelques heures, certainement ! Moi, qui connait bien le principe des tranches de poids, des transporteurs et de tout ce qu’il faut configurer, ça m’a déjà pris 3 heures (et encore, parfois en dupliquant des requêtes plutôt qu’en définissant les tarifs dans le backoffice de PrestaShop).

  3. Bonjour,

    J’ai installer votre script qui est vraiment extra ! Par contre, je ne parvient plus a installer UPS qui est par défaut dans les modules de prestashop 1.4.8.
    Avez-vous une solution a me conseiller svp ?
    Merci beaucoup !
    Michael

    • bjr,
      normalement, il vous suffit de « réinitialiser » le module UPS, ça va recréer les 5 transporteurs UPS

      • Qu’entendez-vous par réinitialiser ? En fait, le module UPS n’a pas été installer auparavant mais maintenant je souhaiterai l’installer (il est déjà présent par défaut dans la version 1.4.8 en non installer) en cliquant sur « installer » mais il y a un message d’erreur :
        Le(s) module(s) suivant(s) n’ont pas été correctement installés :
        upscarrier
        Merci de votre aide !
        Michael
        PS : Si vous souhaitez mes acces je peux vous les fournir volontiers. Merci encore!

  4. Tout d’abord merci pour ce script ! par contre pourquoi ne pas utiliser ces tarifs : ?

  5. Bonjour, je suis auto entrepreneur et je ne facture donc pas de TVA.

    Ces tarifs sont-ils HT ou TTC ?

    Je suppose que dans mon cas il faut que j’inscrive des tarifs TTC et que je n’inclus pas de taxes sur les transport.

    Merci.

  6. Bonjour, Pouvez-vous m’expliquer pourquoi la majorité des commerçants n’utilisent pas cette méthode d’affranchissement ? Quel méthode d’affranchissement les commerçants utilisent à votre avis ? Merci de votre aide.

  7. Super contribution. Un grand merci à toi.

  8. Hello inconnu,
    As tu fais le calcul des frais d’impression ?
    imprimante, cartouches, électricité, entretien et……………….
    Tiens nous au courant du résultat
    Robin

  9. Bonjour,

    c’est génial ce script.
    En revanche pourquoi les tranches de poids se mettent en kg ?
    J’ai ça pour colissimo Fance par exemple : « 0kg à 501kg 501kg à 1001kg 1001kg à 2001kg 2001kg à 3001kg 3001kg à 5001kg 5001kg à 7001kg 7001kg à 10001kg 10001kg à 15001kg 15001kg à 30001kg »
    Merci pour votre aide

    • parce que PrestaShop est par défaut en kg (Préférences, Localisation). Il suffit de se rendre ici pour changer en grammes si vous avez rentré des poids en grammes dans vos produits.

      • J’ai pourtant entré les poids en kg dans mes produits.
        Je ne peux donc pas rester en kilo pour utiliser votre script ?

        • si, mais en exécutant une autre requete SQL pour modifier les tranches de poids (pour transformer les grammes en kg) :

          update ps_range_weight set delimiter1 = delimiter1 / 1000, delimiter2 = delimiter2 / 1000;

  10. Merci 1000 fois. Vous êtes un ange …
    Beaucoup d’heures de saisie évitées grâce à vous !

  11. Merci pour ce super script mais aucun moyen de pouvoir l’utiliser sur une boutique qui a déja d’autres transporteurs de configuré sans tout bousiller ?
    Merci bien

    • Si, mais en faisant de nombreuses modifications ! Il faudrait tout d’abord évidemment virer les « truncate », mais aussi, pour éviter les id en doublons, changer tous les id dans les requêtes, par exemple en les augmentant tous de 10000, exemple :

      INSERT INTO `ps_carrier_group` (`id_carrier`, `id_group`) VALUES(10001, 1);

      attention, à la moindre erreur, les jointures entre les tablea ne marcheraient plus…

      • Merci bien pour les précisions, je vais tenter la manipulation en faisant un backup de ma db avant au cas où 🙂

        Merci encore,

        Vince

  12. Bonjour, J’ai voulu installer ce script sur la version 1.5 de prestashop et ça ne fonctionne pas… Tous les noms des pays ont disparu. Auriez-vous une idée de comment je pourrais régler ça ?
    merci d’avance 🙂

    • Bjr,
      Il faut que je mette à jour ce script pour qu’il fonctionne sur la 1.5
      En attendant que je le fasse, tu peux rechercher sur le forum PS, j’ai vu il y a quelques mois qu’une personne avait écrit un script assez proche du mien pour PS 1.5

  13. Bonjour, étant un véritable novice, je découvre dans mon MyPhpAdmin que mes bases commencent par pss ou lieu de ps.

    Résultat, quand j’execute la commande proposée ici, il ne trouve évidemment pas le ps_carrier.

    Avez-vous une courte explication ?

    Merci.

    • Oui !
      Vous avez choisi de changer le préfixe au moment de l’installation (ça permet notamment de limiter une attaquer de hackers, qui ne trouveront pas de tables avec ps_…)
      Il vous faut donc éditer mon script (notepad, notepad++) avant de l’exécuter dans phpMyAdmin, pour faire un « replace all » de « ps_ » par « pss_ »

  14. Merci pour ce dump infiniment utile.

    Je vous ajoute les lignes pour lettre mini max et Lettre prioritaire, à intégrer après 1) l’import du dump et 2) modifications décrites par Goofy pour PS1.5

    — 1 – on définit les tranches
    — Les tranches pour Lettre Mini max (id_carrier 9)
    INSERT INTO `ps_range_weight` (`id_range_weight`, `id_carrier`, `delimiter1`, `delimiter2`) VALUES(353, 9, 0.000000, 100.000000);
    INSERT INTO `ps_range_weight` (`id_range_weight`, `id_carrier`, `delimiter1`, `delimiter2`) VALUES(354, 9, 101.000000, 250.000000);
    INSERT INTO `ps_range_weight` (`id_range_weight`, `id_carrier`, `delimiter1`, `delimiter2`) VALUES(355, 9, 251.000000, 500.000000);
    INSERT INTO `ps_range_weight` (`id_range_weight`, `id_carrier`, `delimiter1`, `delimiter2`) VALUES(356, 9, 501.000000, 1000.000000);
    — 2 – on définit les tarifs
    — Les tarifs pour les tranches Lettre Mini max
    INSERT INTO `ps_delivery` (`id_delivery`, `id_carrier`, `id_range_price`, `id_range_weight`, `id_zone`, `price`) VALUES(376, 9, NULL, 353, 1, 1.500000);
    INSERT INTO `ps_delivery` (`id_delivery`, `id_carrier`, `id_range_price`, `id_range_weight`, `id_zone`, `price`) VALUES(377, 9, NULL, 354, 1, 2.300000);
    INSERT INTO `ps_delivery` (`id_delivery`, `id_carrier`, `id_range_price`, `id_range_weight`, `id_zone`, `price`) VALUES(378, 9, NULL, 355, 1, 3.500000);
    INSERT INTO `ps_delivery` (`id_delivery`, `id_carrier`, `id_range_price`, `id_range_weight`, `id_zone`, `price`) VALUES(379, 9, NULL, 356, 1, 4.500000);
    — Adresse de suivi pour Lettre Mini max
    UPDATE `ps_carrier` SET `url` = ‘http://www.csuivi.courrier.laposte.fr/suivi/index?id=@’ WHERE `ps_carrier`.`id_carrier` =9;

    — 1 – on définit les tranches
    — Les tranches pour Lettre Prioritaire (id_carrier 8)
    INSERT INTO `ps_range_weight` (`id_range_weight`, `id_carrier`, `delimiter1`, `delimiter2`) VALUES(357, 8, 0.000000, 20.000000);
    INSERT INTO `ps_range_weight` (`id_range_weight`, `id_carrier`, `delimiter1`, `delimiter2`) VALUES(358, 8, 21.000000, 50.000000);
    INSERT INTO `ps_range_weight` (`id_range_weight`, `id_carrier`, `delimiter1`, `delimiter2`) VALUES(359, 8, 51.000000, 100.000000);
    INSERT INTO `ps_range_weight` (`id_range_weight`, `id_carrier`, `delimiter1`, `delimiter2`) VALUES(360, 8, 101.000000, 250.000000);
    INSERT INTO `ps_range_weight` (`id_range_weight`, `id_carrier`, `delimiter1`, `delimiter2`) VALUES(361, 8, 251.000000, 500.000000);
    INSERT INTO `ps_range_weight` (`id_range_weight`, `id_carrier`, `delimiter1`, `delimiter2`) VALUES(362, 8, 501.000000, 1000.000000);
    INSERT INTO `ps_range_weight` (`id_range_weight`, `id_carrier`, `delimiter1`, `delimiter2`) VALUES(363, 8, 1001.000000, 2000.000000);
    INSERT INTO `ps_range_weight` (`id_range_weight`, `id_carrier`, `delimiter1`, `delimiter2`) VALUES(364, 8, 2001.000000, 3000.000000);
    — 2 – on définit les tarifs
    — Les tarifs pour les tranches Lettre Prioritaire
    INSERT INTO `ps_delivery` (`id_delivery`, `id_carrier`, `id_range_price`, `id_range_weight`, `id_zone`, `price`) VALUES(380, 8, NULL, 357, 1, 0.600000);
    INSERT INTO `ps_delivery` (`id_delivery`, `id_carrier`, `id_range_price`, `id_range_weight`, `id_zone`, `price`) VALUES(381, 8, NULL, 358, 1, 1.000000);
    INSERT INTO `ps_delivery` (`id_delivery`, `id_carrier`, `id_range_price`, `id_range_weight`, `id_zone`, `price`) VALUES(382, 8, NULL, 359, 1, 1.450000);
    INSERT INTO `ps_delivery` (`id_delivery`, `id_carrier`, `id_range_price`, `id_range_weight`, `id_zone`, `price`) VALUES(383, 8, NULL, 360, 1, 2.400000);
    INSERT INTO `ps_delivery` (`id_delivery`, `id_carrier`, `id_range_price`, `id_range_weight`, `id_zone`, `price`) VALUES(384, 8, NULL, 361, 1, 3.250000);
    INSERT INTO `ps_delivery` (`id_delivery`, `id_carrier`, `id_range_price`, `id_range_weight`, `id_zone`, `price`) VALUES(385, 8, NULL, 362, 1, 4.200000);
    INSERT INTO `ps_delivery` (`id_delivery`, `id_carrier`, `id_range_price`, `id_range_weight`, `id_zone`, `price`) VALUES(386, 8, NULL, 363, 1, 5.500000);
    INSERT INTO `ps_delivery` (`id_delivery`, `id_carrier`, `id_range_price`, `id_range_weight`, `id_zone`, `price`) VALUES(387, 8, NULL, 364, 1, 6.400000);

    • merci pour cet ajout !
      j’ai testé les trucs de Goofy ce weekend, il manquait encore des choses, donc je vais compiler tout ça en un seul script 1.5 et je ferai du ménage dans les commentaires ensuite

  15. Bonjour,
    j’ai noté également 2 choses :
    – Vous avez fait une erreur je pense dans votre dump au niveau des délimiteurs :
    vous avez par exemple de 0 à 501, puis de 501 à 1001, etc. Il faudrait indiquer : de 0 à 500, puis de 501 à 1000, etc, pour ne pas avoir de chevauchement, car il y aura un problème de tranche si on a un colis avec un poids de 501 unités. (je n’ai pas trouvé de brillante requête pour corriger, par contre c’est simple avec un petit script php)
    – la deuxième c’est, pour une installation de PS >1.5 dans ps_delivery, on devrait je pense ajouter :
    update `ps_delivery` set `id_shop` = 1, id_shop_group =1 (par exemple pour une boutique unique). je n’ai pas noté d’erreur sans cette modification, mais sinon on a les champs id_shop et id_shop_group qui sont NULL

  16. Pour l’histoire des chevauchements, j’ai pu trouver cette requête à ajouter :
    UPDATE `ps_range_weight` SET `delimiter1` = ROUND(`delimiter1`, -1)
    qui fonctionne tip top

    • Olivier, je remets ci-dessous les grandes lignes de ce que je t’ai répondu en mail :

      J’ai mis des tranches 0-501, 501-1001 etc… car dans PS, la borne supérieure est exclue, et que les tarifs de la Poste sont « jusqu’à 0.5kg », « jusqu’à 1kg », donc 500g inclus, 1kg inclus.

      Ma 1ere tranche 0-501 correspond donc exactement au « jusqu’à 0.5kg », puisqu’un colis de 501g n’en fera pas partie.
      Si tu transformes en 0-500, 501-1000, tu n’auras pas de transporteur dispo pour le cas d’un colis de 500g pile, car le 500 de la 1ere tranche est exclu !

  17. Ok pour la poste, mais si je lis la doc de PS 1.5 (toutes les modifs que je propose sont pour la version >1.5)

    http://doc.prestashop.com/pages/viewpage.action?pageId=11272500

    Assurez-vous que vos tranches ne se superposent pas ! Ainsi, la valeur du champ « À » ne devrait pas être égale à la valeur du champ « De » de la tranche suivante.
    Par exemple, si une tranche se termine à 20€, alors la suivante devra commencer environ à 20,001€. De même, si vous devez ajouter une tranche avant une autre commençant à 20€, la nouvelle devra se terminer à 19,999€.

    Je n’ai pas fait de test en live et dans ce cas je ne sais pas quelle attitude aura l’outil dans ce cas limite.

    • C’est en contradiction avec la capture d’écran du dessous, où il est bien spécifié « exclu » pour la borne supérieure.

      Donc pour en avoir le coeur net, j’ai fait ce test :
      – j’ai mis le poids de l’iPod à 500g sur une boutique de test (1.5.2)
      – ma 1ere tranche de poids Colissimo France est 0-501, puis 501-1001 (mon script classique, donc)
      – je mets l’iPod dans mon panier, et lors du choix des transporteur, j’ai bien Colissimo France à 5.70 €

      – j’ai changé ma 1ere tranche pour mettre 0-500, puis 501-1000.
      – meme test : je n’ai plus le Colissimo France à 5.70 €, car je suis entre deux tranches de poids

      Conclusion : la borne supérieure est bien exclue et il ne faut pas laisser de blanc entre la borne supérieur de la tranche X et la borne inférieure de la tranche X+1 🙂

  18. j’ai bien installer ce script, sauf que dans le back office je n’est aucun transporteur dans la liste, mais j’ai tout les autres dans la tranche de prix, options transporteur.
    dans le front office aucun transporteur n’apparaît.
    merci par vanace.

  19. 1.5.2 en plus je n’est plus la table ps_zone??

  20. Bonjour, de même, sur Prestashop 1.5.2 plus de transporteur d’affiché.

    Je vais supprimer les ps_carrier et reinjecter ceux d’origine Prestashop 1.5.2 voir…

  21. Merci bcp, cette aide m’ a été très precieuse . Un grand bravo et surtout vraiment sympa de partager 🙂

  22. Bonjour à tous,
    je suis novice en la matiere et m’apprete a ouvrir ma premiere boutique en ligne. Neanmoins, j’ai une petite question assez « idiote »: pourquoi est-il nécéssaire de passer par un module du type Colissimo? Ne peut-on pas simplement aller à la Poste et envoyer un colis à la main et integrer le numero de colissimo? Est ce que ces modules « transporteurs », outre les tarfis préférentiels apportent un plus dans la gestion de l’envoi, ou dans le calcul automatique des frais de transport, ou autre? Merci de m’éclairer…
    A bientôt.
    Mike

    • Bonjour Mike,
      Les modules « transporteurs » (ou le script de configuration des tarifs Colissimo que je propose) n’ont pour seul but que de calculer le coût de l’envoi de la commande, pour les cumuler aux produits dans la commande.
      Ensuite, bien évidemment, tu vas à la poste et en revenant tu saisis le n° de colissimo dans la commande afin que le client puisse suivre le colis sur le site de la Poste.

  23. Bonsoir,
    Est ce qu’une version Mars 2013 est en préparation?
    Un de mes clients à des tarifs par tranches de 250g datés de mars 2013…

    Merci d’avance

  24. Bonjour et merci pour cet excellent script!

    Je l’ai exécuté et tout s’est ben passé, les commandes se finalisent sans soucis pour la France mais pas pour l’international..

    Le serveur renvoie la réponse suivante :
    « Il n’y a pas de transporteurs disponibles qui délivrent à cette adresse »

    Auriez vous une idée s’il vous plait?

    Cordialement,
    JPS

    ps: il y a apparemment un souci d’affichage de votre code captcha sous firefox

  25. Salut

    As tu créé le script du coup?

  26. Bonjour

    J’aimerais bien ce sql pour 2013 mais prestashop 1.4 toujours , pour une amie, j’ai mis le tarif 2012

  27. Bonjour,
    J’ai copié le script dans Phpmyadmin en cliquant dans mas base et dans la fenêtre sql et rien ne s’ste passé. C’est peut-être parce que j’ai éliminé les transporteurs et j’avais seulement le module so-colissimo. J’ai ensuite crée un transporteur colissimo mais rien à faire. J’ai ensuite essayé de le copier dans Phpmyadmin ma base ps_carrier et toujours rien. Est-il possible de le faire à travers du FTP?
    merci beaucoup…

  28. Bonjour, c’est résolu!, j’avais moi aussi renommé mon préfixe.
    Merci beaucoup!

  29. Bonjour,

    malgré avoir suivi l’installation du script, voici ce que m’affiche la boutique à la finalisation de la commande (compte pourtant crée en Fr avec une adresse Fr):

    « Il n’y a pas de transporteur qui livre à l’adresse sélectionnée. »

    Que faire???

  30. J’aurai du faire une sauvegarde de la base avant, ces scripts ont complètement éclaté ma base (transporteur), le site du client ne peut pluys fonctionner, bref, je comptai gagner du temps mais là…

    Merci quand même

  31. Bonjour,
    Merci pour ce titi. J’ai une version 1.5 de prestashop en mode multiboutique et ce module ne fonctionne pas. Auriez vous une solution?
    Merci de votre réponse.

    Cordialement.

    Adeline

  32. Salut,

    Tout d’abord, merci pour ton aide sur ce sujet qui nous fait gagner un temps fou 🙂

    As-tu envisager de faire le script pour presta 1.6 ?

    Cordialement =)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.