yandex-dostavka 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1912cde15fc1b20fcf2c6d54e7a900dd6c779780ea3eda3a1ac2db9500a16210
|
4
|
+
data.tar.gz: c67f618ab2188764c81c7630da3aa9276bc36f1b0f6409ae67aa623c8090c31c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: caf9436b519d38a3a0d0caedd2069dda17a906b7fa490cc36b9009728e71965ddbc94e4e89c3bb5c38b81a6b8fe73f05cdaa4a0fea7dc7cdf10b636bde3e4da2
|
7
|
+
data.tar.gz: 696c16f44c4489454001ffd001d0e5a7f6ef9152487b10bc7e1283f165c920d2f9aa0f8025b0ba8b34f85215223067e567ebb1691a55179edf921c3a8c600756
|
data/README.markdown
CHANGED
@@ -8,6 +8,22 @@ API wrapper для [Yandex Dostavka API](https://yandex.ru/dev/logistics/deliver
|
|
8
8
|
2. [Использование Ruby](#using_ruby)
|
9
9
|
3. [Debug Logging](#debug_logging)
|
10
10
|
4. [Custom logger](#custom_logger)
|
11
|
+
1. [Подготовка заявки](#part1)
|
12
|
+
1. [Предварительная оценка стоимости доставки](#api_b2b_platform_pricing-calculator_post)
|
13
|
+
2. [Получение интервалов доставки](#api_b2b_platform_offers_info_get)
|
14
|
+
2. [Точки самопривоза и ПВЗ](#part2)
|
15
|
+
1. [Получение идентификатора населённого пункта](#api_b2b_platform_location_detect_post)
|
16
|
+
2. [Получение списка точек самопривоза и ПВЗ](#api_b2b_platform_pickup-points_list_post)
|
17
|
+
3. [Основные запросы](#part3)
|
18
|
+
1. [Создание заявки](#api_b2b_platform_offers_create_post)
|
19
|
+
2. [Подтверждение заявки](#api_b2b_platform_offers_confirm_post)
|
20
|
+
3. [Получение информации о заявке](#api_b2b_platform_request_info_get)
|
21
|
+
4. [Получение информации о заявках во временном интервале](#api_b2b_platform_requests_info_get)
|
22
|
+
5. [История статусов заявки](#api_b2b_platform_request_history_get)
|
23
|
+
6. [Отмена заявки](#api_b2b_platform_request_cancel_post)
|
24
|
+
4. [Ярлыки и акты приема-передачи](#part4)
|
25
|
+
1. [Получение ярлыков](#api_b2b_platform_request_generate-labels_post)
|
26
|
+
2. [Получение актов приёма-передачи для отгрузки](#api_b2b_platform_request_get-handover-act_post)
|
11
27
|
|
12
28
|
# <a name="install"></a> Установка
|
13
29
|
|
@@ -41,7 +57,7 @@ API wrapper для [Yandex Dostavka API](https://yandex.ru/dev/logistics/deliver
|
|
41
57
|
Сначала создайте экземпляр объекта `YandexDostavka::Request`:
|
42
58
|
|
43
59
|
```ruby
|
44
|
-
dostavka = YandexDostavka::Request.new(token: "
|
60
|
+
dostavka = YandexDostavka::Request.new(token: "your_token")
|
45
61
|
```
|
46
62
|
|
47
63
|
Вы можете изменять `token`, `timeout`, `open_timeout`, `faraday_adapter`, `proxy`, `symbolize_keys`, `logger`, и `debug`:
|
@@ -62,7 +78,7 @@ YandexDostavka::Request.token = "your_token"
|
|
62
78
|
Измените `debug: true` чтобы включить логирование в STDOUT.
|
63
79
|
|
64
80
|
```ruby
|
65
|
-
dostavka = YandexDostavka::Request.new(token: "
|
81
|
+
dostavka = YandexDostavka::Request.new(token: "AgAAAADzeAQMAAAPeISvM_9LUkxCijQoFXOH5QE", debug: true)
|
66
82
|
```
|
67
83
|
|
68
84
|
### <a name="custom_logger"></a> Custom logger
|
@@ -70,7 +86,7 @@ dostavka = YandexDostavka::Request.new(token: "***", debug: true)
|
|
70
86
|
`Logger.new` используется по умолчанию, но вы можете изменить на свой:
|
71
87
|
|
72
88
|
```ruby
|
73
|
-
dostavka = YandexDostavka::Request.new(token: "
|
89
|
+
dostavka = YandexDostavka::Request.new(token: "AgAAAADzeAQMAAAPeISvM_9LUkxCijQoFXOH5QE", debug: true, logger: MyLogger.new)
|
74
90
|
```
|
75
91
|
|
76
92
|
Или:
|
@@ -79,9 +95,8 @@ dostavka = YandexDostavka::Request.new(token: "***", debug: true, logger: MyLogg
|
|
79
95
|
YandexDostavka::Request.logger = MyLogger.new
|
80
96
|
```
|
81
97
|
|
82
|
-
|
83
|
-
|
84
|
-
|
98
|
+
## <a name="part1"></a> [Подготовка заявки](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part1.html)
|
99
|
+
### <a name="api_b2b_platform_pricing-calculator_post"></a> [Предварительная оценка стоимости доставки](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part1/api_b2b_platform_pricing-calculator_post.html)
|
85
100
|
```ruby
|
86
101
|
body = {
|
87
102
|
client_price: 10000,
|
@@ -96,5 +111,159 @@ body = {
|
|
96
111
|
total_assessed_price: 10000,
|
97
112
|
total_weight: 1000
|
98
113
|
}
|
99
|
-
YandexDostavka::Request.pricing_calculator.create(body: body)
|
114
|
+
response = YandexDostavka::Request.pricing_calculator.create(body: body)
|
115
|
+
pricing_total = response.body[:pricing_total]
|
116
|
+
#=> "360 RUB"
|
117
|
+
```
|
118
|
+
### <a name="api_b2b_platform_offers_info_get"></a> [Получение интервалов доставки](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part1/api_b2b_platform_offers_info_get.html)
|
119
|
+
```ruby
|
120
|
+
params = {
|
121
|
+
station_id: "03840f16-3c53-400c-b382-1ecf30e06b64",
|
122
|
+
full_address: "Санкт-Петербург, Професора Попова, 38",
|
123
|
+
geo_id: 2
|
124
|
+
}
|
125
|
+
response = YandexDostavka::Request.offers.info.retrieve(params: params)
|
126
|
+
```
|
127
|
+
## <a name="part2"></a> [Точки самопривоза и ПВЗ](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part2.html)
|
128
|
+
### <a name="api_b2b_platform_location_detect_post"></a> [Получение идентификатора населённого пункта](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part2/api_b2b_platform_location_detect_post.html)
|
129
|
+
```ruby
|
130
|
+
body = {
|
131
|
+
location: "Санкт-Петербург"
|
132
|
+
}
|
133
|
+
response = YandexDostavka::Request.location.detect.create(body: body)
|
134
|
+
variants = response.body[:variants]
|
135
|
+
#=> [{:geo_id=>2, :address=>"Россия, Санкт-Петербург"}]
|
136
|
+
```
|
137
|
+
### <a name="api_b2b_platform_pickup-points_list_post"></a> [Получение списка точек самопривоза и ПВЗ](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part2/api_b2b_platform_pickup-points_list_post.html)
|
138
|
+
```ruby
|
139
|
+
body = {
|
140
|
+
available_for_dropoff: true,
|
141
|
+
payment_method: "already_paid",
|
142
|
+
type: "pickup_point"
|
143
|
+
}
|
144
|
+
response = YandexDostavka::Request.pickup_points.list.create(body: body)
|
145
|
+
points = response.body[:points]
|
146
|
+
# =>
|
147
|
+
# [{:id=>"03840f16-3c53-400c-b382-1ecf30e06b64",
|
148
|
+
# ...
|
149
|
+
```
|
150
|
+
## <a name="part3"></a> [Основные запросы](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part3.html)
|
151
|
+
### <a name="api_b2b_platform_offers_create_post"></a> [Создание заявки](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part3/api_b2b_platform_offers_create_post.html)
|
152
|
+
```ruby
|
153
|
+
body = {
|
154
|
+
billing_info: {
|
155
|
+
delivery_cost: 10000,
|
156
|
+
payment_method: "card_on_receipt"
|
157
|
+
},
|
158
|
+
destination: {
|
159
|
+
custom_location: {
|
160
|
+
details: {
|
161
|
+
comment: "БЦ Ривер Хаус",
|
162
|
+
full_address: "Санкт-Петербург, ул. Академика Павлова, 5",
|
163
|
+
room: "601"
|
164
|
+
}
|
165
|
+
},
|
166
|
+
interval: {
|
167
|
+
from: DateTime.now.to_i,
|
168
|
+
to: DateTime.tomorrow.to_datetime.to_i
|
169
|
+
},
|
170
|
+
type: "custom_location"
|
171
|
+
},
|
172
|
+
info: {
|
173
|
+
comment: "Позвонить за час",
|
174
|
+
operator_request_id: "100023"
|
175
|
+
},
|
176
|
+
items: [
|
177
|
+
{
|
178
|
+
article: "55185",
|
179
|
+
billing_details: {
|
180
|
+
assessed_unit_price: 237900,
|
181
|
+
unit_price: 237900
|
182
|
+
},
|
183
|
+
count: 1,
|
184
|
+
name: "Автомобильный держатель Mage Safe Qi для iPhone, магнитный, черный",
|
185
|
+
place_barcode: "4680431123446"
|
186
|
+
}
|
187
|
+
],
|
188
|
+
places: [
|
189
|
+
{
|
190
|
+
barcode: "4680431123446",
|
191
|
+
physical_dims: {
|
192
|
+
predefined_volume: 10000,
|
193
|
+
weight_gross: 1000
|
194
|
+
}
|
195
|
+
}
|
196
|
+
],
|
197
|
+
recipient_info: {
|
198
|
+
email: "recipient@email.com",
|
199
|
+
first_name: "Осетров",
|
200
|
+
last_name: "Павел",
|
201
|
+
partonymic: "Федорович",
|
202
|
+
phone: "+7111111111111"
|
203
|
+
},
|
204
|
+
source: {
|
205
|
+
platform_station: {
|
206
|
+
platform_id: "03840f16-3c53-400c-b382-1ecf30e06b64"
|
207
|
+
}
|
208
|
+
}
|
209
|
+
}
|
210
|
+
response = YandexDostavka::Request.offers("create").create(body: body)
|
211
|
+
```
|
212
|
+
### <a name="api_b2b_platform_offers_confirm_post"></a> [Подтверждение заявки](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part3/api_b2b_platform_offers_confirm_post.html)
|
213
|
+
```ruby
|
214
|
+
body = {
|
215
|
+
offer_id: "1"
|
216
|
+
}
|
217
|
+
response = YandexDostavka::Request.offers.confirm.create(body: body)
|
218
|
+
```
|
219
|
+
### <a name="api_b2b_platform_request_info_get"></a> [Получение информации о заявке](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part3/api_b2b_platform_request_info_get.html)
|
220
|
+
```ruby
|
221
|
+
response = YandexDostavka::Request.request.info.retrieve(params: {request_id: "873113ce-819a-4a73-b500-dce9dae82299"})
|
222
|
+
```
|
223
|
+
### <a name="api_b2b_platform_requests_info_get"></a> [Получение информации о заявках во временном интервале](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part3/api_b2b_platform_requests_info_get.html)
|
224
|
+
```ruby
|
225
|
+
params = {
|
226
|
+
from: (DateTime.now - 7.day).to_i,
|
227
|
+
to: DateTime.now.to_i
|
228
|
+
}
|
229
|
+
response = YandexDostavka::Request.requests.info.retrieve(params: params)
|
230
|
+
```
|
231
|
+
### <a name="api_b2b_platform_request_history_get"></a> [История статусов заявки](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part3/api_b2b_platform_request_history_get.html)
|
232
|
+
```ruby
|
233
|
+
response = YandexDostavka::Request.request.history.retrieve(params: {request_id: "873113ce-819a-4a73-b500-dce9dae82299"})
|
234
|
+
```
|
235
|
+
### <a name="api_b2b_platform_request_cancel_post"></a> [Отмена заявки](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part3/api_b2b_platform_request_cancel_post.html)
|
236
|
+
```ruby
|
237
|
+
response = YandexDostavka::Request.request.cancel.create(body: {request_id: "873113ce-819a-4a73-b500-dce9dae82299"})
|
238
|
+
```
|
239
|
+
## <a name="part4"></a> [Ярлыки и акты приема-передачи](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part4.html)
|
240
|
+
### <a name="api_b2b_platform_request_generate-labels_post"></a> [Получение ярлыков](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part4/api_b2b_platform_request_generate-labels_post.html)
|
241
|
+
```ruby
|
242
|
+
body = {
|
243
|
+
generate_type: "many",
|
244
|
+
request_ids: [
|
245
|
+
"873113ce-819a-4a73-b500-dce9dae82299"
|
246
|
+
]
|
247
|
+
}
|
248
|
+
|
249
|
+
```
|
250
|
+
### <a name="api_b2b_platform_request_get-handover-act_post"></a> [Получение актов приёма-передачи для отгрузки](https://yandex.ru/dev/logistics/delivery-api/doc/ref/part4/api_b2b_platform_request_get-handover-act_post.html)
|
251
|
+
```ruby
|
252
|
+
params = {
|
253
|
+
editable_format: true,
|
254
|
+
new_requests: true,
|
255
|
+
created_since: 1643711508,
|
256
|
+
created_until: 1644489108,
|
257
|
+
created_since_utc: "2021-10-25T15:00:0.000000Z",
|
258
|
+
created_until_utc: "2021-10-25T17:00:0.000000Z",
|
259
|
+
request_ids: "873113ce-819a-4a73-b500-dce9dae82299,dbc17cb3-d3de-48e2-9f7f-b4ff23095df7",
|
260
|
+
request_code: "my_request_id_123"
|
261
|
+
}
|
262
|
+
body = {
|
263
|
+
request_ids: [
|
264
|
+
"873113ce-819a-4a73-b500-dce9dae82299",
|
265
|
+
"dbc17cb3-d3de-48e2-9f7f-b4ff23095df7"
|
266
|
+
]
|
267
|
+
}
|
268
|
+
response = YandexDostavka::Request.request.get_handover_act.create(params: params, body: body)
|
100
269
|
```
|
@@ -1,6 +1,5 @@
|
|
1
1
|
defaults: &defaults
|
2
2
|
API_ENDPOINT: "https://b2b.taxi.tst.yandex.net"
|
3
|
-
YANDEX_DOSTAVKA_TOKEN: "***"
|
4
3
|
production:
|
5
4
|
<<: *defaults
|
6
5
|
API_ENDPOINT: "https://b2b-authproxy.taxi.yandex.net"
|
@@ -8,5 +7,6 @@ production:
|
|
8
7
|
development:
|
9
8
|
<<: *defaults
|
10
9
|
API_ENDPOINT: "https://b2b.taxi.tst.yandex.net"
|
10
|
+
YANDEX_DOSTAVKA_TOKEN: "AgAAAADzeAQMAAAPeISvM_9LUkxCijQoFXOH5QE"
|
11
11
|
test:
|
12
12
|
<<: *defaults
|