Nosy Pinocchio Manners

    yz-react-deliveri-newpochta

    1.0.33 • Public • Published

    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)

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

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

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

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

    Параметр Тип данных Описание
    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

    Install

    npm i yz-react-deliveri-newpochta

    DownloadsWeekly Downloads

    31

    Version

    1.0.33

    License

    MIT

    Last publish

    Collaborators

    • zhukyuri