Lancer la fonction registerParcel depuis un script PHP

Bonjour,

Je suis en train d’adapter ce tuto pour le faire fonctionner avec le plugin parcelTracking.
J’ai réussi à adapter les codes PHP d’ajout et suppression de colis sans trop de souci. Le scénario d’ajout me crée bien l’équipement correspondant à mon colis avec toutes les infos rentrées depuis JeedomConnect. Le seul hic, c’est que l’équipement est bien créé mais il ne se synchronise pas avec 17Track vu que la fonction registerParcel n’est pas exécutée. Cette fonction est une fonction interne du plugin parcelTracking qui est exécutée quand on clique sur le bouton « Enregistrement » de l’équipement (mon colis).
Il faudrait donc que je puisse l’exécuter depuis mon scénario PHP de création de colis, avec pour argument le numéro de suivi de mon colis. Le numéro de suivi je l’ai donc c’est pas le souci. Mais je n’ai aucune idée de comment lancer cette fonction depuis un script PHP.
Est-ce qu’une bonne âme pourrait m’expliquer comment faire ça ?
Merci :slight_smile:

Hello,

Il faudrait voir ton script mais ce doit être jouable en incluant dedans la classe :
parceltracking.class.php
et en appelant la fonction
addParcel($name, $trackingId, $carrier, $param)

Xav

1 « J'aime »

Bonjour Xav-74,

C’est vrai que ça aurait été mieux si j’avais posté mon script, désolé. Grâce à ta solution, ça marche et en plus j’ai grandement simplifié le scénario d’ajout. Le script d’originei :

require_once dirname(__FILE__) . '/../../plugins/JeedomConnect/core/class/JeedomConnectWidget.class.php';

// Virtuel new colis
$eqNewColis = '[Colis][Nouveau Colis]';

// recupération des données du colis 
$nomNewColis=cmd::byString('#'.$eqNewColis.'[Nom]#')->execCmd() ;
$numSuiviNewColis=cmd::byString('#'.$eqNewColis.'[Numéro suivi]#')->execCmd() ;
$comNewColis=cmd::byString('#'.$eqNewColis.'[Commentaire]#')->execCmd() ;
$transporteurNewColis=cmd::byString('#'.$eqNewColis.'[Transporteur (valeur)]#')->execCmd() ;

// création de l'equipement
$colis = new parcelTracking();
$colis->setName($nomNewColis);
$colis->setEqType_name('parcelTracking');
$colis->setObject_id(1);
$colis->setIsEnable(1);
$colis->setIsVisible(1);

$colis->setConfiguration('trackingId',$numSuiviNewColis);
$colis->setConfiguration('additionalParameter',$comNewColis);
$colis->setConfiguration('carrier',$transporteurNewColis);
//$colis->setConfiguration('transaftership','mondialrelay');
//$colis->setConfiguration('cp_aftership','ACP');

$colis->save();

$scenario->setLog('Id new eq : ' . $colis->getId());

Le même avec ta solution :

require_once dirname(__FILE__) . '/../../plugins/JeedomConnect/core/class/JeedomConnectWidget.class.php';
require_once dirname(__FILE__) . '/../../plugins/parcelTracking/core/class/parcelTracking.class.php';

// Virtuel new colis
$eqNewColis = '[Colis][Nouveau Colis]';

// recupération des données du colis 
$nomNewColis=cmd::byString('#'.$eqNewColis.'[Nom]#')->execCmd() ;
$numSuiviNewColis=cmd::byString('#'.$eqNewColis.'[Numéro suivi]#')->execCmd() ;
$comNewColis=cmd::byString('#'.$eqNewColis.'[Commentaire]#')->execCmd() ;
$transporteurNewColis=cmd::byString('#'.$eqNewColis.'[Transporteur (valeur)]#')->execCmd() ;

parcelTracking::addParcel($nomNewColis, $numSuiviNewColis, $transporteurNewColis, $comNewColis);

Merci :wink:

2 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.