Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/akretion/roulier
API for package delivery
https://github.com/akretion/roulier
carriers dpd edifact geodis laposte parcel ups
Last synced: 7 days ago
JSON representation
API for package delivery
- Host: GitHub
- URL: https://github.com/akretion/roulier
- Owner: akretion
- License: agpl-3.0
- Created: 2016-04-18T08:58:33.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-12-03T17:30:32.000Z (19 days ago)
- Last Synced: 2024-12-03T18:31:58.452Z (19 days ago)
- Topics: carriers, dpd, edifact, geodis, laposte, parcel, ups
- Language: Python
- Homepage: http://akretion.github.io/roulier/
- Size: 1.71 MB
- Stars: 22
- Watchers: 23
- Forks: 21
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
Roulier
===Roulier is a shipping library written in Python for sending parcels.
Roulier will get a label + tracking number to your carrier for you.![big picture](overview.svg)
* Roulier runs on your server and call each carrier API directly.
* You have to use your own credentials provided by each carriers.
* Roulier is Open Source software, AGPL-3
* Roulier integrate a multitude of carriers
* French La Poste
* French DPD
* French GLS
* French Chronopost
* more to come... (geodis, kuehne...)### Installation
This is not compatible with python 2.7.
Please use version < 1.0.0 (python2 branch) in that case.### Usage
```python
from roulier import roulierpayload= {
"auth": {
"login": "12345",
"password": "password",
},
"service": {
"productCode": "COL"
},
"parcels": [{
"weight": 3.4,
}],
"to_address": {
"firstName": "Hparfr"
"street1": "35 b Rue Montgolfier"
"city": "Villeurbanne"
"country": "FR",
"zip": "69100"
},
"from_address": {
"fristName": "Akretion France"
"street1": "35 b Rue Montgolfier"
"city": "Villeurbanne"
"country": "FR",
"zip": "69100"
},
}
# first parameter is the carrier type.
# second is the action and then the parameters needed by the action
response = roulier.get('laposte_fr', 'get_label', payload)print(response)
```
Get supported carriers and related actions:
```python
from roulier import roulier
print(roulier.get_carriers_action_available())
```### Known Issues
#### French GLS carrier :
* The glsbox webservice only manage Basic products : BP, EBP, GBP
* In the rest webservice, the incoterms don't work### Development
To release, increase the version number (in VERSION file) and create a tagged release on GitHub, with the same number. This will trigger publishing to PyPI.### Contributors
* [@hparfr](https://github.com/hparfr) ([Akretion.com](https://akretion.com))
* [@damdam-s](https://github.com/damdam-s) ([Camp2Camp.com](http://camptocamp.com))
* [@bealdav](https://github.com/bealdav) ([Akretion.com](https://akretion.com))
* [@DylannCordel](https://github.com/DylannCordel) ([Webu.coop](https://www.webu.coop))
* [@florian-dacosta](https://github.com/florian-dacosta) ([Webu.coop](https://akretion.com))### Dependencies
* [Cerberus](http://docs.python-cerberus.org/) - input validation and normalization
* [lxml](http://lxml.de/) - XML parsing
* [Jinja2](http://jinja.pocoo.org/) - templating
* [Requests](http://docs.python-requests.org/) - HTTP requests
* [zplgrf](https://github.com/kylemacfarlane/zplgrf) - PNG to ZPL conversion
* [unidecode](https://pypi.python.org/pypi/Unidecode) - Remove accents from ZPL