Official Flutter/Dart SDK for the Dolivroo Delivery API.
Add to your pubspec.yaml:
dependencies:
dolivroo: ^1.0.0Then run:
flutter pub getimport 'package:dolivroo/dolivroo.dart';
void main() async {
final client = Dolivroo('your-api-key');
// Create a parcel
final result = await client.parcels.create(
companyCode: 'yalidine',
order: OrderData(
customer: Customer(
firstName: 'Mohamed',
lastName: 'Ali',
phone: '0555000000',
),
destination: Destination(
wilaya: 'Alger',
commune: 'Bab El Oued',
),
package: Package(
products: 'T-Shirt x2',
),
payment: Payment(
amount: 2500,
),
),
);
print('Tracking ID: ${result['tracking_id']}');
}// Create
await client.parcels.create(companyCode: 'yalidine', order: orderData);
// Get details
await client.parcels.get(trackingId: 'TRACK123', companyCode: 'yalidine');
// List
await client.parcels.list(companyCode: 'yalidine', page: 1, perPage: 25);
// Cancel
await client.parcels.cancel(trackingId: 'TRACK123', companyCode: 'yalidine');
// Get label
await client.parcels.getLabel(trackingId: 'TRACK123', companyCode: 'yalidine');
// Track
await client.parcels.track(trackingId: 'TRACK123', companyCode: 'yalidine');// Get rates
await client.rates.get(
companyCode: 'yalidine',
fromWilaya: 'Alger',
toWilaya: 'Oran',
);
// Compare providers
await client.rates.compare(fromWilaya: 'Alger', toWilaya: 'Oran');// List all
await client.wilayas.list();
// List for provider
await client.wilayas.list(companyCode: 'yalidine');// Create multiple parcels
await client.bulk.createParcels(
companyCode: 'yalidine',
orders: [order1, order2, order3],
);try {
await client.parcels.create(companyCode: 'yalidine', order: order);
} on AuthenticationException {
print('Invalid API key');
} on ValidationException catch (e) {
print('Validation error: ${e.message}');
} on RateLimitException {
print('Rate limited');
} on DolivrooException catch (e) {
print('Error: ${e.message}');
}MIT