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

118 lines
4.2 KiB
PHP
Executable File

<?php
$nomFicAppelant = basename(__FILE__);
// Ce code vérifie le statut du service, recherche un point relais, puis génère une étiquette pour une livraison en point relais :
$colissimo_id='6H002911xxxxx';
$colissimo_id='9L27129283299';
require 'vendor/autoload.php';
use DansMaCulotte\Colissimo\Colissimo;
use DansMaCulotte\Colissimo\Exceptions\ColissimoException;
use Carbon\Carbon;
// Configuration des identifiants Colissimo
define('COLISSIMO_LOGIN', 'votre_numero_de_contrat'); // 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 : 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";
}
?>