Prestashop : avoir des numéros de commande en chiffre

Prestashop fait des choses biens, et d’autres beaucoup moins biens comme les références des commandes. Par défaut, les références sont une suite de 9 lettres. Un client m’a récemment fait remarqué que ce n’est pas du tout évident de travailler avec des lettres. Imaginez l’un de ses clients lui téléphoner suite à un problème : « Oui bonjour, j’ai un soucis sur la commande R comme radis, K comme kiwi, D comme Daniel, … ». On en fini plus.

Voici la solution :

1/ Supprimez le fichier /www/cache/class_index.php. C’est un fichier qui liste les chemins de toutes les classes utilisées par Prestashop. Si le fichier n’est pas supprimé, la surcharge (override) de la classe ne fonctionnera pas.

class-index

2/ Créez le fichier /www/override/classes/order/Order.php avec le code ci-dessous :

<?php

    class Order extends OrderCore
    {
        /**
         * Gennerate a unique reference for orders generated with the same cart id
         * This references, is usefull for check payment
         *
         * @return String
         */
        public static function generateReference()
        {
            return strtoupper(Tools::passwdGen(9, 'NUMERIC'));
        }
    }

C’est la fonction generateReference() de la classe Order.php qui génère la référence de la commande. Le fait de passer le paramètre à NUMERIC va permettre d’avoir une ref. avec 9 chiffres.

3/ Rafraîchissez l’accueil du site pour générer le fichier class_index.php. Si vous est bon, vous devriez avoir la référence de l’override pour la classe Order :

override

Et voila !

reference-chiffre

Comment supprimer le /fr/ des urls de Prestashop
Quoi privilégier : les polices d'icônes ou les fichiers SVG ?

11 Comments on “Prestashop : avoir des numéros de commande en chiffre”

  1. Hello,

    Complètement d’accord, il est bien plus facile de dicter un chiffre qu’une suite de lettres…

    Merci pour l’info je pense que c’est une bonne astuce !

  2. Bonjour,

    Merci pour cette astuce. Il pourrait aussi être intéressant d’avoir l’id de la commande (id_order) à la place transformé en chaîne, comme c’était le cas dans les anciennes versions de Prestashop. C’est souvent demandé par les clients.

    Cordialement

    1. Bonjour,
      D’un point de vue comptable, je ne comprends pas bien pourquoi on aurait des id sous forme de chaîne.
      L’id est de toute façon lié à la table SQL des commandes dans Prestashop.
      Elle restera auto-incrémentée et sous forme d’un nombre entier.
      Tu dois utiliser la référence pour une commande, pas son ID.

  3. Bonjour,

    Le module, Numérotation personnalisé, que je propose sur ma boutique permet de personnaliser le numéro de commande ou le numéro de facture facilement, en combinant des chiffres, lettres et tags (substitués automatiquement).

    Aussi le module permet de réinitialiser le compteur à une date donnée, par exemple chaque année.

    1. Bonjour,
      Testé sur 1.6.1.7 et ça passe toujours.
      Je devais, de mon côté, supprimé le fichier class_index.php une nouvelle fois après upgrade.

  4. Ca roule, tout s’est bien mis :) Un grand merci.

    Savez-vous si il y a un moyen de forcer les numéros de commande et qu’ils commencent par, par exemple : 20161001 ? Et que ça se suive ensuite.

    Merci :)

  5. Bonjour,
    merci pour ce tuto sympa. Ca fonctione sous presta 1.6.1.11
    Par contre, je voudrais ajouter un préfixe devant le numéro de commande. Il n y a rien dans commande/facture/option des factures.
    Une idée?

Laisser un commentaire

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