13-05-2026 implementation FR
This commit is contained in:
parent
245c281541
commit
70240d2b6a
61 changed files with 4472 additions and 2 deletions
|
|
@ -1,257 +0,0 @@
|
|||
# DHL Paket Installation & Setup
|
||||
|
||||
## 1. Paket im Hauptprojekt registrieren
|
||||
|
||||
### composer.json erweitern
|
||||
|
||||
```json
|
||||
{
|
||||
"repositories": [
|
||||
{
|
||||
"type": "path",
|
||||
"url": "./packages/acme-laravel-dhl"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"acme/laravel-dhl": "*"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Installation
|
||||
|
||||
```bash
|
||||
composer update acme/laravel-dhl
|
||||
```
|
||||
|
||||
## 2. Service Provider registrieren
|
||||
|
||||
### config/app.php (falls Auto-Discovery nicht funktioniert)
|
||||
|
||||
```php
|
||||
'providers' => [
|
||||
// ...
|
||||
Acme\Dhl\DhlServiceProvider::class,
|
||||
],
|
||||
|
||||
'aliases' => [
|
||||
// ...
|
||||
'DHL' => Acme\Dhl\Facades\DHL::class,
|
||||
],
|
||||
```
|
||||
|
||||
## 3. Konfiguration publizieren
|
||||
|
||||
```bash
|
||||
# Konfigurationsdatei publizieren
|
||||
php artisan vendor:publish --provider="Acme\Dhl\DhlServiceProvider" --tag="config"
|
||||
|
||||
# Migrations ausführen
|
||||
php artisan migrate
|
||||
```
|
||||
|
||||
## 4. Umgebungsvariablen konfigurieren
|
||||
|
||||
### .env erweitern
|
||||
|
||||
```env
|
||||
# DHL API Configuration
|
||||
DHL_BASE_URL=https://api-eu.dhl.com
|
||||
DHL_API_KEY=your_api_key_here
|
||||
DHL_USERNAME=your_username
|
||||
DHL_PASSWORD=your_password
|
||||
DHL_BILLING_NUMBER=your_billing_number
|
||||
|
||||
# DHL Default Settings
|
||||
DHL_PRODUCT=V01PAK
|
||||
DHL_LABEL_FORMAT=PDF
|
||||
DHL_PRINT_FORMAT=A4
|
||||
DHL_RETOURE_PRINT_FORMAT=A4
|
||||
DHL_PROFILE=STANDARD_GRUPPENPROFIL
|
||||
|
||||
# DHL Webhook (optional)
|
||||
DHL_WEBHOOK_ENABLED=false
|
||||
DHL_WEBHOOK_SECRET=your_webhook_secret
|
||||
DHL_WEBHOOK_ROUTE=dhl/webhooks/tracking
|
||||
|
||||
# DHL Queue Settings (optional)
|
||||
DHL_USE_QUEUE=false
|
||||
```
|
||||
|
||||
## 5. Test-Verbindung prüfen
|
||||
|
||||
### Artisan Command (zu erstellen)
|
||||
|
||||
```bash
|
||||
php artisan dhl:test-connection
|
||||
```
|
||||
|
||||
### Oder via Tinker
|
||||
|
||||
```php
|
||||
php artisan tinker
|
||||
|
||||
// Service-Container Test
|
||||
app(Acme\Dhl\Services\ShippingService::class);
|
||||
|
||||
// Model Test
|
||||
use Acme\Dhl\Models\DhlShipment;
|
||||
DhlShipment::query()->count();
|
||||
|
||||
// API-Test (vereinfacht)
|
||||
// $client = app(Acme\Dhl\Support\DhlClient::class);
|
||||
// $client->testConnection();
|
||||
```
|
||||
|
||||
## 6. Integration in bestehende Models
|
||||
|
||||
### ShoppingOrder Model erweitern
|
||||
|
||||
```php
|
||||
use Acme\Dhl\Models\DhlShipment;
|
||||
|
||||
class ShoppingOrder extends Model
|
||||
{
|
||||
/**
|
||||
* DHL Sendungen für diese Bestellung
|
||||
*/
|
||||
public function dhlShipments(): HasMany
|
||||
{
|
||||
return $this->hasMany(DhlShipment::class, 'order_id');
|
||||
}
|
||||
|
||||
/**
|
||||
* Ausgehende DHL Sendungen
|
||||
*/
|
||||
public function dhlOutboundShipments(): HasMany
|
||||
{
|
||||
return $this->dhlShipments()->outbound();
|
||||
}
|
||||
|
||||
/**
|
||||
* DHL Retouren
|
||||
*/
|
||||
public function dhlReturns(): HasMany
|
||||
{
|
||||
return $this->dhlShipments()->returns();
|
||||
}
|
||||
|
||||
/**
|
||||
* Hat DHL Sendungen
|
||||
*/
|
||||
public function hasDhlShipments(): bool
|
||||
{
|
||||
return $this->dhlShipments()->exists();
|
||||
}
|
||||
|
||||
/**
|
||||
* Neueste DHL Sendung
|
||||
*/
|
||||
public function latestDhlShipment(): ?DhlShipment
|
||||
{
|
||||
return $this->dhlShipments()
|
||||
->latest()
|
||||
->first();
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 7. Verwendung in Controllern
|
||||
|
||||
### Beispiel Controller-Integration
|
||||
|
||||
```php
|
||||
use Acme\Dhl\Services\ShippingService;
|
||||
use Acme\Dhl\Services\TrackingService;
|
||||
use Acme\Dhl\Services\ReturnsService;
|
||||
|
||||
class OrderController extends Controller
|
||||
{
|
||||
public function createDhlLabel(
|
||||
ShoppingOrder $order,
|
||||
ShippingService $shippingService
|
||||
) {
|
||||
try {
|
||||
$result = $shippingService->createLabel([
|
||||
'order_id' => $order->id,
|
||||
'shipper' => [
|
||||
'name' => 'Ihre Firma',
|
||||
'street' => 'Ihre Straße 123',
|
||||
'postalCode' => '12345',
|
||||
'city' => 'Ihre Stadt',
|
||||
'country' => 'DE'
|
||||
],
|
||||
'consignee' => [
|
||||
'name' => $order->shipping_name,
|
||||
'street' => $order->shipping_street,
|
||||
'postalCode' => $order->shipping_zip,
|
||||
'city' => $order->shipping_city,
|
||||
'country' => $order->shipping_country
|
||||
],
|
||||
'weight_kg' => $order->total_weight ?? 1.0
|
||||
]);
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'shipment_number' => $result['shipmentNumber'],
|
||||
'label_path' => $result['label_path']
|
||||
]);
|
||||
|
||||
} catch (Exception $e) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'error' => $e->getMessage()
|
||||
], 422);
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 8. Facade-Verwendung
|
||||
|
||||
```php
|
||||
use DHL;
|
||||
|
||||
// Label erstellen
|
||||
$result = DHL::createLabel($orderData);
|
||||
|
||||
// Tracking-Status abrufen
|
||||
$status = DHL::getTrackingStatus('1234567890');
|
||||
|
||||
// Retourenlabel erstellen
|
||||
$return = DHL::createReturn($returnData);
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Composer-Probleme
|
||||
|
||||
```bash
|
||||
# Cache leeren
|
||||
composer dump-autoload
|
||||
php artisan config:clear
|
||||
php artisan cache:clear
|
||||
|
||||
# Paket neu installieren
|
||||
composer remove acme/laravel-dhl
|
||||
composer install
|
||||
```
|
||||
|
||||
### Migration-Probleme
|
||||
|
||||
```bash
|
||||
# Migrations-Status prüfen
|
||||
php artisan migrate:status
|
||||
|
||||
# Rollback und neu migrieren
|
||||
php artisan migrate:rollback --step=2
|
||||
php artisan migrate
|
||||
```
|
||||
|
||||
### Service-Provider nicht gefunden
|
||||
|
||||
```bash
|
||||
# Auto-Discovery cache leeren
|
||||
composer dump-autoload
|
||||
php artisan package:discover
|
||||
```
|
||||
Loading…
Add table
Add a link
Reference in a new issue