Jump to content

[Résolu] Modification référence commande


Recommended Posts

Bonjour,

 

Je bascule mon site qui fonctionne depuis 2006 sur oScommerce vers Prestashop 1.5 ; je travaille depuis plusieurs mois sur cette nouvelle version prometteuse et compte d'ici quelque temps basculer définitivement sur cette 1.5.

 

Dans l'ensemble j'arrive à m'en sortir, surtout grâce aux nombreuses réponses disponibles sur ce forum très actif.

 

Malgré tout je n'arrive pas à trouver la solution pour remplacer les références commande de type "TRKUKRKML" par un chiffre de type "15648645".

 

Si quelqu'un à la solution, merci d'avance.

 

Cordialement.

Olivier.

Edited by THX9999 (see edit history)
Link to comment
Share on other sites

Cela se passe dans la classe Order, voici la méthode:

/**
 * 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, 'NO_NUMERIC'));
}

 

Il est donc possible de faire un override de la classe pour lui demander de ne mettre que du numérique.

 

Attention, seul 9 caractères autorisés: (sauf si modification de la base de données !)

  • Like 1
Link to comment
Share on other sites

  • 1 month later...

Foxalone,

 

Tu vas dans le dossier "classes", puis dans le dossier "order", tu ouvre le fichier order.php et tu trouves la ligne (autour de 1370) :

 

return strtoupper(Tools::passwdGen(9, 'NO_NUMERIC'));

 

A la place tu mets :

 

return strtoupper(Tools::passwdGen(9, 'NUMERIC'));

 

et voilà...

Edited by THX9999 (see edit history)
  • Like 2
Link to comment
Share on other sites

Foxalone,

 

Tu vas dans le dossier "classes", puis dans le dossier "order", tu ouvre le fichier order.php et tu trouves la ligne (autour de 1370) :

 

return strtoupper(Tools::passwdGen(9, 'NO_NUMERIC'));

 

A la place tu mets :

 

return strtoupper(Tools::passwdGen(9, 'NUMERIC'));

 

et voilà...

 

merci pour ton retour rapide

 

oui ca je l'avais bien fait (ouf ça me rassure un peu ;))

 

mais je ne retrouve pas les références comme avant (avec les numéros 000000805)

je retrouve bine des références numériques mais désordonnées.

 

 

avant j'avais :

 

id 805 références : 000000805

et maintenant j'ai

id811 références : 378047802

 

c'est peut-être pas important mais cela me permet de bien me retrouver au niveau des commandes, facture etc...

Edited by Foxalone (see edit history)
Link to comment
Share on other sites

bonjour,

 

comment est-il possible de faire comme indiqué en commentaire : "

 

* Gennerate a unique reference for orders generated with the same cart id * This references, is usefull for check payment

 

 

l'indication " @return String" doit permettre cela non ?

 

a bientot

Link to comment
Share on other sites

  • 2 months later...
  • 2 weeks later...

Je suis moi-même intéressé.

je suis sur PS1.5.3.

Spécialement pour le suivi invité, il est préferable que le client insère le numéro de la commande qu'il a reçu lors de la confirmation de sa commande, alors qu'en ce moment on lui demande d'ecrire la référence du type "TRKUKRKML".

 

Donc,

- soit comme dans la version PS 1.4.9 mettre le numéro de commande pour le suivi invité.

- soit faire en sorte que la référence = numéro de commande.

 

Mais comment faire ?

Merci de votre aide.

Link to comment
Share on other sites

  • 1 month later...

Merci pour le topic, je viens d'installer le module recommandé par @A1TH

Re bonjour,

A force de fouiner depuis hier là dessus (c'est la raison, force de désespoir, que j'avais posté mon post précédent)... je viens de trouver ceci ce module gratuit.

http://www.prestasho...-andor-cart-id/

 

Ca marche pour moi et ça répond à mon souci.

Je viens d'installer le module chez moi ça fonctionne aussi

  • Like 1
Link to comment
Share on other sites

  • 2 months later...

Moi j'ai tout simplement remplacé dans l'historique client et dans l'admin le numéro de 9 lettres aléatoires (très chiant pour retrouver la commande d'un client que vous avez au téléphone.. B comme bernard, F comme françoise...) par l'id de commande enregistré en BDD.

 

L'id de la commande en BDD est, comme pour toutes ce genre de tables, en auto_increment donc aucun doublon possible entre les commandes. De plus, ils sont ordonés par ordre croissant donc très facile de retrouver les commandes comme cela :)

 

Il faut donc remplacer dans les fichiers .tpl {Order::getUniqReferenceOf($order.id_order)} par la variable $order.id_order.

Pour l'affichage style n°000851 il faut mettre dans le .tpl {l s='#'}{$order.id_order|string_format:"%06d"}

Edited by lambi521 (see edit history)
  • Like 1
Link to comment
Share on other sites

Bonjour.

 

Sinon il suffit d'override la classe Order.php et de réécrire la méthode generateReference en utilisant la fonction php strpad avec l'id de la commande.

Ton message est rés pertinent c'est exactement celas qu'il faudrai faire.

Comment tu réalise ca pour des newwbie comme moi. Aurai tu un bout de code ?

 

Merci d'avance

Link to comment
Share on other sites

  • 2 months later...

Foxalone,

 

Tu vas dans le dossier "classes", puis dans le dossier "order", tu ouvre le fichier order.php et tu trouves la ligne (autour de 1370) :

 

return strtoupper(Tools::passwdGen(9, 'NO_NUMERIC'));

 

A la place tu mets :

 

return strtoupper(Tools::passwdGen(9, 'NUMERIC'));

 

et voilà...

 

Merci

Link to comment
Share on other sites

  • 3 months later...
  • 4 months later...

Bonjour,

 

Je fais actuellement des essais sur la version 1.6 de Presta.  Super travail des développeurs mais ….. POURQUOI des lettres à la place des chiffres pour les confirmations de commande ???  

Des numéros de commande à suivre du style: 5001, 5002, 5003 est plus logique et plus facile à gérer que des lettres aléatoires  …. FLROEIZSE , LOPRKELED, …  

 

Je n’arrive pas à comprendre l’intérêt de cette modification.

Il faut espérer que pour la version 1.7, les confirmations de commandes ne vont pas ressembler à ça : x+&@≥€Ø£2F

 

LITERIE SHOP

www.literieshop.com

Link to comment
Share on other sites

  • 1 month later...

Bonjour.

 

Sinon il suffit d'override la classe Order.php et de réécrire la méthode generateReference en utilisant la fonction php strpad avec l'id de la commande.

 

Bonjour,

Je déterre un sujet un peu ancien car je cherche et je ne comprends pas bien.

 

Pouvez vous expliquer en détail ce qu'il faut faire pour un novice?

 

Merci d'avance

Link to comment
Share on other sites

Bonjour,

En fait mon problème n'est toujours pas résolu, en effet, le module permet de changer la référence des commandes mais je reçois toujours les mails de confirmations avec la référence en lettre. les clients eux, reçoivent bien les confirmations et les factures avec la bonne référence.

c'est uniquement sur les mails d'alerte que la référence est erronée.

 

Si quelqu'un pouvait m'aider.

Merci

Link to comment
Share on other sites

  • 5 weeks later...

Moi c'est l'inverse, le mail que le marchand reçoit est correct mais celui du clients est en mode alpha. Cela est devenu comme ça depuis la mise un jour d'un module, je sais plus lequel. Est ce que quelqu'un a une solution ?

 

J'aimerais afficher la référence comme celà 36320 (id du produit étant 000036320).

 

Je ne retrouve même pas les fichiers dans lequel cela se passe donc si quelqu'un je suis preneur.

 

Merci d'avance

Link to comment
Share on other sites

  • 1 month later...

Bonjour

En effet pas simple à gérer des commandes IZQSCAYLEH .... surtout pour les classer par ordre !!

Avant c'était simple : 1906, 1907, 1908, etc ... On découvre plein de choses originales avec la 1.6 !!!

 

Question : le module cité plus haut est-il comptatible avec la 1.6 ?

Merci

 

(Et merci aux dévelloppeurs de Prestashop de nous pondre de telles inepties !)

Link to comment
Share on other sites

  • 4 weeks later...

j'ai testé sur une version 1.6.08 ça fonctionne.

je n'ai pas encore testé sur une multiboutique

je vais voir ce que ça donne et si on peut avoir in ID par boutique ex : B10000052 pour la boutique 1 et B20000053 pour la boutique 2

a+

Link to comment
Share on other sites

OK ...

Je suis en phase de test sur un Prestashop d'essai et visiblement cela fonctionne.

J'ai également contacté le développeur en Hollande qui m'a assuré du bon fonctionnement de son module.

Leur site : http://prestadev.nl/nl/gratis-modules/

Tout cela m'a l'air sérieux

 

Donc au diable ces fichus numéros en XSFJDF !!!

 

Face à la gène occasionnée par cette numérotation alphabétique, Prestashop aurait pu tout de même prévoir dans les préférences commandes, une possibilité permettant d'opter entre la numérotation numérique ou bien alphabétique pour ceux qui le souhaitent !

  • Like 1
Link to comment
Share on other sites

  • 4 weeks later...

Bonjour,

 

J'ai essayé de commander (pour le télécharger) le module gratuit indiqué ci-dessus.

Malheureusement, pas moyen de créer un compte client, leur site semble avoir un problème et donc pas moyen de récupérer ce module.

Je leur ai envoyé un mot pour signaler la difficulté mais pas de réponse pour l'instant.

Le problème est qu'on ne peut renseigner des informations de contact complètes (le formulaire est incomplet) et donc on ne peut terminer la commande et télécharger le module ...

Link to comment
Share on other sites

Moi j'ai tout simplement remplacé dans l'historique client et dans l'admin le numéro de 9 lettres aléatoires (très chiant pour retrouver la commande d'un client que vous avez au téléphone.. B comme bernard, F comme françoise...) par l'id de commande enregistré en BDD.

 

L'id de la commande en BDD est, comme pour toutes ce genre de tables, en auto_increment donc aucun doublon possible entre les commandes. De plus, ils sont ordonés par ordre croissant donc très facile de retrouver les commandes comme cela :)

 

Il faut donc remplacer dans les fichiers .tpl {Order::getUniqReferenceOf($order.id_order)} par la variable $order.id_order.

Pour l'affichage style n°000851 il faut mettre dans le .tpl {l s='#'}{$order.id_order|string_format:"%06d"}

Link to comment
Share on other sites

Salut,

Je suis parvenu à télécharger le module. Leur site merdait complètement sous Firefox ou Opera (pourtant à jour) et je suis revenu à IE pour pouvoir passer la commande gratuite et télécharger le module.

Installé sur mon site de test sous 1.6.0.9, le module semble fonctionner tout a fait correctement.

Les traductions en Français sont un peu "Google like" mais à part ça c'est impecc.

Link to comment
Share on other sites

Cette sordide histoire de numérotation est une réponse au problème de confidentialité des activités numériques des sites.

 

En clair je suis le concurrent d'un site (ou une administration ? ;), je passe une petite commande régulièrement sur ce site et je regarde alors l'évolution du numéro de commande.

J+0 : 000170

J+10 : 000182

Donc je suppose 12 commandes en 10 jours.

 

Après Prestashop aurait pus faire un petit bouton :

"Je préfère les codes séquentiels pour mes commandes même si cela donne des indications sur mon activité"

Edited by bunam (see edit history)
Link to comment
Share on other sites

Salut,

 

Oui j'ai déjà lu cette explication, à mon avis elle ne tiens pas la route: les factures restent avec une numérotation incrémentale...

Donc le concurrent a toujours l'information qu'il recherche !

 

Et donc ce système de numérotation de commande casse les pieds a (presque) tout le monde pour rien...

Link to comment
Share on other sites

Tout à fait ! avec le numéro de facture, il est possible de suivre l'évolution des commandes !

Donc cette numérotation FKLZMGHAKP  NE SERT  A RIEN !!!

 

Génial pour classer les fiches commandes !

Genial pour entrer les numéros de commandes dans Expeditor !

Genial pour suivre les commandes en cours

etc ... etc ...

 

Merci à Prestashop de nous pondre de telles aberrations et surtout laisser toute la communauté avec ce problème et ne pas écouter ses utilisateurs !

Link to comment
Share on other sites

Bonjour,

B2B, une autre approche : j'aimerais mettre la référence du client (son numéro de commande) dans ce champs... existe-il un module pour cela ?

Cette référence, doit-elle être impérativement unique ? (pas pour moi, je me retrouverais - mais pour PS ? )

Edited by 7m7g7 (see edit history)
Link to comment
Share on other sites

  • 4 weeks later...
  • 1 month later...

Bonjour, 

 

J'utilise ce module qui fonctionne correctement. J'ai juste un souci avec le préfixe de l'ID. Je veux intégrer l'année de la commande. Je précise %Y dans la config comme indiqué. L'ID de la commande commence alors par %Y2014 et non pas juste 2014...

Quelqu'un aurait une solution ? Merci !

Link to comment
Share on other sites

  • 4 months later...

Bonjour,

 

Pour ceux qui veulent rappeler l'id_order à la place de la référence, modifier la classe Order.php comme ci-dessous :

 

public static function generateReference()
{
/*
*return strtoupper(Tools::passwdGen(9, 'NO_NUMERIC'));
*/
 
 
        $query = new DbQuery();
        $query->select('MAX(id_order) as max');
        $query->from('orders');
        $query->where('id_cart' > 0);
        $order = Db::getInstance()->getRow($query);
        $reference = $order['max'] +1 ;
        return sprintf('CMD%06d', $reference);
     
 
}
Edited by zoekkoez (see edit history)
  • Like 1
Link to comment
Share on other sites

  • 4 months later...

Bonjour,

Perso je cherche une solution pour donner quelque chose comme mon système de numérotation de factures pour mon activité d'installateur : CCCC-###-YYYY avec CCCC les 4 premières lettres du nom du client en majuscules ### un incrément de 001 à 999 en fonction du reste du numéro et YYYY l'année de facture. En gros si Mr TOTO en est à sa 4è facture de l'année il recevra le n° TOTO-004-2015. Bien sure si un Mr TOTORO a commandé 7 fois et que Mr TOTO fait sa 4è commande on en sera à TOTO-011-2015. Chaque année l'incrément se remet à 0.  Est-il possible de faire ainsi? (je sais que ce n'est pas facile, j'ai l'avantage que le volume installateur n'est pas de 500 commandes chaque année et que l'incrément est fait manuellement, passer cela en informatique risque de ne pas être aussi simple).

Merci d'avance pour vos réponses.

PS : avec un numéro comme celui là on ne risque pas d'avoir des clients qui jugent le niveau de commande sur le site...

Link to comment
Share on other sites

  • 3 months later...

Bonjour à toutes et à tous.

 

 

Je viens d'installer le module VENTE FLASH PRO dans la version de prestashop 1.6

il m'est impossible de le paramétrer .

Comment résoudre ce problème: [PrestaShop] Erreur fatale dans le fichier de module: /htdocs/fret/modules/flashsalespro/flashsalespro.php: Vous ne pouvez pas passer le paramètre 13 par référence

 

merci

Link to comment
Share on other sites

  • 2 months later...
  • 4 months later...

Bonjour,

Comment overrider la solution de zoekkoez :

 

Bonjour,

 

Pour ceux qui veulent rappeler l'id_order à la place de la référence, modifier la classe Order.php comme ci-dessous :

 

public static function generateReference()
{
/*
*return strtoupper(Tools::passwdGen(9, 'NO_NUMERIC'));
*/
 
 
        $query = new DbQuery();
        $query->select('MAX(id_order) as max');
        $query->from('orders');
        $query->where('id_cart' > 0);
        $order = Db::getInstance()->getRow($query);
        $reference = $order['max'] +1 ;
        return sprintf('CMD%06d', $reference);
     
 

}

 

Cela ne marche pas. Je voudrais éviter un écrasement lors des prochaines maj.

 

Avez-vous une idée du problème ?

 

Merci

Link to comment
Share on other sites

  • 11 months later...

https://www.prestashop.com/forums/topic/548800-free-module-custom-order-reference/?p=2383260

 

il y a sinon ce merveilleux module, à tester évidemment et voir si jamais il y a des soucis, puis un autre module encore une fois GRATUIT qui est celui du post suivant:

 

https://www.prestashop.com/forums/topic/433999-free-module-order-reference-change-module/?p=2017126

 

et encore un:

https://www.prestashop.com/forums/topic/495065-free-module-numeric-order-reference/?p=2220916

 

voilà

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