Jump to content

Rudy69

New Members
  • Posts

    18
  • Joined

  • Last visited

Everything posted by Rudy69

  1. J'ai pu corriger par moi-même. 1. J'ai donc copié le contenu surchargé du fichier /override/classes/Link.php vers /classes/Link.php 2. J'ai supprimé le fichier /override/classes/Link.php 3. J'ai vidé le cache via le back office 4. J'ai recréé mon fichier /override/classes/Link.php en écrivant : class Link extends LinkCore { ... }
  2. Je pense avoir trouvé comment contourner le problème. Mettre toutes les informations de l'override dans le fichier principal Link.php, supprimer l'override, vider le cache et recréer l'override. C'est la logique que je vais suivre.
  3. Eh bien je dois modifier une ligne sur le fichier /override/classes/Link.php : class Link extends LinkCore à la place de : class LinkCore Merci à vous.
  4. Alors, c'est moi qui ai fait l'erreur en souhaitant mettre en place une logique, dans ce fichier, de modification d'url pour les catégories. Du coup, aucun module n'est en cause. Et je souhaiterais savoir comment modifier le début du fichier afin qu'il soit bien écrit, c-a-d "class Link extends LinkCore {" Mais lorsque je fais la modification et que je vide le cache, des erreurs apparaissent. Et je ne sais comment faire pour supprimer le fichier class_index.php car j'ai l'impression qu'il n'existe pas sur Prestashop 1.7.x Je sèche
  5. Bonjour, Je suis sur une version 1.7.8.11 et je rencontre un problème d'installation de module. C'est un prestataire tiers qui m'indique qu'en essayant d'installer le module, une erreur apparait empêchant son installation. Il me dit qu'au niveau de /override/classes/Link.php, il y a un problème. Le fichier commence par : class LinkCore { alors qu'il devrait commencer par : class Link extends LinkCore { Je suis d'accord avec cette remarque mais si je tente de corriger, j'ai des erreurs en front et back m'empêchant d'accéder au site web. Y a-t-il des actions à mener une fois la correction du fichier override opérée afin que le site fonctionne ? De plus, je ne sais pas quel module utilise cet override. Merci pour votre aide.
  6. Hello, I wonder how to make a custom sql query in the override/controllers/front/listing/CategoryController.php page. If I use $query->leftJoin() or/and $query->where() methods, it fails. IA told me to do this: use Doctrine\ORM\AbstractQuery; class MyQuery extends AbstractQuery { } $query = new MyQuery(); But it still does not work. Any help would welcome Thank you.
  7. Hello, On Prestashop 1.7.6.5, I would like to know if it was possible to propose a new choice of sorting products in the dropdown list to customers from a feature I created. Each product offers this new feature "ranking" which contains a number from 1 to n. The sorting of products would then be based on this feature. I have searched for "modules_facetedsearch\src\Product\SearchProvider.php" and more precisely for the "getAvailableSortOrders()" function but I have no idea how to set up this solution. If you have any clues, I would be grateful. Sincerely
  8. Merci @Eolia pour votre réponse rapide. C'est bien ce qu'il me semblait. Toutefois, ce qui est étrange, c'est qu'avec la méthode hookActionObjectOrderAddAfter(), j'arrive bien à récupérer toutes les informations hormis ces données de cookies. Auriez-vous connaissance d'une méthode d'action équivalente avant le paiement qui me permettrait de récupérer les cookies. Et dans ce cas, je pourrais peut-être comparer les données avant paiement et après paiement et ainsi avoir toutes les données dont j'ai besoin.
  9. Bonjour, J'ai développé un module de suivi des cookies après le paiement CB car Google Analytics ne suit pas toutes les commandes passées sur mon site. J'utilise le service Tarteaucitron (cookies) pour le RGPD. Tous les paiements qui sont effectués autrement qu'avec CB, je peux récupérer l'état des cookies (vrai ou faux). Par contre, pour les paiements effectués par CB, je n'ai aucune information sur les cookies. Avez-vous une idée de la raison pour laquelle les cookies ne sont pas récupérés ? Existe-t-il un autre hook que je peux utiliser et qui pourrait m'aider à faire ce dont j'ai besoin ? J'utilise le code suivant (basé sur le hook actionObjectOrderAddAfter) : public function hookActionObjectOrderAddAfter($params) { $payment = $params['object']->payment; $date_add = $params['object']->date_add; $total_paid_tax_incl = $params['object']->total_paid_tax_incl; $reference = $params['object']->reference; $rgpd = isset($_COOKIE['tarteaucitron']) && !empty($_COOKIE['tarteaucitron']) ? $_COOKIE['tarteaucitron'] : 'N/D'; $sql_select = 'SELECT id_order FROM `' . _DB_PREFIX_ . 'orders` WHERE `reference` = "'.$reference.'"'; $id_order = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($sql_select); $sql = array(); $sql[] = 'INSERT INTO `' . _DB_PREFIX_ . 's2m_trackingpaiement` (`id_order`, `reference`, `total_paid_tax_incl`, `rgpd`, `payment`, `date_add`, `hook`) VALUES ("'.$id_order.'", "'.$reference.'", "'.$total_paid_tax_incl.'", "'.$rgpd.'", "'.$payment.'", "'.$date_add.'", "actionObjectOrderAddAfter")'; foreach ($sql as $query) { if (Db::getInstance()->execute($query) == false) { return false; } } } Merci pour votre aide.
  10. Bonjour, J'ai commencé le développement d'un module côté backoffice de devis qui s'inspire essentiellement de la partie commande de l'admin Prestashop. A ce stade du développement, j'ai un lien "devis" dans le menu latéral gauche qui pointe vers un listing de devis mais je n'arrive pas à comprendre le mécanisme qui me permet d'accéder à la partie détail du devis lorsque je clique sur "Voir". Dans mon contrôleur, j'ai cette ligne mais je ne sais pas quelles méthodes (fonctions) développer pour que je puisse avoir une page qui affiche le détail des données du devis (juste une simple page qui affiche le contenu de mon tableau de données du devis). $this->addRowAction('view'); Auriez-vous une idée, s'il vous plaît ? La documentation Prestashop n'est pas spécialement bien fournie. Merci !
  11. Hello, I have started the development of a quote module which is essentially inspired by the order part of the Prestashop admin. At this stage of development, I have a link "quote" in the left side menu that points to a listing of quotes but I can't figure out the mechanism that allows me to access the detail part of the quote when I click on "View". In my controller, I have this line but I don't know what methods (functions) to expand so that I can have a page that displays the quote data detail (just a simple page that displays the contents of my quote data table). $this->addRowAction('view'); Would you have an idea please? The Prestashop documentation is not the easiest to understand. Thank you! Translated with www.DeepL.com/Translator (free version)
  12. Hello, I have developed a module to track cookies after CB payment as Google Analytics does not track all orders placed on my website. I use the Tarteaucitron service for the GDPR. All payments that are made other than with CB, I can retrieve the status of cookies (true or false). For payments made by credit card, I have no feedback. Do you have any idea why the cookies are not retrieved? Is there another hook I can use that could help me do what I need? Thanks for your help. I use the following code (based on the hook actionObjectOrderAddAfter): public function hookActionObjectOrderAddAfter($params) { $payment = $params['object']->payment; $date_add = $params['object']->date_add; $total_paid_tax_incl = $params['object']->total_paid_tax_incl; $reference = $params['object']->reference; $rgpd = isset($_COOKIE['tarteaucitron']) && !empty($_COOKIE['tarteaucitron']) ? $_COOKIE['tarteaucitron'] : 'N/D'; $sql_select = 'SELECT id_order FROM `' . _DB_PREFIX_ . 'orders` WHERE `reference` = "'.$reference.'"'; $id_order = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($sql_select); $sql = array(); $sql[] = 'INSERT INTO `' . _DB_PREFIX_ . 's2m_trackingpaiement` (`id_order`, `reference`, `total_paid_tax_incl`, `rgpd`, `payment`, `date_add`, `hook`) VALUES ("'.$id_order.'", "'.$reference.'", "'.$total_paid_tax_incl.'", "'.$rgpd.'", "'.$payment.'", "'.$date_add.'", "actionObjectOrderAddAfter")'; foreach ($sql as $query) { if (Db::getInstance()->execute($query) == false) { return false; } } }
  13. C'est une très bonne approche à laquelle je n'avais pas pensé. Je vais donc tenter de faire ainsi et reprendrai contact afin de vous signaler si j'ai finalement résolu ce problème. Merci @Eolia pour votre implication.
  14. Merci @Eolia J'ai cette impression étrange : être prêt du but tout en ayant l'air de tourner autour du pot. J'ai saisi la notion que vous étayez au niveau du contrôleur. J'ai tenté de parcourir les contrôleurs mais je ne vois pas où je pourrais gérer ce dont je souhaite. Pourriez-vous me guider svp ? 1/ Y a-t-il une méthode (fonction) qui nous permet de récupérer l'état du paiement ? Par exemple, si paiement ok, je mets à jour ma table de données en y insérant id_seller ? 2/ Faut-il plutôt localiser les contrôleurs des différents moyens de paiement (pour le coup, il y aura Paypal et Stripe a minima) et insérer en table de données si paiement ok ?
  15. Hey, I read your post and it helped me a bit to do what I wanted to do but there is one difference between our project. Let me explain. Actually, in Admin, I go to orders and I add a new one but I do not click the submit "AddOrder" button, I click the button that send a link to customer so that they should pay this order. I created a new field in the admin order form which is a list and the value is not sent to the link given to the customer so it is equal to 0 all time. I modify many pages but I cannot manage to get this value. Is there someone here who can help me please ? Thank you.
  16. Je viens de revoir le code de ma page mais cela ne change rien. $id_seller vaut bien zéro alors qu'à la création de la commande, côté admin, j'avais sélectionné un id_seller différent de zéro. Ce dont je souhaiterais avoir, c'est la conservation de l'id_seller qui est la valeur numérique d'une liste déroulante (select) depuis la création de la commande jusqu'au paiement de cette commande en front par le client. Vous me suivez ? Voici le code qui, hélas, n'aboutit à rien de plus. <?php class OrderConfirmationController extends OrderConfirmationControllerCore { public $id_seller; public function init() { parent::init(); $id_seller = (int) (Tools::getValue('id_seller')); var_dump( $id_seller ); die(); // Une fois le paiement effectué, s'affiche à l'écran int(0) } public function initContent() { parent::initContent(); // L'objectif est de récupérer le vrai id_seller, sinon on met un id_seller à 6 (bidon) if(isset($this->id_seller) && !empty($this->id_seller)) { $the_magic = $this->id_seller; } else { $the_magic = "6"; } $db = \Db::getInstance(); $request = 'UPDATE `' . _DB_PREFIX_ . 'orders` SET id_seller = ' . (int) $the_magic . ' WHERE id_order = ' . (int) $this->id_order; $db->execute($request); } }
  17. Merci @Eolia pour votre réponse. Le code que vous voyez est en commentaire mais je vais revoir cette page et la "re-poster" sans commentaire afin que ce soit plus clair pour l'aide.
  18. Bonjour, Je sollicite votre aide pour tenter de résoudre un problème. J'utilise Prestashop 1.7. Je me rends dans l'administration du site web > Commandes > Ajouter une commande. Sur le formulaire de création (themes/default/template/controllers/orders/form.tpl), j'ai rajouté une liste déroulante (select) qui me permet de récupérer une donnée. Une fois le formulaire dûment complété, je ne le valide pas à l'aide du bouton submit "Créer une commande" mais grâce au lien "Envoyer un e-mail au client contenant le lien pour effectuer le paiement." Cela envoie un e-mail au client. Dans le corps de l'e-mail qu'il reçoit, il y a une URL qu'il doit cliquer pour régler sa commande. Cet URL contient des paramètres. J'ai réussi à y passer le paramètre souhaité "id_seller=7" où 7 est purement fictif pour l'exemple (id_seller est le "name" de mon champ select). Par contre, là où je rencontre le problème, c'est qu'une fois l'URL cliqué, le client règle sa commande mais la valeur id_seller n'est pas prise en compte. J'ai tenté un override dans le fichier override/controllers/front/OrderConfirmationController.php dont voici le code mais en vain. Merci pour votre éventuelle aide ! <?php class OrderConfirmationController extends OrderConfirmationControllerCore { public $id_seller; public function init() { parent::init(); /* $this->id_seller = (int) (Tools::getValue('id_seller')); $order = new Order((int) $this->id_order); $order = new Order(Order::getIdByCartId((int) ($this->id_cart))); $cart = Cart::getCartByOrderId($this->id_order); $this->id_seller = $order->id_seller; */ $cart = Cart::getCartByOrderId($this->id_order); $order = new Order(Order::getIdByCartId((int) ($this->id_cart))); var_dump( $order, $cart ); die(); } public function initContent() { parent::initContent(); // L'objectif est de récupérer le vrai id_seller, sinon on met un id_seller à 6 (bidon) if(isset($this->id_seller) && !empty($this->id_seller)) { $the_magic = $this->id_seller; } else { $the_magic = "6"; } $db = \Db::getInstance(); $request = 'UPDATE `' . _DB_PREFIX_ . 'orders` SET id_seller = ' . (int) $the_magic . ' WHERE id_order = ' . (int) $this->id_order; $db->execute($request); } }
×
×
  • Create New...