1.0.33 • Published 9 years ago

yz-react-deliveri-newpochta v1.0.33

Weekly downloads
3
License
MIT
Repository
github
Last release
9 years ago

API запросы для службы доставки "Новая почта".

Самые необходимые запросы для оформления доставки в одном модуле.

В Украине существует несколько служб доставки товаров, имеющих свой онлайн сервис. Одна из самых популярных - это служба "Новая Почта". Она имеет сотни отделений по всей Украине. Интернет-магазины с удовольствием пользуются этой услугой.

Так как "Новая почта" постоянно развивается и расширяется, стало затруднительно отслеживать работающие и новые отделения. К тому же, у некоторых отделений есть ограничения по весу груза.

Я часто использую в своих проектах функцию оформления доставки товаров, поэтому создал этот модуль. В первой версии этого модуля я использую минимальный функционал из того что предлагает API службы.

В этой версии пакета приведены 5 запросов с которых можно построить минимальный алгоритм оформления доставки:

  1. Справочник географических областей Украины (getAreas).
  2. Справочник населенных пунктов Украины (getSettlements).
  3. Справочник городов компании «Новая Почта» (getCities).
  4. Справочник отделений (getWarehouses).
  5. Справочник типов отделений (getWarehouseTypes).

Пакет yz-react-deliveri-newpochta находится на GitHub, где можно посмотреть его изнутри.

Установка

  1. cd <директория-проекта>
  2. 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)

####Справочник географических областей Украины

Метод необходим для скачивания справочника географических областей Украины, компании «Новая Почта».

Рекомендуется проводить обновление справочников раз в месяц.

Параметры запроса

ПараметрТип данныхОписание
cbfunctioncallback-функция
apiKeystringAPI ключ

-

// ПРИМЕР ПОЛУЧЕННОГО РЕЗУЛЬТАТА

{
    "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)

####Справочник населенных пунктов Украины

  • Города в которые осуществляется ДОСТАВКА.
  • Наименования на Украинском и Русском языках.

Метод выгружает справочники городов Украины, в которые осуществляется доставка груза компанией «Новая Почта».

Стоит учитывать, что для каждого населенного пункта возвращает область, и район.

Необходимо сохранять копию справочников на стороне клиента и поддерживать ее в актуальном состоянии. Рекомендуется проводить обновление справочников раз в месяц.

Параметры запроса

ПараметрТип данныхОписание
cbfunctioncallback-функция
apiKeystringAPI ключ

-

// ПРИМЕР ПОЛУЧЕННОГО РЕЗУЛЬТАТА

{
    "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)

####Получение справочника городов компании «Новая Почта».

  • Города с отделениями где можно оформить доставку на отделение.
  • Города с отделениями где можно оформить доставку по адресу.
  • Наименования на Украинском и Русском языках.

Метод загружает справочник населенных пунктов Украины. Стоит учитывать, справочник выгружается только с населенными пунктами где есть отделения "Нова Пошта" и можно оформить доставку на отделение а также на доставку по адресу.

Необходимо сохранять копию справочников на стороне клиента и поддерживать ее в актуальном состоянии. Рекомендуется проводить обновление справочников раз в сутки.

Параметры запроса

ПараметрТип данныхОписание
cbfunctioncallback-функция
apiKeystringAPI ключ

-

// ПРИМЕР ПОЛУЧЕННОГО РЕЗУЛЬТАТА

{
    "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);
}

Параметры запроса

ПараметрТип данныхОписание
cbfunctioncallback-функция
apiKeystringAPI ключ
propjsonДополнительный фильтр

Дополнительный фильтр

ПараметрТип данныхОписание
CityName*string36Дополнительный фильтр по имени города
CityRefstring36Дополнительный фильтр по идентификатору города
Pageint10Страница, до 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);
}

Параметры запроса

ПараметрТип данныхОписание
cbfunctioncallback-функция
apiKeystringAPI ключ

*

// ПРИМЕР ПОЛУЧЕННОГО РЕЗУЛЬТАТА

{ 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

1.0.33

9 years ago

1.0.32

9 years ago

1.0.31

9 years ago

1.0.30

9 years ago

1.0.28

9 years ago

1.0.27

9 years ago

1.0.26

9 years ago

1.0.25

9 years ago

1.0.24

9 years ago

1.0.23

9 years ago

1.0.22

9 years ago

1.0.21

9 years ago

1.0.20

9 years ago

1.0.19

9 years ago

1.0.18

9 years ago

1.0.17

9 years ago

1.0.16

9 years ago

1.0.15

9 years ago

1.0.14

9 years ago

1.0.12

9 years ago

1.0.11

9 years ago

1.0.10

9 years ago

1.0.9

9 years ago

1.0.8

9 years ago

1.0.7

9 years ago

1.0.6

9 years ago

1.0.5

9 years ago

1.0.4

9 years ago

1.0.3

9 years ago

1.0.0

9 years ago