'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 ) ) ); */ // Execute the request $orderPassed = $lib->makeOrder($from, $to, $parcels, $additionalParams); echo "<h3>API Quotation > makeOrder :</h3>"; if (!$lib->curl_error && !$lib->resp_error) { if ($orderPassed) { echo '<div class="alert alert-success"> Order passed with the reference ' . $lib->order['ref'] . '</div>'; } else { echo '<div class="alert alert-warning"> Your order has been refused </div>'; } } else { echo '<div class="alert alert-danger">'; handle_errors($lib); echo '</div>'; } require_once '../layout/quotation_datails.php'; require_once '../layout/footer.php';
function test_Quotation($userData) { $result = default_value(); $start = microtime_float(); /* Initialisation */ // shipper address $from = array('pays' => 'FR', 'code_postal' => '75002', 'ville' => 'Paris', 'type' => 'entreprise', 'adresse' => '15, rue Marsollier', 'civilite' => 'M', 'prenom' => 'John', 'nom' => 'Snow', 'societe' => 'Boxtale', 'email' => '*****@*****.**', 'tel' => '0606060606', 'infos' => 'Some informations about this address'); // Recipient's address $to = array('pays' => 'FR', 'code_postal' => '13002', 'ville' => 'Marseille', 'type' => 'particulier', 'adresse' => '1, rue Chape', 'civilite' => 'Mme', 'prenom' => 'Jane', 'nom' => 'Doe', 'email' => '*****@*****.**', 'tel' => '0606060606', 'infos' => 'Some informations about this address'); /* Parcels informations */ $parcels = array('type' => 'colis', 'dimensions' => array(1 => array('poids' => 5, 'longueur' => 15, 'largeur' => 16, 'hauteur' => 8), 2 => array('poids' => 21, 'longueur' => 7, 'largeur' => 8, 'hauteur' => 11))); $order_env = new Quotation($from, $to, $parcels); // 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"); // 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'); // To make an order on test $orderPassed = $order_env->makeOrder($order_quotInfo, true); $offer_quotInfo = array("collecte" => date("Y-m-d"), "delai" => "aucun", "code_contenu" => 10120); $offer_env = new Quotation($from, $to, $parcels, $offer_quotInfo); $offer_env->getOffers(); /* 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->curl_error) { $result['reception'] = max($result['reception'], ERROR); $result['reception_info'][count($result['reception_info'])] = 'Error while sending the query'; } elseif ($order_env->resp_error) { $result['reception'] = max($result['reception'], ERROR); $result['reception_info'][count($result['reception_info'])] = 'Invalid query : ' . $userData["api_key"]; foreach ($order_env->resp_errors_list as $message) { $result['reception_info'][count($result['reception_info'])] = $message['message']; } } elseif ($offer_env->curl_error) { $result['reception'] = max($result['reception'], ERROR); $result['reception_info'][count($result['reception_info'])] = 'Error while sending the query'; } elseif ($offer_env->resp_error) { $result['reception'] = max($result['reception'], ERROR); $result['reception_info'][count($result['reception_info'])] = 'Invalid query : ' . $userData["api_key"]; foreach ($offer_env->resp_errors_list 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'; } elseif (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'; } elseif (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'; } elseif (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'; } elseif (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; }