$quotationStyle = 'style="font-weight:bold;"'; // Précision de l'expéditeur et du destinataire $to = array("pays" => "FR", "code_postal" => "75002", "ville" => "Paris", "type" => "particulier", "adresse" => "41, rue Saint Augustin"); $from = array("pays" => "FR", "code_postal" => "13002", "ville" => "Marseille", "type" => "particulier", "adresse" => "1, rue Chape"); // Informations sur la cotation (date d'enlèvement, le délai, le code de contenu) $quotInfo = array("collecte" => date("Y-m-d"), "delai" => "aucun", "code_contenu" => 10120); // Initialisation de la classe $cotCl = new Env_Quotation(array("user" => $userData["login"], "pass" => $userData["password"], "key" => $userData["api_key"])); // Initialisation de l'expéditeur et du destinataire $cotCl->setPerson("expediteur", $from); $cotCl->setPerson("destinataire", $to); // Précision de l'environnement de travail $cotCl->setEnv('test'); // Initialisation du type d'envoi $cotCl->setType("colis", array(1 => array("poids" => 2, "longueur" => 18, "largeur" => 18, "hauteur" => 18))); $cotCl->getQuotation($quotInfo); // Si pas d'erreur CURL if (!$cotCl->curlError) { print_r($pointCl->respErrorsList); // Si pas d'erreurs de la requête, on affiche le résultat if (!$cotCl->respError) { $cotCl->getOffers(false); ?> <style type="text/css"> table tr td {border:1px solid #000000; padding:5px; } </style> <table> <thead> <tr> <td>Transp / Service</td> <td>Prix</td>
function test_Env_Quotation($userData) { $result = default_value(); $start = microtime_float(); /* Initialisation */ $order_env = new Env_Quotation(array("user" => $userData["login"], "pass" => $userData["password"], "key" => $userData["api_key"])); $order_from = array("pays" => "FR", "code_postal" => "75002", "type" => "particulier", "ville" => "Paris", "adresse" => "41, rue Saint Augustin | floor nr 3", "civilite" => "M", "prenom" => "Test_prenom", "nom" => "Test_nom", "email" => "*****@*****.**", "tel" => "0601010101", "infos" => ""); $order_to = array("pays" => "AU", "code_postal" => "2000", "type" => "particulier", "ville" => "Sydney", "adresse" => "King Street", "civilite" => "M", "prenom" => "Test_prenom_dst", "nom" => "Test_nom_dst", "email" => "*****@*****.**", "tel" => "0601010101", "infos" => "Some informations about my shipment"); // Informations sur l'envoi $order_quotInfo = array("collecte" => date("Y-m-d"), "delai" => "aucun", "code_contenu" => 10120, "operator" => "UPSE", "raison" => "sale", "colis.valeur" => 1200, "colis.description" => "Des journaux", "disponibilite.HDE" => "09:00", "disponibilite.HLE" => "19:00"); $order_env->setPerson("expediteur", $order_from); $order_env->setPerson("destinataire", $order_to); $order_env->setType("colis", array(1 => array("poids" => 21, "longueur" => 7, "largeur" => 8, "hauteur" => 11), 2 => array("poids" => 21, "longueur" => 7, "largeur" => 8, "hauteur" => 11))); // Pour cet envoi on est obligé de joindre une facture proforma qui résume 2 objets expédiés $order_env->setProforma(array(1 => array("description_en" => "L'Equipe newspaper from 1998", "description_fr" => "le journal L'Equipe du 1998", "nombre" => 1, "valeur" => 10, "origine" => "FR", "poids" => 1.2), 2 => array("description_en" => "300 editions of L'Equipe newspaper from 1999", "description_fr" => "300 numéros de L'Equipe du 1999", "nombre" => 300, "valeur" => 8, "origine" => "FR", "poids" => 0.1))); $order_env->setEnv('test'); $orderPassed = $order_env->makeOrder($order_quotInfo, true); $offer_env = new Env_Quotation(array("user" => $userData["login"], "pass" => $userData["password"], "key" => $userData["api_key"])); $offer_env->setEnv('test'); $offer_to = array("pays" => "FR", "code_postal" => "75002", "ville" => "Paris", "type" => "particulier", "adresse" => "41, rue Saint Augustin"); $offer_from = array("pays" => "FR", "code_postal" => "13002", "ville" => "Marseille", "type" => "particulier", "adresse" => "1, rue Chape"); $offer_quotInfo = array("collecte" => date("Y-m-d"), "delai" => "aucun", "code_contenu" => 10120); $offer_env->setPerson("expediteur", $offer_from); $offer_env->setPerson("destinataire", $offer_to); $offer_env->setType("colis", array(1 => array("poids" => 2, "longueur" => 18, "largeur" => 18, "hauteur" => 18))); $offer_env->getQuotation($offer_quotInfo); $offer_env->getOffers(false); /* Reception test */ if (!$orderPassed) { $result['reception'] = max($result['reception'], ERROR); $result['reception_info'][count($result['reception_info'])] = 'Error while making the order (makeOrder returned false)'; } if ($order_env->curlError) { $result['reception'] = max($result['reception'], ERROR); $result['reception_info'][count($result['reception_info'])] = 'Error while sending the query'; } else { if ($order_env->respError) { $result['reception'] = max($result['reception'], ERROR); $result['reception_info'][count($result['reception_info'])] = 'Invalid query : ' . $userData["api_key"]; foreach ($order_env->respErrorsList as $message) { $result['reception_info'][count($result['reception_info'])] = $message['message']; } } else { if ($offer_env->curlError) { $result['reception'] = max($result['reception'], ERROR); $result['reception_info'][count($result['reception_info'])] = 'Error while sending the query'; } else { if ($offer_env->respError) { $result['reception'] = max($result['reception'], ERROR); $result['reception_info'][count($result['reception_info'])] = 'Invalid query : ' . $userData["api_key"]; foreach ($offer_env->respErrorsList as $message) { $result['reception_info'][count($result['reception_info'])] = $message['message']; } } else { $result['reception'] = max($result['reception'], OK); $result['reception_info'][count($result['reception_info'])] = 'Reception time : ' . (microtime_float() - $start) . 's'; } } } } /* Additionals test */ /* Test for the result structure */ $result['additionals'][0]['name'] = 'Structure'; $result['additionals'][0]['state'] = OK; if (count($offer_env->offers) == 0) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '$offers array is empty'; } else { foreach ($offer_env->offers as $x => $offer) { if (!isset($offer_env->offers[$x]['mode'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"mode" not defined in $offers[' . $x . '] array'; } if (!isset($offer_env->offers[$x]['url'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"url" not defined in $offers[' . $x . '] array'; } if (!isset($offer_env->offers[$x]['characteristics'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"characteristics" not defined in $offers[' . $x . '] array'; } if (!isset($offer_env->offers[$x]['alert'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"alert" not defined in $offers[' . $x . '] array'; } if (!isset($offer_env->offers[$x]['operator'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"operator" not defined in $offers[' . $x . '] array'; } else { if (count($offer_env->offers[$x]['operator']) == 0) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '$offers[' . $x . ']["operator"] array is empty'; } else { if (!isset($offer_env->offers[$x]['operator']['code'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"code" not defined in $offers[' . $x . ']["operator"] array'; } if (!isset($offer_env->offers[$x]['operator']['label'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"label" not defined in $offers[' . $x . ']["operator"] array'; } if (!isset($offer_env->offers[$x]['operator']['logo'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"logo" not defined in $offers[' . $x . ']["operator"] array'; } } } if (!isset($offer_env->offers[$x]['service'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"operator" not defined in $offers[' . $x . '] array'; } else { if (count($offer_env->offers[$x]['service']) == 0) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '$offers[' . $x . ']["service"] array is empty'; } else { if (!isset($offer_env->offers[$x]['service']['code'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"code" not defined in $offers[' . $x . ']["service"] array'; } if (!isset($offer_env->offers[$x]['service']['label'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"label" not defined in $offers[' . $x . ']["service"] array'; } } } if (!isset($offer_env->offers[$x]['price'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"price" not defined in $offers[' . $x . '] array'; } else { if (count($offer_env->offers[$x]['price']) == 0) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '$offers[' . $x . ']["price"] array is empty'; } else { if (!isset($offer_env->offers[$x]['price']['currency'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"currency" not defined in $offers[' . $x . ']["price"] array'; } if (!isset($offer_env->offers[$x]['price']['tax-exclusive'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"tax-exclusive" not defined in $offers[' . $x . ']["price"] array'; } if (!isset($offer_env->offers[$x]['price']['tax-inclusive'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"tax-inclusive" not defined in $offers[' . $x . ']["price"] array'; } } } if (!isset($offer_env->offers[$x]['collection'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"collection" not defined in $offers[' . $x . '] array'; } else { if (count($offer_env->offers[$x]['collection']) == 0) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '$offers[' . $x . ']["collection"] array is empty'; } else { if (!isset($offer_env->offers[$x]['collection']['type'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"type" not defined in $offers[' . $x . ']["collection"] array'; } if (!isset($offer_env->offers[$x]['collection']['date'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"date" not defined in $offers[' . $x . ']["collection"] array'; } if (!isset($offer_env->offers[$x]['collection']['label'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"label" not defined in $offers[' . $x . ']["collection"] array'; } } } if (!isset($offer_env->offers[$x]['mandatory'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"mandatory" not defined in $offers[' . $x . '] array'; } else { if (count($offer_env->offers[$x]['mandatory']) == 0) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '$offers[' . $x . ']["mandatory"] array is empty'; } } } } if (count($order_env->order) == 0) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '$order array is empty'; } else { if (!isset($order_env->order['ref'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"ref" not defined in $order array'; } if (!isset($order_env->order['date'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"date" not defined in $order array'; } if (!isset($order_env->order['mode'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"mode" not defined in $order array'; } if (!isset($order_env->order['url'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"url" not defined in $order array'; } if (!isset($order_env->order['proforma'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"proforma" not defined in $order array'; } if (!isset($order_env->order['offer']['operator'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"offer"/"operator" not defined in $order array'; } else { if (count($order_env->order['offer']['operator']) == 0) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '$order[' . $x . ']["offer"]["operator"] array is empty'; } else { if (!isset($order_env->order['offer']['operator']['code'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"code" not defined in $order["offer"]["operator"] array'; } if (!isset($order_env->order['offer']['operator']['label'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"label" not defined in $order["offer"]["operator"] array'; } if (!isset($order_env->order['offer']['operator']['logo'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"logo" not defined in $order["offer"]["operator"] array'; } } } if (!isset($order_env->order['service'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"operator" not defined in $order array'; } else { if (count($order_env->order['service']) == 0) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '$order["service"] array is empty'; } else { if (!isset($order_env->order['service']['code'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"code" not defined in $order["service"] array'; } if (!isset($order_env->order['service']['label'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"label" not defined in $order["service"] array'; } } } if (!isset($order_env->order['price'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"price" not defined in $order array'; } else { if (count($order_env->order['price']) == 0) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '$order["price"] array is empty'; } else { if (!isset($order_env->order['price']['currency'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"currency" not defined in $order["price"] array'; } if (!isset($order_env->order['price']['tax-exclusive'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"tax-exclusive" not defined in $order["price"] array'; } if (!isset($order_env->order['price']['tax-inclusive'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"tax-inclusive" not defined in $order["price"] array'; } } } if (!isset($order_env->order['collection'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"collection" not defined in $order array'; } else { if (count($order_env->order['collection']) == 0) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '$order["collection"] array is empty'; } else { if (!isset($order_env->order['collection']['code'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"code" not defined in $order["collection"] array'; } if (!isset($order_env->order['collection']['type_label'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"type_label" not defined in $order["collection"] array'; } if (!isset($order_env->order['collection']['date'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"date" not defined in $order["collection"] array'; } if (!isset($order_env->order['collection']['time'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"time" not defined in $order["collection"] array'; } if (!isset($order_env->order['collection']['label'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"label" not defined in $order["collection"] array'; } } } if (!isset($order_env->order['delivery'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"delivery" not defined in $order array'; } else { if (count($order_env->order['delivery']) == 0) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '$order["delivery"] array is empty'; } else { if (!isset($order_env->order['delivery']['code'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"code" not defined in $order["delivery"] array'; } if (!isset($order_env->order['delivery']['type_label'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"type_label" not defined in $order["delivery"] array'; } if (!isset($order_env->order['delivery']['date'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"date" not defined in $order["delivery"] array'; } if (!isset($order_env->order['delivery']['time'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"time" not defined in $order["delivery"] array'; } if (!isset($order_env->order['delivery']['label'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"label" not defined in $order["delivery"] array'; } } } if (!isset($order_env->order['alerts'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"alerts" not defined in $order array'; } else { if (count($order_env->order['alerts']) == 0) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '$order["alerts"] array is empty'; } } if (!isset($order_env->order['chars'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"chars" not defined in $order array'; } else { if (count($order_env->order['chars']) == 0) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '$order["chars"] array is empty'; } } if (!isset($order_env->order['labels'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"labels" not defined in $order array'; } else { if (count($order_env->order['labels']) == 0) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '$order["labels"] array is empty'; } } } $result['duration'] = microtime_float() - $start; return $result; }
// "pays" => "AU", // "code_postal" => "2000", // "type" => "particulier", // "ville" => "Sydney" // ); //DELIVERY INFORMATION $quotInfo = array("collecte" => date("Y-m-d"), "delai" => "aucun", "code_contenu" => $productCategory, "colis.valeur" => $t_product, "colis.description" => "Bracelets Iro (wearable)"); //INITIALIZE CLASS $cotCl = new Env_Quotation(array("user" => $userData["login"], "pass" => $userData["password"], "key" => $userData["api_key"])); //INITIALIZE FROM AND TO $cotCl->setPerson("expediteur", $from); $cotCl->setPerson("destinataire", $to); //INITIALIZE WORKSPACE ENVIRONMENT $cotCl->setEnv("test"); //INITIALIZE TYPE OF CONTENT $cotCl->setType("colis", array(1 => array("poids" => $t_weight, "longueur" => $t_depth, "largeur" => $t_width, "hauteur" => $t_height))); //GET QUOTATION $orderPassed = $cotCl->getQuotation($quotInfo); //IF NOT CURL ERROR if (!$cotCl->curlError) { print_r($pointCl->respErrorsList); //IF NOT REQUEST ERROR DISPLAY RESULT if (!$cotCl->respError) { $cotCl->getOffers(true); echo json_encode($cotCl); } else { echo 'requete non valide'; } } else { echo 'Erreur'; }
/** * Function to get quotation for the order */ function _EMCrequestMethods(&$data, &$null, &$rate, &$order, $sending_type, $from, $to) { if (!$this->init()) { return false; } $app = JFactory::getApplication(); $total_price = (int) $data[0]['price']; unset($data[0]); // get selected carriers in config $listMethods = array(); foreach ($rate->shipping_params->methods as $key => $nom) { $listMethods[] = $nom; } $code = $rate->shipping_params->product_category; // Informations on sending $quotInfo = array('collecte' => date('Y-m-d'), 'delai' => 'aucun', 'code_contenu' => (int) $code, $sending_type . '.valeur' => $total_price); $cotCl = new Env_Quotation(array('user' => $rate->shipping_params->emc_login, 'pass' => $rate->shipping_params->emc_password, 'key' => $rate->shipping_params->api_key)); $config = hikashop_config(); $cotCl->setPlatformParams('hikashop', $config->get('version'), $config->get('version')); // environment 'prod' or 'test' $cotCl->setEnv($rate->shipping_params->environment); $cotCl->setPerson('expediteur', $from); $cotCl->setPerson('destinataire', $to); $cotCl->setType($sending_type, $data); // Send request to get offers $cotCl->getQuotation($quotInfo); if ($cotCl->curlError) { $app->enqueueMessage(JText::sprintf('Error while sending the request: %s', $cotCl->curlErrorText), 'error'); return false; } if (!$cotCl->respError) { $cotCl->getOffers(false); if (empty($cotCl->offers)) { return false; } //we get all the important informations for each offers returned by envoimoinscher foreach ($listMethods as $liste) { foreach ($cotCl->offers as $o => $offre) { $code = $offre['operator']['code']; //we take into account only the services selected in the configuration if (strpos($code, $liste) === false) { continue; } $this->result[] = array('Transporteur' => $offre['operator']['label'], 'Service' => $offre['service']['code'], 'Code' => $offre['operator']['code'], 'Prix' => $offre['price']['tax-inclusive'], 'Collecte' => array('Type' => $offre['collection']['type'], 'Label' => $offre['collection']['label']), 'Livraison' => array('Type' => $offre['delivery']['type'], 'Label' => $offre['delivery']['label']), 'Détails' => $offre['characteristics'][1]); } } } else { $app->enqueueMessage(JText::_('The request is invalid :'), 'error'); foreach ($cotCl->respErrorsList as $m => $message) { $app->enqueueMessage($message['message'], 'error'); } } $order_clone = new stdClass(); $variables = array('products', 'cart_id', 'coupon', 'shipping_address', 'volume', 'weight', 'volume_unit', 'weight_unit'); foreach ($variables as $var) { if (isset($order->{$var})) { $order_clone->{$var} = $order->{$var}; } } $temp_rate = array(); $temp_rate[$rate->shipping_id] = $rate; unset($temp_rate[$rate->shipping_id]->shipping_params->methods); // we generate a key for the order $shipping_key = sha1(serialize($order_clone) . serialize($temp_rate)); // We need the warehouse id to set it in the results $warehouse_id = -1; if (isset($order->shipping_warehouse_id)) { $warehouse_id = (int) $order->shipping_warehouse_id; } else { $groups_ids = array_keys($order->shipping_groups); $warehouse_id = $groups_ids[0]; } $shipping_id = $rate->shipping_id; $result = $app->getUserState(HIKASHOP_COMPONENT . '.shipping.envoimoinscher_result'); $result[$warehouse_id][$shipping_id] = $this->result; $result['shipping_key'] = $shipping_key; // Set the results in session $app->setUserState(HIKASHOP_COMPONENT . '.shipping.envoimoinscher_result', $result); }