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 : Rechercher un point relais $pickupPoints = $colissimo->findPickupPoints([ 'zipCode' => '69001', // Code postal du destinataire 'city' => 'Lyon', 'countryCode' => 'FR', 'maxPickupPoints' => 1, // Nombre de points relais à retourner (1 pour le plus proche) ]); if (empty($pickupPoints)) { die("Aucun point relais trouvé.\n"); } $pickupPoint = $pickupPoints[0]; // Prendre le premier point relais echo "Point relais trouvé : " . $pickupPoint['name'] . " (" . $pickupPoint['pickupPointId'] . ")\n"; // Étape 3 : Préparer les données pour une livraison en point relais $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 = [ 'lastName' => 'Martin', 'firstName' => 'Sophie', 'zipCode' => '69001', // Doit correspondre à la recherche du point relais 'city' => 'Lyon', 'countryCode' => 'FR', 'email' => 'sophie.martin@example.com', 'phoneNumber' => '0607080910', 'pickupPointId' => $pickupPoint['pickupPointId'], // ID du point relais choisi ]; $parcel = [ 'weight' => 1.5, // Poids en kg ]; $service = [ 'productCode' => 'COLR', // Code pour livraison en point relais (France) 'depositDate' => Carbon::now()->format('Y-m-d'), // Date de dépôt 'orderNumber' => 'CMD123456', // Numéro de commande interne (optionnel) 'commercialName' => 'Ma Boutique', ]; $outputFormat = [ 'x' => 0, 'y' => 0, 'outputFormat' => 'PDF', // Format de l'étiquette 'includeReturnLabel' => false, ]; // Étape 4 : Générer l'étiquette pour le point relais $labelResponse = $colissimo->generateLabel( $sender, $receiver, $parcel, $service, $outputFormat ); // Étape 5 : Récupérer et sauvegarder l'étiquette if (isset($labelResponse['label'])) { $labelContent = $labelResponse['label']; // Contenu binaire du PDF $trackingNumber = $labelResponse['parcelNumber']; // Numéro de suivi // Sauvegarder l'étiquette file_put_contents("etiquette_colissimo_relais_$trackingNumber.pdf", $labelContent); echo "Étiquette générée avec succès ! Numéro de suivi : $trackingNumber\n"; echo "Fichier sauvegardé : etiquette_colissimo_relais_$trackingNumber.pdf\n"; } else { echo "Erreur lors de la génération de l'étiquette.\n"; print_r($labelResponse); } } catch (ColissimoException $e) { echo "Erreur Colissimo : " . $e->getMessage() . "\n"; } catch (Exception $e) { echo "Erreur générale : " . $e->getMessage() . "\n"; } ?>