Skip to content

Dolivroo/sdk-flutter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dolivroo Flutter/Dart SDK

Official Flutter/Dart SDK for the Dolivroo Delivery API.

Installation

Add to your pubspec.yaml:

dependencies:
  dolivroo: ^1.0.0

Then run:

flutter pub get

Quick Start

import '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']}');
}

API Reference

Parcels

// 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');

Rates

// Get rates
await client.rates.get(
  companyCode: 'yalidine',
  fromWilaya: 'Alger',
  toWilaya: 'Oran',
);

// Compare providers
await client.rates.compare(fromWilaya: 'Alger', toWilaya: 'Oran');

Wilayas

// List all
await client.wilayas.list();

// List for provider
await client.wilayas.list(companyCode: 'yalidine');

Bulk Operations

// Create multiple parcels
await client.bulk.createParcels(
  companyCode: 'yalidine',
  orders: [order1, order2, order3],
);

Error Handling

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}');
}

License

MIT

Releases

No releases published

Packages

No packages published

Languages