Roadmap / TODO:
- Add Kuehne & Nagel carrier
- Add UPS carrier
- Add geodis carrier
- Add dpd rest api
- Improve documentation
- Support additionnal methods of api
- Write more tests
- generate api documentation
- Add GLS rest api
- Fix GLS glsbox api and manage expedition outside France
- Add DPD soap api for python 3
- Improve/complete Laposte Soap api for CN23
- Unify/refactore the way to manage shippingDate (same input format for all carriers)
- Refactore library design to be able to re-use some logic between carriers
- Add compatibility with python 3
- Remove compatibility with python 2 (check versions < 1.0.0 for that)
- Adapt laposte and chronopost to python 3
- Add gls France support
- standardize output for all supported carriers
- Improve setup.py
- Geodis: add Zoom API implementation (tracking)
- Geodis: name specifications in comments in geodis.py
- Geodis: add tests about Zoom Api
- Geodis: GeodisDecoder -> GeodisDecoderWs
- Add tests in .travis
- Geodis: fix sending company name
- Geodis: fix coerce for EDI
- Add coercing for oe
- Add requirements.txt
- DPD convert characters to ASCII (because issues on labels)
- Geodis force ASCII conversion for EDI.
- Geodis fix missing CTA segment
- Geodis fix typo in (e)mail
- Geodis add options like (rdv)
- Geodis add notifications (by mail or sms)
- Geodis add new method : findLocalite (check address based on city or zip)
- Geodis refactoring internals of WS
- Geodis WS api: option is now named priority
- fix Geodis EDI escaping, remplace by special chars by spaces
- add Geodis EDI
- allow multiparcel (only for GEODIS)
(Not possible for Laposte API and not implemented for DPD)
- parcels should be used instead of parcel. Easy fix: suffix parcel with an "s" and wrap value with []
- new parcels key added in response
- DPD concat street2 to street1 (no street2 in DPD API)
- DPD concat company to name (no name in DPD API)
- fix escaping issue in DPD
- fix output of DPD (now always base64 decoded)
- Automatic deployment to pypi
- Refactoring of error handling: exception are now always raised, returns code (success | warning) removed
- Simplification of return code
- Remove duplicate code of get_parts
- Handling of additionnal attachments ("annexes")
- tracking code is always in tracking.number
- label is always in label.data
- errors are all raised with exceptions
- raise Exception removed in favor of better defined exceptions
- return of get_label harmonized
- Laposte API has changed, lot of fields have been renamed
Do `roulier.get('laposte').api()` to get the new fields.
Reason for this change: be constitant with upcoming carriers.
Response of get_label had changed
- Use cerberus for data validation
- Simplify api
- Add carrier Geodis
- Add carrier DPD France
- Add get_carriers()
- Improve documentation
- Publication on pypy https://pypi.python.org/pypi/roulier
- Add carrier Laposte
- Add carrier Dummy (example)