示例#1
0
$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>
示例#2
0
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;
}
示例#3
0
// 	"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);
 }