math zerman Posted September 8, 2022 Share Posted September 8, 2022 Bonjour, j'espère qu'une âme charitable pourra me donner un coup de pouce ...🙂 J'ai besoin tout simplement de mettre à jour des tables en base de donnée lorsqu'un statut de commande change. Au regarde de ce topic, je sais maintenant comment interagir avec prestashop lorsqu'un statut de commande change ( merci 1000 fois Eolia ) : Tout fonctionne très bien lorsque j'utilise une API pour envoyer des mails transactionnels. Maintenant j'aurai besoin de mettre à jour des données lorsque le statut de la commande change mais ça ne fonctionne pas dans l'environnement prestashop... Pourtant Le script qui me permet de mettre à jour ces données fonctionne très bien lorsque j'appelle mon script via url .php sur le navigateur. Voici le script intégré dans la fonction de mon module : public function hookpostUpdateOrderStatus($params) { // Si ma commande est en statut commande accepté je récupère l'id de la commande dans ma variable if($params['newOrderStatus']->id == 2){ $id_cmd_change = $params['id_order']; // Requête pour récupérer les données $queryCmdMsg = Db::getInstance()->executeS(" SELECT O.reference, GROUP_CONCAT(CUSD.value) AS message_carte, CUSD.id_customization, CUSD.index, CUS.id_cart, O.id_order, O.id_cart, O.reference, O.id_customer, O.id_address_delivery, O.id_address_invoice, O.date_add, O.gift, O.gift_message, O.total_shipping_tax_incl, O.total_shipping_tax_excl,O.carrier_tax_rate, O.total_wrapping_tax_excl, O.total_wrapping_tax_incl, CR.reduction_percent, CR.reduction_amount, CR.reduction_tax, T.rate, GH.buyerName, GH.recipientName, GH.recipientMail, GH.text, GH.id_giftcard_history FROM ps_customized_data as CUSD INNER JOIN ps_customization as CUS ON CUSD.id_customization = CUS.id_customization RIGHT JOIN ps_orders as O ON CUS.id_cart = O.id_cart LEFT JOIN ps_psgiftcards_history as GH ON O.id_order = GH.id_order LEFT JOIN ps_order_cart_rule as OCR ON OCR.id_order = O.id_order LEFT JOIN ps_cart_rule as CR ON CR.id_cart_rule = OCR.id_cart_rule LEFT JOIN ps_tax as T ON T.id_tax = CR.reduction_tax WHERE GH.id_order = '$id_cmd_change' GROUP BY CUS.id_customization "); // On split les données dans le tableau message_carte foreach ($queryCmdMsg as $res_message => $message) { $data_carte = $message['message_carte']; $id_carte_cadeau = $message['id_giftcard_history']; list($message, $prenom, $nom, $email) = explode(",", $data_carte); // On update $client = new Client(); $queryUpdate = $client->createRequest(" UPDATE ps_psgiftcards_history SET `buyerName` = '$nom', `recipientName` = '$prenom', `recipientMail` = '$email', `text` = '$message' WHERE ps_psgiftcards_history.id_giftcard_history = '$id_carte_cadeau' "); $client->send($queryUpdate); } } } J'ai tenté plusieurs combinaisons pour update mais rien ne fonctionne ... Merci 1000 fois pour le coup de pouce .. 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