2017 © Pedro Peláez
 

library nova-poshta-api-2

PHP class for API 2.0 ukrainian delivery company "Nova Poshta"

image

sergeynezbritskiy/nova-poshta-api-2

PHP class for API 2.0 ukrainian delivery company "Nova Poshta"

  • Friday, May 11, 2018
  • by sergeynezbritskiy
  • Repository
  • 1 Watchers
  • 0 Stars
  • 2 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 44 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

Nova Poshta API 2.0

Класс предоставляет доступ к функциям API 2.0 службы доставки Новая Почта, (*1)

Подготовка

Получение ключа API

Для использования API необходимо: * зарегистрироваться на сайте Новой Почты * На странице настроек в личном кабинете сгенерировать ключ для работы с API, (*2)

После получения ключа API предоставляется возможность использовать все методы класса официальной из документации, (*3)

Установка последней версии класса для работы с API

Git

Необходимо выполнить в командной строке, (*4)

git clone https://github.com/lis-dev/nova-poshta-api-2

Composer

Необходимо создать файл composer.json со следующим содержанием, (*5)

{
    "require": {
        "lis-dev/nova-poshta-api-2": "dev-master"
    }
}

и запустить из командной строки команду php composer.phar install или php composer.phar update Или выполнить в командной строке, (*6)

composer require lis-dev/nova-poshta-api-2:dev-master

Альтернативная установка

Необходимо скачать архив по ссылке, (*7)

https://github.com/lis-dev/nova-poshta-api-2/archive/master.zip

Форматы данных

Для входящих данных используются PHP массивы, ответ сервера может быть получен в формате: * как PHP массив * JSON * XML, (*8)

Использование

Создание экземпляра класса

$np = new NovaPoshtaApi2('Ваш_ключ_API_2.0');

Создание экземпляра класса (с расширенными параметрами)

Рекомендуется использовать, если необходимо получать данные на языке, отличном от русского, выбрасывать Exception при ошибке запроса, или при отсутствии установленной библиотеки curl на сервере, (*9)

$np = new NovaPoshtaApi2(
    'Ваш_ключ_API_2.0',
    'ru', // Язык возвращаемых данных: ru (default) | ua | en
    FALSE, // При ошибке в запросе выбрасывать Exception: FALSE (default) | TRUE
    'curl' // Используемый механизм запроса: curl (defalut) | file_get_content
);

Получение информации о трек-номере

$result = $np->documentsTracking('59000000000000');

Получение сроков доставки

// Получение кода города по названию города и области
$sender_city = $np->getCity('Белгород-Днестровский', 'Одесская');
$sender_city_ref = $sender_city['data'][0]['Ref'];
// Получение кода города по названию города и области
$recipient_city = $np->getCity('Киев', 'Киевская');
$recipient_city_ref = $recipient_city['data'][0]['Ref'];
// Дата отправки груза
$date = date('d.m.Y');
// Получение ориентировочной даты прибытия груза между складами в разных городах
$result = $np->getDocumentDeliveryDate($sender_city_ref, $recipient_city_ref, 'WarehouseWarehouse', $date); 

Получение стоимости доставки

// Получение кода города по названию города и области
$sender_city = $np->getCity('Белгород-Днестровский', 'Одесская');
$sender_city_ref = $sender_city['data'][0]['Ref'];
// Получение кода города по названию города и области
$recipient_city = $np->getCity('Киев', 'Киевская');
$recipient_city_ref = $recipient_city['data'][0]['Ref'];
// Вес товара
$weight = 7;
// Цена в грн
$price = 5450;
// Получение стоимости доставки груза с указанным весом и стоимостью между складами в разных городах 
$result = $np->getDocumentPrice($sender_city_ref, $recipient_city_ref, 'WarehouseWarehouse', $weight, $price);

Генерирование новой электронной накладной

// Перед генерированием ЭН необходимо получить данные отправителя
// Получение всех отправителей
$senderInfo = $np->getCounterparties('Sender', 1, '', '');
// Выбор отправителя в конкретном городе (в данном случае - в первом попавшемся)
$sender = $senderInfo['data'][0];
// Информация о складе отправителя
$senderWarehouses = $np->getWarehouses($sender['City']);
// Генерирование новой накладной
$result = $np->newInternetDocument(
    // Данные отправителя
    array(
        // Данные пользователя
        'FirstName' => $sender['FirstName'],
        'MiddleName' => $sender['MiddleName'],
        'LastName' => $sender['LastName'],
        // Вместо FirstName, MiddleName, LastName можно ввести зарегистрированные ФИО отправителя или название фирмы для юрлиц
        // (можно получить, вызвав метод getCounterparties('Sender', 1, '', ''))
        // 'Description' => $sender['Description'],
        // Необязательное поле, в случае отсутствия будет использоваться из данных контакта
        // 'Phone' => '0631112233',
        // Город отправления
        // 'City' => 'Белгород-Днестровский',
        // Область отправления
        // 'Region' => 'Одесская',
        'CitySender' => $sender['City'],
        // Отделение отправления по ID (в данном случае - в первом попавшемся)
        'SenderAddress' => $senderWarehouses['data'][0]['Ref'],
        // Отделение отправления по адресу
        // 'Warehouse' => $senderWarehouses['data'][0]['DescriptionRu'],
    ),
    // Данные получателя
    array(
        'FirstName' => 'Сидор',
        'MiddleName' => 'Сидорович',
        'LastName' => 'Сиродов',
        'Phone' => '0509998877',
        'City' => 'Киев',
        'Region' => 'Киевская',
        'Warehouse' => 'Отделение №3: ул. Калачевская, 13 (Старая Дарница)',
    ),
    array(
        // Дата отправления
        'DateTime' => date('d.m.Y'),
        // Тип доставки, дополнительно - getServiceTypes()
        'ServiceType' => 'WarehouseWarehouse',
        // Тип оплаты, дополнительно - getPaymentForms()
        'PaymentMethod' => 'Cash',
        // Кто оплачивает за доставку
        'PayerType' => 'Recipient',
        // Стоимость груза в грн
        'Cost' => '500',
        // Кол-во мест
        'SeatsAmount' => '1',
        // Описание груза
        'Description' => 'Кастрюля',
        // Тип доставки, дополнительно - getCargoTypes
        'CargoType' => 'Cargo',
        // Вес груза
        'Weight' => '10',
        // Объем груза в куб.м.
        'VolumeGeneral' => '0.5',
        // Обратная доставка
        'BackwardDeliveryData' => array(
            array(
                // Кто оплачивает обратную доставку
                'PayerType' => 'Recipient',
                // Тип доставки
                'CargoType' => 'Money',
                // Значение обратной доставки
                'RedeliveryString' => 4552,
            )
        )
    )
);

Получение складов в определенном городе

// В параметрах указывается город и область (для более точного поиска)
$city = $np->getCity('Киев', 'Киевская');
$result = $np->getWarehouses($city);

Вызов произвольного метода

$result = $np
    ->model('Имя_модели')
    ->method('Имя_метода')
    ->params(array(
        'Имя_параметра_1' => 'Значение_параметра_1',
        'Имя_параметра_2' => 'Значение_параметра_2',
    ))
    ->execute();

Реализованные методы для работы с моделями

Модель InternetDocument

  • save
  • update
  • delete
  • getDocumentPrice
  • getDocumentDeliveryDate
  • getDocumentList
  • getDocument
  • printDocument
  • printMarkings
  • documentsTracking
  • newInternetDocument
  • generateReport

Модель Counterparty

  • save
  • update
  • delete
  • cloneLoyaltyCounterpartySender
  • getCounterparties
  • getCounterpartyAddresses
  • getCounterpartyContactPersons
  • getCounterpartyByEDRPOU
  • getCounterpartyOptions

Модель ContactPerson

  • save
  • update
  • delete

Модель Address

  • save
  • update
  • delete
  • getCities
  • getStreet
  • getWarehouses
  • getAreas
  • findNearestWarehouse

Модель Common

  • getTypesOfCounterparties
  • getBackwardDeliveryCargoTypes
  • getCargoDescriptionList
  • getCargoTypes
  • getDocumentStatuses
  • getOwnershipFormsList
  • getPalletsList
  • getPaymentForms
  • getTimeIntervals
  • getServiceTypes
  • getTiresWheelsList
  • getTraysList
  • getTypesOfPayers
  • getTypesOfPayersForRedelivery

The Versions

11/05 2018

dev-master

9999999-dev https://github.com/sergeynezbritskiy/

PHP class for API 2.0 ukrainian delivery company "Nova Poshta"

  Sources   Download

MIT

The Requires

  • php >=5.3.0

 

The Development Requires

delivery nova poshta delivery service nova poshta api

11/05 2018

0.1.1

0.1.1.0 https://github.com/sergeynezbritskiy/

PHP class for API 2.0 ukrainian delivery company "Nova Poshta"

  Sources   Download

MIT

The Requires

  • php >=5.3.0

 

The Development Requires

delivery nova poshta delivery service nova poshta api