* Get all available offers for your send
 * You can find more informations about quotation's request here : http://ecommerce.envoimoinscher.com/api/documentation/cotations/
 */
require_once '../config/autoload.php';
require_once EMC_PARENT_DIR . 'layout/header.php';
/* for multi quotations, all params are set in a single array with a numeric index from 0.
 * If correctly set, the request response index will be the same as the request numeric index.
 */
$multirequest = array();
// 1st request
$multirequest[0] = array('from' => array('country' => 'FR', 'zipcode' => '38400', 'city' => "Saint Martin d'Hères", 'address' => '13 rue Martin Luther King', 'type' => 'company'), 'to' => array('country' => 'FR', 'zipcode' => '33000', 'city' => 'Bordeaux', 'address' => '24, rue des Ayres', 'type' => 'individual'), 'parcels' => array('type' => 'colis', 'dimensions' => array(1 => array('poids' => 1, 'longueur' => 15, 'largeur' => 16, 'hauteur' => 8))), 'additional_params' => array('collection_date' => date("Y-m-d"), 'delay' => 'aucun', 'content_code' => 10120, 'colis.valeur' => "42.655"));
// 2nd request
$multirequest[1] = array('from' => array('country' => 'FR', 'zipcode' => '75002', 'city' => "Paris", 'address' => '15 rue Marsollier', 'type' => 'company'), 'to' => array('country' => 'FR', 'zipcode' => '33000', 'city' => 'Bordeaux', 'address' => '24, rue des Ayres', 'type' => 'individual'), 'parcels' => array('type' => 'colis', 'dimensions' => array(1 => array('poids' => 1, 'longueur' => 15, 'largeur' => 16, 'hauteur' => 8))), 'additional_params' => array('collection_date' => date("Y-m-d"), 'delay' => 'aucun', 'content_code' => 10120, 'colis.valeur' => "42.655"));
$currency = array('EUR' => '€', 'USD' => '$');
// Prepare and execute the request
$lib = new Quotation();
$lib->getQuotationMulti($multirequest);
if (!$lib->curl_error) {
    ?>
<h3>API Quotation :</h3>
    <div class="row">
        <table class="table table-hover table-striped table-bordered">
            <thead>
                <tr>
                    <th>Operator</th>
                    <th>Offers</th>
                    <th>Price</th>
                    <th>Collect</th>
                    <th>Delivery</th>
                    <th>Details</th>
                    <th>Warning</th>
    'type' => 'colis',
    'dimensions' => array(
        1 => array('poids' => 21, 'longueur' => 7, 'largeur' => 8, 'hauteur' => 11),
        2 => array('poids' => 15, 'longueur' => 9, 'largeur' => 8, 'hauteur' => 11)
  )
);
*/
/*
 * $additionalParams contains all additional parameters for your request, it includes filters or offer's options
 * A list of all possible parameters is available here : http://ecommerce.envoimoinscher.com/api/documentation/commandes/
 * For an order, you have to provide at least all offer's mandatory parameters returned by the quotation
 * You can also find all optional parameters (filter not included) in the same quotation
 */
$additionalParams = array('collection_date' => date('Y-m-d'), 'delay' => 'aucun', 'content_code' => 10120, 'reason' => 'sale', 'colis.valeur' => 1200, 'assurance.selection' => false, 'colis.description' => 'Newspapers', 'url_push' => 'www.my-website.com/push.php&order=N', 'disponibilite.HDE' => '09:00', 'disponibilite.HLE' => '19:00', 'operator' => 'UPSE', 'service' => 'ExpressSaver');
// Initialize request
$lib = new Quotation();
// For an international delivery, you must specify the proforma
$lib->setProforma(array(1 => array('description_en' => 'L\'Equipe newspaper from 1998', 'description_fr' => 'le journal L\'Equipe du 1998', 'number' => 1, 'value' => 1200, 'origine' => 'FR', 'poids' => 4.9)));
/* if you're sending more parcels
$lib->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',
Exemple #3
0
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;
}
Exemple #4
0
    'type' => 'colis',
    'dimensions' => array(
        1 => array('poids' => 21, 'longueur' => 7, 'largeur' => 8, 'hauteur' => 11),
        2 => array('poids' => 15, 'longueur' => 9, 'largeur' => 8, 'hauteur' => 11)
  )
);
*/
/*
 * $additionalParams contains all additional parameters for your request, it includes filters or offer's options
 * A list of all possible parameters is available here : http://ecommerce.envoimoinscher.com/api/documentation/commandes/
 * For an order, you have to provide at least all offer's mandatory parameters returned by the quotation
 * You can also find all optional parameters (filter not included) in the same quotation
 */
$additionalParams = array('collection_date' => date('Y-m-d'), 'delay' => 'aucun', 'content_code' => 40110, 'colis.description' => "books", 'assurance.selection' => false, 'saturdaydelivery.selection' => false, 'url_push' => 'www.my-website.com/push.php&order=', 'depot.pointrelais' => 'MONR-000515', 'retrait.pointrelais' => 'MONR-087106', 'operator' => 'MONR', 'service' => 'CpourToi', 'colis.valeur' => "42.655");
// Prepare and execute the request
$lib = new Quotation();
$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';
?>
Exemple #5
0
$additionalParams = array('collection_date' => date("Y-m-d"), 'delay' => 'aucun', 'content_code' => 10120, 'colis.valeur' => "42.655");
/* Optionally you can define which carriers you want to quote if you don't want to quote all carriers
$additionalParams['offers'] = array(
    0 => 'MONRCpourToi',
    1 => 'SOGPRelaisColis',
    2 => 'POFRColissimoAccess',
    3 => 'CHRPChrono13',
    4 => 'UPSEExpressSaver',
    5 => 'DHLEExpressWorldwide'
);
*/
/* Parcels informations */
$parcels = array('type' => 'colis', 'dimensions' => array(1 => array('poids' => 1, 'longueur' => 15, 'largeur' => 16, 'hauteur' => 8)));
$currency = array('EUR' => '&#8364;', 'USD' => '&#36;');
// Prepare and execute the request
$lib = new Quotation();
$lib->getQuotation($from, $to, $parcels, $additionalParams);
if (!$lib->curl_error && !$lib->resp_error) {
    ?>
<h3>API Quotation :</h3>
    <div class="row">
        <table class="table table-hover table-striped table-bordered">
            <thead>
                <tr>
                    <th>Operator</th>
                    <th>Offers</th>
                    <th>Price</th>
                    <th>Collect</th>
                    <th>Delivery</th>
                    <th>Details</th>
                    <th>Warning</th>