Jump to content

création module : récupérer une variable id_order dans la fonction hookpostUpdateOrderStatus


Recommended Posts

Bonjour ! J'aimerai tout simplement récupérer la variable id_order dans mon module, dans ma fonction

public function hookpostUpdateOrderStatus($params)
    {

????????????????

}

Je précise avoir déjà faire des recherches sur le forum et dans la doc prestashop mais je ne trouve pas la réponse à ma question, il me manque certainement des notions en PHP merci pour votre indulgence !

Merci pour le coup de main !!

Link to comment
Share on other sites

  • 7 months later...

Bonjour Eolia, en faîtes après coup je me suis rendu compte que le hookpostUpdateOrderStatus($params) pose problème 😕

Dans mon script pour le premier cas ça me créer le bug suivant :

--

Dans l'aperçu général des commandes mon état est bien mis à jour ( capture 1 )

Mais dans le détail de la commande le statut n'est pas activé. ( capture 2 )

La commande à un statut "cette commande n'a pas d'état défini" dans le compte client. ( capture 3 )

 

Par contre pour le second cas, donc après génération de la commande le statut change bien partout comme il faut ..

--

 

le script :

 

public function hookActionOrderStatusPostUpdate($params)
    {    

 

        if($params['newOrderStatus']->id == 1){

        $id_cmd_change = $params['id_order'];

        $res_order = Db::getInstance()->executeS("REQUETE*");

 

    foreach ($res_order as $res_order_unique=>$value) {

    // INITIER LES VARIABLES
    require_once('../vendor/autoload.php');

    $client = new \GuzzleHttp\Client();

    $ref_unique = $value['reference'];
    $adresse_livraison = $value['address_delivery'];
    $adresse_facturation = $value['address_invoice'];
    $client_site = $value['customer'];
    $mode_livraison = $value['carrier_name'];
    $date_cmd = $value["DATE_FORMAT(o.date_add,'%d/%m/%y')"];
    $email_client = $value['email'];

        $request = $client->createRequest('POST', 'https://api.sendinblue.com/v3/smtp/email', [

          'body' => "{\"sender\":{\"name\":\"Service Client\",\"email\":\"[email protected]\"},\"to\":[{\"email\":\"$email_client\",\"name\":\"$client_site\"}],\"replyTo\":{\"email\":\"[email protected]\",\"name\":\"Service Client\"},\"params\":{\"PRENOM\":\"$client_site\",\"ORDER_REF\":\"$ref_unique\",\"DATE\":\"$date_cmd\",\"DELIVERYADDRESS\":\"$adresse_livraison\",\"INVOICEADDRESS\":\"$adresse_facturation\"},\"templateId\":3}",

          'headers' => [

            'Accept' => 'application/json',

            'Content-Type' => 'application/json',

            'api-key' => 'xxxxxxxxxxxxx',

          ],
          
        ]);
        $client->send($request);       
    
}

        }

        if($params['newOrderStatus']->id == 4){
        //include('../emails-transactionnels/query-expedie.php');

        $id_cmd_change = $params['id_order'];

        $res_order = Db::getInstance()->executeS("REQUETE*

 ");

        //$i= 1;
        foreach ($res_order as $res_order_unique=>$value) {

            // INITIER LES VARIABLES
            include('../vendor/autoload.php');

            $client = new \GuzzleHttp\Client();

            $ref_unique = $value['reference'];
            $adresse_livraison = $value['address_delivery'];
            $adresse_facturation = $value['address_invoice'];
            $client_site = $value['customer'];
            $mode_livraison = $value['carrier_name'];
            $date_cmd = $value['date_add'];
            $email_client = $value['email'];
            $num_suivi = $value['tracking_number'];
            $track_num_suivi = "https://www.laposte.fr/outils/suivre-vos-envois?code=$num_suivi";


                    $request = $client->createRequest('POST', 'https://api.sendinblue.com/v3/smtp/email', [

                      'body' => "{\"sender\":{\"name\":\"Service Client\",\"email\":\"@gmail.com\"},\"to\":[{\"email\":\"$email_client\",\"name\":\"$client_site\"}],\"replyTo\":{\"email\":\"@gmail.com\",\"name\":\"Service Client\"},\"params\":{\"PRENOM\":\"$client_site\",\"ORDER_REF\":\"$ref_unique\",\"DATE\":\"$date_cmd\",\"DELIVERYADDRESS\":\"$adresse_livraison\",\"INVOICEADDRESS\":\"$adresse_facturation\",\"NUMTRACKING\":\"$num_suivi\",\"TRACKINGSUIVI\":\"$track_num_suivi\"},\"templateId\":1}",

                      'headers' => [

                        'Accept' => 'application/json',

                        'Content-Type' => 'application/json',

                        'api-key' => 'xxxxxxxxxxxxxxxxx',

                      ],
                      
                    ]);
                    $client->send($request);
                    
                   // $i++;

    
}

        }
    }
}

 

Une petite idée ?

Merci beaucoup !!

capture 3.png

capture 2.png

capture 1.png

Edited by math zerman
nouveau bug (see edit history)
Link to comment
Share on other sites

  • 2 weeks later...

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