alpha_full/pages/panier/colissimo/modeLiv.colissimoForm.php
2026-04-06 22:58:51 +02:00

128 lines
4.5 KiB
PHP
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
$nomFicAppelant = basename(__FILE__);
// Vous avez besoin dun accountNumber et dun password fournis par Colissimo Entreprise (inscription sur colissimo.entreprise.laposte.fr).
// Ces identifiants sont nécessaires pour authentifier les appels à lAPI.
// Dépendances supplémentaires :
// La bibliothèque utilise carbon pour la gestion des dates. Assurez-vous quelle est installée via Composer (composer require nesbot/carbon).
// require 'vendor/autoload.php';
// use DansMaCulotte\Colissimo\Colissimo;
$colissimo_id='6H002911xxxxx';
$colissimo_id='9L27129283299';
// $colissimo = new Colissimo();
// $status = $colissimo->checkWebServiceStatus();
// print_r($status);
// try {
// $result = $colissimo->get($colissimo_id);
// echo '<b>Attention ! Colissimo domicile non encore en place</b>';
// // echo 'colissimo : <pre>'.print_r($result). '</pre>';
// // json_decode($result);
// } catch (\Hedii\ColissimoApi\ColissimoApiException $e) {
// echo 'erreur API colissimo';
// }
require 'vendor/autoload.php';
use DansMaCulotte\Colissimo\Colissimo;
use DansMaCulotte\Colissimo\Exceptions\ColissimoException;
use Carbon\Carbon;
// Configuration des identifiants Colissimo
define('COLISSIMO_LOGIN', $colissimo_id); // Remplacez par votre accountNumber
define('COLISSIMO_PASSWORD', 'votre_mot_de_passe'); // Remplacez par votre password
// Initialisation du client Colissimo
$colissimo = new Colissimo([
'accountNumber' => COLISSIMO_LOGIN,
'password' => COLISSIMO_PASSWORD,
]);
try {
// Étape 1 : Vérifier le statut du service (informations de compte)
$status = $colissimo->checkWebServiceStatus();
echo "Statut du service Colissimo : " . ($status ? "OK" : "Indisponible") . "\n";
if (!$status) {
die("Le service Colissimo est indisponible. ");
}
// Étape 2 : Préparer les données pour une livraison à domicile
$sender = [
'companyName' => 'Ma Société',
'lastName' => 'Dupont',
'firstName' => 'Jean',
'line2' => '10 Rue Exemple',
'zipCode' => '75001',
'city' => 'Paris',
'countryCode' => 'FR',
'email' => 'jean.dupont@example.com',
'phoneNumber' => '0102030405',
];
$receiver = [
'companyName' => 'Client SARL', // Optionnel
'lastName' => 'Martin',
'firstName' => 'Sophie',
'line2' => '25 Avenue Test',
'zipCode' => '69001',
'city' => 'Lyon',
'countryCode' => 'FR',
'email' => 'sophie.martin@example.com',
'phoneNumber' => '0607080910',
];
$parcel = [
'weight' => 1.5, // Poids en kg
];
$service = [
'productCode' => 'DOM', // Code pour livraison à domicile sans signature (DOM pour France)
'depositDate' => Carbon::now()->format('Y-m-d'), // Date de dépôt (aujourd'hui)
'orderNumber' => 'CMD123456', // Numéro de commande interne (optionnel)
'commercialName' => 'Ma Boutique',
];
$outputFormat = [
'x' => 0,
'y' => 0,
'outputFormat' => 'PDF', // Format de l'étiquette (PDF ou ZPL)
'includeReturnLabel' => false, // Inclure une étiquette retour si nécessaire
];
// Étape 3 : Générer l'étiquette de livraison à domicile
$labelResponse = $colissimo->generateLabel(
$sender,
$receiver,
$parcel,
$service,
$outputFormat
);
// Étape 4 : Récupérer et sauvegarder l'étiquette
if (isset($labelResponse['label'])) {
$labelContent = $labelResponse['label']; // Contenu binaire de l'étiquette (PDF)
$trackingNumber = $labelResponse['parcelNumber']; // Numéro de suivi
// Sauvegarder l'étiquette dans un fichier
file_put_contents("etiquette_colissimo_$trackingNumber.pdf", $labelContent);
echo "Étiquette générée avec succès ! Numéro de suivi : $trackingNumber\n";
echo "Fichier sauvegardé : etiquette_colissimo_$trackingNumber.pdf\n";
} else {
echo "Erreur lors de la génération de l'étiquette.\n";
print_r($labelResponse);
}
} catch (ColissimoException $e) {
// Gestion des erreurs spécifiques à l'API Colissimo
echo "Erreur Colissimo : " . $e->getMessage() . "\n";
} catch (Exception $e) {
// Gestion des autres erreurs
echo "Erreur générale : " . $e->getMessage() . "\n";
}
?>