Библиотека упрощающая работу с API службы доставки СДЭК.
Для работы требуется Python 3.6+ Для установки используйте pipenv (или pip):
$ pipenv install fs-cdek-api $ pip install fs-cdek-apidelivery_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)