118 lines
4.2 KiB
PHP
Executable File
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";
|
|
}
|
|
?>
|