API запросы для службы доставки "Новая почта".
Самые необходимые запросы для оформления доставки в одном модуле.
В Украине существует несколько служб доставки товаров, имеющих свой онлайн сервис. Одна из самых популярных - это служба "Новая Почта". Она имеет сотни отделений по всей Украине. Интернет-магазины с удовольствием пользуются этой услугой.
Так как "Новая почта" постоянно развивается и расширяется, стало затруднительно отслеживать работающие и новые отделения. К тому же, у некоторых отделений есть ограничения по весу груза.
Я часто использую в своих проектах функцию оформления доставки товаров, поэтому создал этот модуль. В первой версии этого модуля я использую минимальный функционал из того что предлагает API службы.
В этой версии пакета приведены 5 запросов с которых можно построить минимальный алгоритм оформления доставки:
- Справочник географических областей Украины (getAreas).
- Справочник населенных пунктов Украины (getSettlements).
- Справочник городов компании «Новая Почта» (getCities).
- Справочник отделений (getWarehouses).
- Справочник типов отделений (getWarehouseTypes).
Пакет yz-react-deliveri-newpochta находится на GitHub, где можно посмотреть его изнутри.
Установка
- cd <директория-проекта>
npm install yz-react-deliveri-newpochta --save
Как получить API ключ "Новой почты" ?
Для того чтобы подключиться к API «Нова пошта»,
необходимо зарегистрироваться и сгенерировать ключ API в меню личного кабинета пользователя
по ссылке novaposhta,
или получить персональный ключ API у Вашего менеджера.
Применение:
import ApiNovaPochta from 'yz-react-deliveri-newpochta';
function feedback() {
const apiKey = '<ваш_API_ключ_полученный_на_сайте_новой_почты>';
const cb = (data) => {
console.log(data);
};
const np = new ApiNovaPochta;
np.getAreas(cb, apiKey);
}
getAreas(cb, apiKey)
####Справочник географических областей Украины
Метод необходим для скачивания справочника географических областей Украины, компании «Новая Почта».
Рекомендуется проводить обновление справочников раз в месяц.
Параметры запроса
Параметр | Тип данных | Описание |
---|
cb | function | callback-функция |
apiKey | string | API ключ |
{
"success": true,
"data": [
{
"Description": "АРК",
"Ref": "71508128-9b87-11de-822f-000c2965ae0e",
"AreasCenter": "db5c88b7-391c-11dd-90d9-001a92567626"
},
{
"Description": "Вінницька",
"Ref": "71508129-9b87-11de-822f-000c2965ae0e",
"AreasCenter": "db5c88de-391c-11dd-90d9-001a92567626"
},
...
{
"Description": "Чернівецька",
"Ref": "7150813f-9b87-11de-822f-000c2965ae0e",
"AreasCenter": "e221d642-391c-11dd-90d9-001a92567626"
},
{
"Description": "Чернігівська",
"Ref": "71508140-9b87-11de-822f-000c2965ae0e",
"AreasCenter": "db5c897c-391c-11dd-90d9-001a92567626"
}
],
"errors": [],
"warnings": [],
"info": []
}
getSettlements(cb, apiKey)
####Справочник населенных пунктов Украины
- Города в которые осуществляется ДОСТАВКА.
- Наименования на Украинском и Русском языках.
Метод выгружает справочники городов Украины,
в которые осуществляется доставка груза компанией «Новая Почта».
Стоит учитывать, что для каждого населенного пункта возвращает область, и район.
Необходимо сохранять копию справочников на стороне клиента и поддерживать ее в актуальном состоянии.
Рекомендуется проводить обновление справочников раз в месяц.
Параметры запроса
Параметр | Тип данных | Описание |
---|
cb | function | callback-функция |
apiKey | string | API ключ |
{
"success": true,
"data": [
{
"Ref": "0e451e40-4b3a-11e4-ab6d-005056801329",
"SettlementType": "563ced13-f210-11e3-8c4a-0050568002cf",
"Latitude": "0.000000000000000",
"Longitude": "0.000000000000000",
"Description": "Абазівка",
"DescriptionRu": "Абазовка",
"SettlementTypeDescription": "село",
"SettlementTypeDescriptionRu": "село",
"Region": "e4ade6ea-4b33-11e4-ab6d-005056801329",
"RegionsDescription": "Полтавський р-н",
"RegionsDescriptionRu": "Полтавский р-н",
"Area": "dcaadf02-4b33-11e4-ab6d-005056801329",
"AreaDescription": "Полтавська область",
"AreaDescriptionRu": "Полтавская область",
"Index1": "38715",
"Index2": "38715",
"Delivery1": "",
"Delivery2": "",
"Delivery3": "",
"Delivery4": "",
"Delivery5": "",
"Delivery6": "",
"Delivery7": ""
}
],
"errors": [],
"warnings": [],
"info": []
}
getCities(cb, apiKey)
####Получение справочника городов компании «Новая Почта».
- Города с отделениями где можно оформить доставку на отделение.
- Города с отделениями где можно оформить доставку по адресу.
- Наименования на Украинском и Русском языках.
Метод загружает справочник населенных пунктов Украины.
Стоит учитывать, справочник выгружается только с населенными пунктами где есть отделения "Нова Пошта"
и можно оформить доставку на отделение а также на доставку по адресу.
Необходимо сохранять копию справочников на стороне клиента и поддерживать ее в актуальном состоянии.
Рекомендуется проводить обновление справочников раз в сутки.
Параметры запроса
Параметр | Тип данных | Описание |
---|
cb | function | callback-функция |
apiKey | string | API ключ |
{
"success": true,
"data": [
{
"Description": "Агрономічне",
"DescriptionRu": "Агрономичное",
"Ref": "ebc0eda9-93ec-11e3-b441-0050568002cf",
"Delivery1": "1",
"Delivery2": "0",
"Delivery3": "1",
"Delivery4": "0",
"Delivery5": "1",
"Delivery6": "0",
"Delivery7": "0",
"Area": "71508129-9b87-11de-822f-000c2965ae0e",
"Conglomerates": null
}
],
"errors": [],
"warnings": [],
"info": []
}
getWarehouses(cb, apiKey, prop)
####Получение справочника отделений.
Метод загружает справочник отделений «Новая Почта» в рамках населенных пунктов Украины.
Необходимо сохранять копию справочников на стороне клиента и поддерживать ее в актуальном состоянии.
Рекомендуется проводить обновление справочников раз в сутки.
import ApiNovaPochta from 'yz-react-deliveri-newpochta';
function feedback() {
const apiKey = '<ваш_API_ключ_полученный_на_сайте_новой_почты>';
const prop = {"CityName": "Бахмач"};
const cb = (data) => {
console.log(data);
};
const np = new ApiNovaPochta;
np.getWarehouses(cb, apiKey, prop);
}
Параметры запроса
Параметр | Тип данных | Описание |
---|
cb | function | callback-функция |
apiKey | string | API ключ |
prop | json | Дополнительный фильтр |
Дополнительный фильтр
Параметр | Тип данных | Описание |
---|
CityName* | string[36] | Дополнительный фильтр по имени города |
CityRef | string[36] | Дополнительный фильтр по идентификатору города |
Page | int[10] | Страница, до 500 записей на странице |
{{
"success": true,
"data": [
{
"Description": "Відділення №1: вул. М. Грушевського, 3",
"DescriptionRu": "Отделение №1: ул. М. Грушевского, 3",
"Phone": "(0342) 59-13-42",
"TypeOfWarehouse": "9a68df70-0267-42a8-bb5c-37f427e36ee4",
"Ref": "39931b80-e1c2-11e3-8c4a-0050568002cf",
"Number": "1",
"CityRef": "20982d74-9b6c-11e2-a57a-d4ae527baec3",
"CityDescription": "Заболотів (Снятинський р-н)",
"CityDescriptionRu": "Заболотов (Снятинский р-н)",
"Longitude": "25.299652300000000",
"Latitude": "48.470805500000000",
"TotalMaxWeightAllowed": 0,
"PlaceMaxWeightAllowed": 0,
"Reception": {
"Monday": "15:30-18:00",
"Tuesday": "-",
"Wednesday": "15:30-18:00",
"Thursday": "-",
"Friday": "15:30-18:00",
"Saturday": "-",
"Sunday": "-"
},
"Delivery": {
"Monday": "09:00-15:00",
"Tuesday": "-",
"Wednesday": "09:00-15:00",
"Thursday": "-",
"Friday": "09:00-15:00",
"Saturday": "-",
"Sunday": "-"
},
"Schedule": {
"Monday": "09:00-18:00",
"Tuesday": "09:00-18:00",
"Wednesday": "09:00-18:00",
"Thursday": "09:00-18:00",
"Friday": "09:00-18:00",
"Saturday": "09:00-15:00",
"Sunday": "-"
}
}
],
"errors": [],
"warnings": [],
"info": []
}
getWarehouseTypes(cb, apiKey)
####Получение справочника типов отделений.
Метод загружает справочник типов отделений «Новая Почта» в рамках населенных пунктов Украины.
Необходимо сохранять копию справочников на стороне клиента и поддерживать ее в актуальном состоянии.
Рекомендуется проводить обновление справочников раз в сутки.
import ApiNovaPochta from 'yz-react-deliveri-newpochta';
function feedback() {
const apiKey = '<ваш_API_ключ_полученный_на_сайте_новой_почты>';
const cb = (data) => {
console.log(data);
};
const np = new ApiNovaPochta;
np.getWarehouseTypes(cb, apiKey);
}
Параметры запроса
Параметр | Тип данных | Описание |
---|
cb | function | callback-функция |
apiKey | string | API ключ |
{ success: true,
data:
[ { Ref: '6f8c7162-4b72-4b0a-88e5-906948c6a92f',
Description: 'Parcel Shop' },
{ Ref: '841339c7-591a-42e2-8233-7a0a00f0ed6f',
Description: 'Поштове відділення' },
{ Ref: '95dc212d-479c-4ffb-a8ab-8c1b9073d0bc',
Description: 'Поштомат приват банку' },
{ Ref: '9a68df70-0267-42a8-bb5c-37f427e36ee4',
Description: 'Вантажне відділення' },
{ Ref: 'cab18137-df1b-472d-8737-22dd1d18b51d',
Description: 'Поштомат InPost' },
{ Ref: 'f9316480-5f2d-425d-bc2c-ac7cd29decf0',
Description: 'Поштомат' } ],
errors: [],
warnings: [],
info: [],
messageCodes: [],
errorCodes: [],
warningCodes: [],
infoCodes: []
}
License
MIT