micbus007 Posted September 9, 2015 Share Posted September 9, 2015 Bonjour Je suis sous prestashop 1.6.1.1 Un nouveau client s'est enregistré et a y a introduit adresses de livraison et facturation, jusque la pas de probleme Je me rends compte lors de la préparation de la commande qu'il s'est trompé dans l'orthographe de son adresse, je corrige dans la bo, tout se passe bien, mais au moment d'imprimer les documents je me rends compte que sur les documents l'adresse corrigée n'apparait pas, mais que c'est l'adresse erronée qui y est imprimé. Je me connecte a phpmyadmin, je verifie les tables : ps_address: modification correcte ps_order_invoice: la je remarque que la modification n'est pas faites et que prestashop y récupere les données de facturation et livraison non modifiées, dans les sections: invoice_address et delivery_address Ce qui pose des problemes pour l'envoi des comandes Merci Link to comment Share on other sites More sharing options...
tuk66 Posted September 9, 2015 Share Posted September 9, 2015 Il est un problème connu. Vous devez changer les valeurs de invoice_address et delivery_address manuellement dans la base de données. It is a known problem. You have to change the invoice_address and delivery_address values manually in the database. Link to comment Share on other sites More sharing options...
Eolia Posted September 9, 2015 Share Posted September 9, 2015 Déjà le 1er réflexe de modifier l'adresse en bdd est une erreur, vous pouvez le faire depuis le BO Clients -> Adresses Comme dit tuk66, une fois la commande validée, il n'y a plus le choix il faut éditer invoice_address et delivery_address. Prestashop n'est pas responsable de l'erreur du client. Il faut bien comprendre qu'une commande est un événement figé à un instant t et normalement, non-modifiable. Une commande est un contrat entre vous et le client, si vous la modifiez ensuite, c'est de votre responsabilité. Link to comment Share on other sites More sharing options...
micbus007 Posted September 9, 2015 Author Share Posted September 9, 2015 Merci de vos réponses En ce qui concerne la modification adresse client en BO Clients -> Adresses, je l'ai fait en premier lieu, mais sur les documents a imprimer c'est l'adresse lors de la commande qui apparait , mais pas l'adresse modifiée, c'est pour cette raison que j'ai été voir dans la bdd j'etais par avant avec la version 1.6.0.9, et je n'avais pas ce probleme Je suis bien conscient qu'une commande est un contrat entre moi et le client, mais il devrait etre possible de modifer une adresse de livraison lorsque le client a fait une erreur Ci-dessous une adresse de livraison qu'un client ma communiqué 4 Noue du temps des cerisesappt B5294260 FRESNES Je lui ai envoyé un mail, ce matin pour avoir confirmation. Lorqu'il va me répondre je devrai pouvoir modifier l'adresse qui se trouve sur les documents, sinon la commande va me revenir Bonne journée Link to comment Share on other sites More sharing options...
rodloft Posted October 1, 2015 Share Posted October 1, 2015 Bonjour, Même problème, tout à fait d'accord avec toi micbus007. Link to comment Share on other sites More sharing options...
Eolia Posted October 1, 2015 Share Posted October 1, 2015 (edited) Ah oui, maintenant et depuis la 1.6.1.1, vous pouvez toujours changer l'adresse de livraison dans la commande (ce qui sera fait avec succès) mais vu que, pour économiser des requêtes, ils concatènent l'adresse dans la table ps_order_invoice sous le champ invoice_address lors de la commande, ben votre modif ne sert à rien vu que l'adresse est déjà stockée... Ils ont juste oublié de la mettre à jour en même temps lors de la modification^^ C'est le progrès ! Edited October 1, 2015 by Eolia (see edit history) Link to comment Share on other sites More sharing options...
micbus007 Posted October 1, 2015 Author Share Posted October 1, 2015 Bonsoir si cela vous interesse j'ai ajouté ce script sur une simple page php a placer dans le repertoire www <?phprequire('config/settings.inc.php');$link = mysqli_connect(_DB_SERVER_, _DB_USER_, _DB_PASSWD_, _DB_NAME_);$sql = 'UPDATE '._DB_PREFIX_.'order_invoice SET invoice_address="", delivery_address=""';$ssql = mysqli_query($link, $sql); if (!$ssql){ echo "pas ok";} else { echo "ok";}mysqli_close($link);?> efface toute les adresses dans la table order_invoice sur les champs invoice_address et delivery_address avec ceci les modifications d'adresse sont apportées automatiquement , sur les factures lorsque le client s'est trompé lors de la commande, et qu'il faut corriger Bonne soirée 1 Link to comment Share on other sites More sharing options...
Eolia Posted October 1, 2015 Share Posted October 1, 2015 Quitte à le faire à la barbare, autant le faire propre, d'autant que votre script doit être appelé pour fonctionner. Il suffit de remplacer les lignes 144 à 150 de OrderInvoice.php $invoice_address = new Address((int)$order->id_address_invoice); $invoiceAddressPatternRules = Tools::jsonDecode(Configuration::get('PS_INVCE_INVOICE_ADDR_RULES'), true); $this->invoice_address = AddressFormat::generateAddress($invoice_address, $invoiceAddressPatternRules, '<br />', ' '); $delivery_address = new Address((int)$order->id_address_delivery); $deliveryAddressPatternRules = Tools::jsonDecode(Configuration::get('PS_INVCE_DELIVERY_ADDR_RULES'), true); $this->delivery_address = AddressFormat::generateAddress($delivery_address, $deliveryAddressPatternRules, '<br />', ' '); par $this->invoice_address = ''; $this->delivery_address = ''; Link to comment Share on other sites More sharing options...
rodloft Posted October 1, 2015 Share Posted October 1, 2015 J'ai bien remplacé les lignes 144 à 150 par $this->invoice_address = '';$this->delivery_address = ''; Mais aucun changement ma facture se télécharge toujours avec l'ancienne adresse ?? Tant que j'y suis sur la version 1.6.0.9 j'avais les numéros de téléphone sur les factures une idée pour les remettre sur 1.6.1.1 Merci d'avance Link to comment Share on other sites More sharing options...
Eolia Posted October 2, 2015 Share Posted October 2, 2015 Cette modif est valable pour les nouvelles commandes, elle evite d'enregistrer les adresses formatées dans cette table. En fait il serait plus simple de ne pas aller chercher cette adresse formatée du tout en utilisant l'ancien système. Allez donc dans classes/pdf/HTMLTemplateInvoice.php et remplacez ce bloc, vers la ligne 142 if ($this->order_invoice->invoice_address) $formatted_invoice_address = $this->order_invoice->invoice_address; else $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, $invoiceAddressPatternRules, '<br />', ' '); $delivery_address = null; $formatted_delivery_address = ''; if (isset($this->order->id_address_delivery) && $this->order->id_address_delivery) { if ($this->order_invoice->delivery_address) $formatted_delivery_address = $this->order_invoice->delivery_address; else { $delivery_address = new Address((int)$this->order->id_address_delivery); $formatted_delivery_address = AddressFormat::generateAddress($delivery_address, $deliveryAddressPatternRules, '<br />', ' '); } } par: $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, $invoiceAddressPatternRules, '<br />', ' '); $delivery_address = null; $formatted_delivery_address = ''; if ($this->order->id_address_delivery) { $delivery_address = new Address((int)$this->order->id_address_delivery); $formatted_delivery_address = AddressFormat::generateAddress($delivery_address, $deliveryAddressPatternRules, '<br />', ' '); } Comme ça, même les modifs en page commande sur les anciennes commandes seront prises en compte 2 Link to comment Share on other sites More sharing options...
rodloft Posted October 2, 2015 Share Posted October 2, 2015 Super ça fonctionne ! Merci ! Et pour les numéros de téléphone une idée pourquoi il n'apparaisse plus ? Link to comment Share on other sites More sharing options...
Eolia Posted October 2, 2015 Share Posted October 2, 2015 Bah, ca doit être comme pour les transporteurs qui sont partis sur la planète Neptune ( https://www.prestashop.com/forums/topic/468694-transporteur-manquant-dans-facture-v161/ ), je ne cherche même plus à comprendre... 1 Link to comment Share on other sites More sharing options...
AlexanderOs Posted February 17, 2016 Share Posted February 17, 2016 Bonjour sur la version 1.6.1.4 le problème est encore la réglé en 2 secondes grâce a Eolia. D’après tes explications j'ai créer un override des deux classes concerné et cela fonctionne. Un grand merci à toi C'est pour quand la version stable ? Link to comment Share on other sites More sharing options...
viet2205hp Posted January 16, 2023 Share Posted January 16, 2023 On 2/17/2016 at 5:59 PM, AlexanderOs said: Bonjour sur la version 1.6.1.4 le problème est encore la réglé en 2 secondes grâce a Eolia. D’après tes explications j'ai créer un override des deux classes concerné et cela fonctionne. Un grand merci à toi C'est pour quand la version stable ? i am also facing this problem on PS 1.7.8.3, I did it this way but it doesn't work, anyone have any solution for me? Link to comment Share on other sites More sharing options...
Mediacom87 Posted January 16, 2023 Share Posted January 16, 2023 il y a 46 minutes, viet2205hp a dit : i am also facing this problem on PS 1.7.8.3, I did it this way but it doesn't work, anyone have any solution for me? 1- Merci de respecter la langue de la section où est posté le topic. 2- Merci de ne pas remonter des post qui sont ouverts depuis plusieurs années sans une correspondance parfaite de votre problème avec le sujet abordé, ce qui n'est pas votre cas ici donc, merci de respecter les règles de ce forum et d'ouvrir votre propre topic. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now