yandex-dostavka 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
|