Setup Checklist

Use this checklist to track your setup progress.

โœ… Initial Setup (Completed)

  • Laravel project installed
  • Database migrations created and run
  • Configuration files created
  • DHL services implemented
  • API routes configured
  • Webhook controller created
  • Documentation created

๐Ÿ“‹ Configuration Required (Your Tasks)

1. DHL API Setup

  • Create account on DHL Developer Portal
  • Create application/project in DHL portal
  • Get Sandbox Client ID
  • Get Sandbox Client Secret
  • Get DHL Billing Number (Abrechnungsnummer)
  • Add credentials to .env file

2. Environment Configuration

  • Edit .env file
  • Set DHL_SANDBOX_CLIENT_ID
  • Set DHL_SANDBOX_CLIENT_SECRET
  • Set DHL_BILLING_NUMBER
  • Configure shipper information:
    • DHL_SHIPPER_NAME
    • DHL_SHIPPER_STREET
    • DHL_SHIPPER_HOUSE_NUMBER
    • DHL_SHIPPER_POSTAL_CODE
    • DHL_SHIPPER_CITY
    • DHL_SHIPPER_COUNTRY
    • DHL_SHIPPER_EMAIL

3. Test DHL Connection

  • Run: php artisan serve
  • Run: php artisan dhl:test-connection
  • Verify token is obtained successfully
  • Check logs: tail -f storage/logs/laravel.log

4. Test Webhook Endpoint

  • Access health check: http://localhost:8000/api/health
  • Test webhook with curl (see API_EXAMPLES.md)
  • Verify shipment is created in database
  • Verify label is downloaded and stored
  • Check tracking number is returned

5. Picqer Configuration

  • Log in to Picqer account
  • Navigate to Settings โ†’ Shipping Methods
  • Create new Custom Shipping Method
  • Configure webhook URL: https://your-domain.com/api/webhook/picqer/shipment
  • Generate webhook secret
  • Add secret to .env as PICQER_WEBHOOK_SECRET
  • Configure HTTP method: POST
  • Configure content type: application/json

6. Integration Testing

  • Create test order in Picqer
  • Trigger shipment creation
  • Verify webhook is received
  • Check shipment in database
  • Verify label is accessible
  • Test tracking URL
  • Review logs for any errors

7. Production Preparation

  • Get DHL Production credentials
  • Add production credentials to .env:
    • DHL_PRODUCTION_CLIENT_ID
    • DHL_PRODUCTION_CLIENT_SECRET
  • Test with production credentials in sandbox first
  • Verify billing number works in production
  • Configure production server
  • Set up SSL/HTTPS
  • Configure firewall rules
  • Set up backup strategy

8. Production Deployment

  • Deploy code to production server
  • Run migrations: php artisan migrate --force
  • Set DHL_MODE=production in .env
  • Update Picqer webhook URL to production
  • Clear cache: php artisan cache:clear
  • Test with real order
  • Monitor logs
  • Set up error alerts

9. Monitoring Setup (Optional but Recommended)

  • Set up log rotation
  • Configure error monitoring (Sentry, Bugsnag, etc.)
  • Set up uptime monitoring
  • Create dashboard for shipment statistics
  • Configure email alerts for failures
  • Set up automated backups

10. Documentation

  • Document your Picqer data format
  • Document any customizations made
  • Create runbook for common issues
  • Document server credentials (securely)
  • Share webhook URL with team
  • Document monitoring procedures

๐Ÿงช Testing Checklist

Functional Tests

  • Create domestic shipment (DE โ†’ DE)
  • Create EU shipment (DE โ†’ AT)
  • Create international shipment (DE โ†’ NL)
  • Test with various package sizes
  • Test with various weights
  • Verify label download works
  • Verify tracking URL works
  • Test error handling (invalid data)
  • Test webhook signature verification

Performance Tests

  • Test with 10 concurrent requests
  • Verify token caching works
  • Check response times
  • Monitor memory usage
  • Check database performance

Security Tests

  • Verify webhook signature validation
  • Test with invalid signature
  • Check credentials are not exposed
  • Verify HTTPS in production
  • Check for SQL injection vulnerabilities
  • Test rate limiting

๐Ÿ“ž Support Contacts

DHL Support

Picqer Support

Laravel Support

๐Ÿ“ Notes Section

Use this space to track any issues, customizations, or important information:

Date: ___________
Note:




Date: ___________
Note:




Date: ___________
Note:





Quick Command Reference

# Start server
php artisan serve

# Test DHL connection
php artisan dhl:test-connection

# View routes
php artisan route:list --path=api

# Clear cache
php artisan cache:clear

# View logs
tail -f storage/logs/laravel.log

# Database console
php artisan tinker

# Check migration status
php artisan migrate:status

Current Status: Ready for configuration โœ…

Next Step: Configure DHL credentials in .env file