# Shipday Python SDK
The Shipday Python sdk provides easier access to Shipday API's
from Python applications and scripts.
## Documentation
See the [shipday api](https://docs.shipday.com) docs for Python.
## Requirements
Python 3.6 or higher
## Installation
```markdown
pip install shipday
```
## Usage
Import Shipday from shipday package.
```python
from shipday import Shipday
```
You need to provide the shipday api-key in order to use the library. To get your API key
login to your [Shipday Dispatch Dashboard](https://dispatch.shipday.com) and Find the
API key from integrations tab.
Example usages looks like following:-
```python
API_KEY = '##########.#######################'
my_shipday = Shipday(api_key=API_KEY)
```
This my_shipday object contains three services (CarrierService, OrderService and OnDemandDeliveryService) which you can use to get your job
done. Here are few examples,
### Carrier Service
To get all your carriers, use get_carriers() function of the CarrierService. Following example
prints the number of carriers you have -
```python
my_carriers = my_shipday.CarrierService.get_carriers()
print('I have {} carriers'.format(len(my_carriers)))
```
To add a carrier, you need to create a CarrierRequest and send it using add_carrier() function of
CarrierService.
See the example below -
```python
from shipday.carrier import CarrierRequest
carrier_req = CarrierRequest(name='John Doe',
email='john.doe@shipday.com',
phone_number='+123456789')
my_shipday.CarrierService.add_carrier(carrier_req)
```
To delete a carrier, use delete_carrier() function of the CarrierService. For example-
```python
my_shipday.CarrierService.delete_carrier(carrier_id=1234)
```
### Order Service
To get all the orders, use get_orders() function of the OrderService.
```python
my_orders = my_shipday.OrderService.get_orders()
```
To add an order, you need to create an Order object and send it using insert_order() function of
OrderService. For example -
```python
from shipday.order import Address, Customer, Pickup, OrderItem, Order
new_order = Order(orderNumber='100')
# Add customer details
new_order.customer = Customer(
name='John Doe', email='john.doe', phone_number='+12367124',
address=Address(street='556 Crestlake Dr', city='San Francisco', state='California', country='USA')
)
# Don't worry if you forget to send a parameter, you can also set it later like following line
new_order.customer.address.zip = 'CA 94132'
# Add pickup details
new_order.pickup = Pickup(
name='My pickup point', phone_number='+132462374'
)
new_order.pickup.address = Address(street='890 Geneva Av', city='San Fransisco', state='California', zip='CA 94132',
country='USA')
# Add order items
new_order.order_items = [OrderItem(name='Pizza', unit_price=10.0, quantity=1)]
new_order.order_items.append(
OrderItem(name='Popcorn Shrimp', quantity=1, unit_price=5)
)
my_shipday.OrderService.insert_order(new_order)
```
To retrieve orders by order number, use get_order function. This will return a list of orders matching the given
order_number.
```python
orders = my_shipday.OrderService.get_order(order_number='100')
```
To assign an order to a carrier, use assign_order() function. For example,
```python
my_shipday.OrderService.assign_order(order_id=7995257, carrier_id=242324)
```
To delete an order, use delete_order() function. For example,
```python
my_shipday.OrderService.delete_order(order_id=7995246)
```
You can also query orders using query() function. For that you need to create a OrderQuery object. Following
code retrieves all orders from last 24 hours -
```python
from shipday.order import OrderQuery
query = OrderQuery()
from datetime import datetime, timedelta
query.start_time = datetime.now() - timedelta(days=1)
my_shipday.OrderService.query(query=query)
```
### OnDemandDeliveryService
To get informations on On-Demand Delivery Services use get_services() function like following code -
```python
my_shipday.OnDemandDeliveryService.get_services()
```
You can use get_active_services() function to retrieve the service names of those available to your account.
```python
my_shipday.OnDemandDeliveryService.get_active_services()
```
To estimate the cost and required delivery time from available delivery services, use estimate() function -
```python
my_shipday.OnDemandDeliveryService.estimate(order_id=123424)
```
You can assign an order to a delivery service provider by calling assign() method. For example,
```python
my_shipday.OnDemandDeliveryService.assign(order_id=1234, service_name='Uber')
```
After assigning an order to a service, you can get the details using get_details() method.
```python
my_shipday.OnDemandDeliveryService.get_details(order_id=1234)
```
If something goes wrong, you can cancel an assigned order using cancel() function. But this is not guaranteed to work-.
```python
my_shipday.OnDemandDeliveryService.cancel(order_id=1234)
```
Raw data
{
"_id": null,
"home_page": "https://shipday.com/",
"name": "shipday",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": "Shipday, DoorDash, Uber, Delivery API, Dispatch API, DoorDash API, Uber API, Dispatch App, Courier App, Delivery Dispatch, Delivery integration, Delivery Management, Dispatch Management, Delivery Service Integration, Local Delivery API",
"author": "Shipday",
"author_email": "shahriar@shipday.com",
"download_url": "https://files.pythonhosted.org/packages/db/2d/92fedb64e317898e37bbe5d0b2230236d22e4480dfca50678b56051cb361/shipday-1.4.3.tar.gz",
"platform": null,
"description": "# Shipday Python SDK\n\nThe Shipday Python sdk provides easier access to Shipday API's\nfrom Python applications and scripts.\n\n## Documentation\n\nSee the [shipday api](https://docs.shipday.com) docs for Python.\n\n## Requirements\n\nPython 3.6 or higher\n\n## Installation\n\n```markdown\npip install shipday\n```\n\n## Usage\n\nImport Shipday from shipday package.\n\n```python\nfrom shipday import Shipday\n```\n\nYou need to provide the shipday api-key in order to use the library. To get your API key\nlogin to your [Shipday Dispatch Dashboard](https://dispatch.shipday.com) and Find the \nAPI key from integrations tab.\n\nExample usages looks like following:-\n\n```python\nAPI_KEY = '##########.#######################'\nmy_shipday = Shipday(api_key=API_KEY)\n```\n\nThis my_shipday object contains three services (CarrierService, OrderService and OnDemandDeliveryService) which you can use to get your job\ndone. Here are few examples,\n\n### Carrier Service\n\nTo get all your carriers, use get_carriers() function of the CarrierService. Following example\nprints the number of carriers you have -\n\n```python\nmy_carriers = my_shipday.CarrierService.get_carriers()\nprint('I have {} carriers'.format(len(my_carriers)))\n```\n\nTo add a carrier, you need to create a CarrierRequest and send it using add_carrier() function of\nCarrierService.\nSee the example below -\n\n```python\nfrom shipday.carrier import CarrierRequest\n\ncarrier_req = CarrierRequest(name='John Doe',\n email='john.doe@shipday.com',\n phone_number='+123456789')\nmy_shipday.CarrierService.add_carrier(carrier_req)\n```\n\nTo delete a carrier, use delete_carrier() function of the CarrierService. For example-\n\n```python\nmy_shipday.CarrierService.delete_carrier(carrier_id=1234)\n```\n\n### Order Service\n\nTo get all the orders, use get_orders() function of the OrderService.\n\n```python\nmy_orders = my_shipday.OrderService.get_orders()\n```\n\nTo add an order, you need to create an Order object and send it using insert_order() function of\nOrderService. For example -\n\n```python\nfrom shipday.order import Address, Customer, Pickup, OrderItem, Order\n\nnew_order = Order(orderNumber='100')\n\n# Add customer details\nnew_order.customer = Customer(\n name='John Doe', email='john.doe', phone_number='+12367124',\n address=Address(street='556 Crestlake Dr', city='San Francisco', state='California', country='USA')\n)\n# Don't worry if you forget to send a parameter, you can also set it later like following line\nnew_order.customer.address.zip = 'CA 94132'\n\n# Add pickup details\nnew_order.pickup = Pickup(\n name='My pickup point', phone_number='+132462374'\n)\nnew_order.pickup.address = Address(street='890 Geneva Av', city='San Fransisco', state='California', zip='CA 94132',\n country='USA')\n\n# Add order items\nnew_order.order_items = [OrderItem(name='Pizza', unit_price=10.0, quantity=1)]\nnew_order.order_items.append(\n OrderItem(name='Popcorn Shrimp', quantity=1, unit_price=5)\n)\n\nmy_shipday.OrderService.insert_order(new_order)\n```\n\nTo retrieve orders by order number, use get_order function. This will return a list of orders matching the given\norder_number.\n\n```python\norders = my_shipday.OrderService.get_order(order_number='100')\n```\n\nTo assign an order to a carrier, use assign_order() function. For example,\n\n```python\nmy_shipday.OrderService.assign_order(order_id=7995257, carrier_id=242324)\n```\n\nTo delete an order, use delete_order() function. For example,\n\n```python\nmy_shipday.OrderService.delete_order(order_id=7995246)\n```\n\nYou can also query orders using query() function. For that you need to create a OrderQuery object. Following\ncode retrieves all orders from last 24 hours -\n\n```python\nfrom shipday.order import OrderQuery\n\nquery = OrderQuery()\n\nfrom datetime import datetime, timedelta\n\nquery.start_time = datetime.now() - timedelta(days=1)\n\nmy_shipday.OrderService.query(query=query)\n```\n\n### OnDemandDeliveryService\nTo get informations on On-Demand Delivery Services use get_services() function like following code -\n```python\nmy_shipday.OnDemandDeliveryService.get_services()\n```\n\nYou can use get_active_services() function to retrieve the service names of those available to your account.\n```python\nmy_shipday.OnDemandDeliveryService.get_active_services()\n```\n\nTo estimate the cost and required delivery time from available delivery services, use estimate() function -\n```python\nmy_shipday.OnDemandDeliveryService.estimate(order_id=123424)\n```\n\nYou can assign an order to a delivery service provider by calling assign() method. For example,\n```python\nmy_shipday.OnDemandDeliveryService.assign(order_id=1234, service_name='Uber')\n```\n\nAfter assigning an order to a service, you can get the details using get_details() method.\n```python\nmy_shipday.OnDemandDeliveryService.get_details(order_id=1234)\n```\n\nIf something goes wrong, you can cancel an assigned order using cancel() function. But this is not guaranteed to work-.\n```python\nmy_shipday.OnDemandDeliveryService.cancel(order_id=1234)\n```\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Python library for Shipday API",
"version": "1.4.3",
"project_urls": {
"Homepage": "https://shipday.com/"
},
"split_keywords": [
"shipday",
" doordash",
" uber",
" delivery api",
" dispatch api",
" doordash api",
" uber api",
" dispatch app",
" courier app",
" delivery dispatch",
" delivery integration",
" delivery management",
" dispatch management",
" delivery service integration",
" local delivery api"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "19f0a1e24fbae648e672c1609f37060b67ace2cfc361ce1e34e4bb94f39d624a",
"md5": "d9b535f7169638ff84517cd4b1a16e91",
"sha256": "99c5ee7faffc5ee833292b0e44784b32ff3c225ca9b4207667f0f2b04dab43d4"
},
"downloads": -1,
"filename": "shipday-1.4.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d9b535f7169638ff84517cd4b1a16e91",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 17780,
"upload_time": "2024-09-22T10:02:31",
"upload_time_iso_8601": "2024-09-22T10:02:31.089697Z",
"url": "https://files.pythonhosted.org/packages/19/f0/a1e24fbae648e672c1609f37060b67ace2cfc361ce1e34e4bb94f39d624a/shipday-1.4.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "db2d92fedb64e317898e37bbe5d0b2230236d22e4480dfca50678b56051cb361",
"md5": "3708f0ab0d2d7d432327d4a639e44ef8",
"sha256": "b8a5832bd1bd1d3872981bf4855ac15ee109c9c41a1e338f0f703b35fe2c7de3"
},
"downloads": -1,
"filename": "shipday-1.4.3.tar.gz",
"has_sig": false,
"md5_digest": "3708f0ab0d2d7d432327d4a639e44ef8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 13882,
"upload_time": "2024-09-22T10:02:33",
"upload_time_iso_8601": "2024-09-22T10:02:33.036453Z",
"url": "https://files.pythonhosted.org/packages/db/2d/92fedb64e317898e37bbe5d0b2230236d22e4480dfca50678b56051cb361/shipday-1.4.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-22 10:02:33",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "shipday"
}