Библиотека упрощающая работу с API службы доставки СДЭК.
Для работы требуется Python 3.6+ Для установки используйте pipenv (или pip):
$ pipenv install fs-cdek-api
$ pip install fs-cdek-api
delivery_request = DeliveryRequest(number='12345678')
order = delivery_request.add_order(
number=randint(100000, 1000000),
recipient_name='Иванов Иван Иванович',
phone='+79999999999',
send_city_post_code='680000',
rec_city_post_code='680000',
seller_name='Магазин',
comment='Товар',
tariff_type_code=138,
shipping_price=300.0,
)
delivery_request.add_address(order, pvz_code='XAB1')
package = delivery_request.add_package(
order_element=order,
size_a=10,
size_b=10,
size_c=10,
number=randint(100000, 1000000),
barcode=randint(100000, 1000000),
weight=600,
)
delivery_request.add_item(
package_element=package,
weight=500,
cost=1000,
ware_key='12345678',
comment='Товар',
)
cdek_client = CDEKClient('login', 'pass')
delivery_orders = cdek_client.create_orders(delivery_request)
Условием возможности удаления заказа является отсутствие движения груза на складе СДЭК (статус заказа «Создан»).
delete_requests = cdek_client.delete_orders(
act_number=act_number,
dispatch_numbers=[dispatch_number],
)
dispatch_number = order['DispatchNumber']
next_day = datetime.date.today() + datetime.timedelta(days=1)
call_courier = CallCourier()
call_request = call_courier.add_call(
date=next_day,
dispatch_number=dispatch_number,
sender_phone='+79999999999',
time_begin=datetime.time(hour=10),
time_end=datetime.time(hour=17),
lunch_begin=datetime.time(hour=13),
lunch_end=datetime.time(hour=14),
)
call_courier.add_address(
call_element=call_request,
address_street='Пушкина',
address_house='50',
address_flat='1',
)
call = cdek_client.call_courier(call_courier)
dispatch_number = order['DispatchNumber']
info = cdek_client.get_orders_info([dispatch_number])
dispatch_number = order['DispatchNumber']
info = cdek_client.get_orders_statuses([dispatch_number])
Возврщает pdf
документ в случае успеха.
order_print = cdek_client.get_orders_print([dispatch_number])
Возврщает pdf
документ в случае успеха.
barcode_print = cdek_client.get_barcode_print([dispatch_number])
regions = cdek_client.get_regions(region_code_ext=27)
cities = cdek_client.get_cities(region_code_ext=27)
pvz_list = cdek_client.get_delivery_points(city_post_code=680000)['pvz']
shipping_costs = cdek_client.get_shipping_cost(
sender_city_id=270,
receiver_city_id=44,
goods=[
{'weight': 0.3, 'length': 10, 'width': 7, 'height': 5},
{'weight': 0.1, 'volume': 0.1},
],
tariff_id=3,
)
next_day = datetime.date.today() + datetime.timedelta(days=1)
pre_alert_element = PreAlert(planned_meeting_date=next_day, pvz_code='XAB1')
pre_alert_element.add_order(dispatch_number=dispatch_number)
pre_alerts = cdek_client.create_prealerts(pre_alert_element)