API: Создание нового или редактирование существующего заказа

Как создать новый заказ в Ордерино из сторонней системы?

Информация о том, как работать с Orderino API

Создание заказа

Чтобы создать заказ в Ордерино, нужно отправить сформированный JSON документ POST запросом на адрес:

API_HOST/api/company/COMPANY_ID/orders/add?id=ACCOUNT_ID&key=API_KEY

Сам заказ представляет собой JSON документ, который состоит из нескольких разделов:

  • само описание заказа
  • информация о клиенте
  • информация о месте и времени выполнения заказа
  • информация о составе заказа
  • информация о файлах и документах заказа
  • информация об дополнительных опциях заказа

Распишем каждую секцию в отдельности.

Информация по заказу – order

Поле в документе Что хранит и в каком формате Пример
received_date дату получения заказа в UNIX Time 1349015549
customer_id ID клиента в Ордерино. Если неизвестно, используйте секцию “customer” 1349
manager_id ID менеджера в Ордерино, который ведет заказ 1350
performer_id ID исполнителя в Ордерино, который ведет заказ 1360
order_status Статус заказа в Ордерино в виде числа 3
order_summary Кратко о заказе Установить стиралку и душ
order_comment дату получения заказа в UNIX Time 1349015549
order_price_final Цена заказа для клиента 1000
order_no Номер заказа 201404023-123
order_price_income Входящая (закупочная) цена заказа 500

Информация по клиенту – customer

Используйте эту секцию, если вам не известен ID клиента в Ордерино. Если при создании заказа клиент будет найден в Ордерино по полю contact_name или contact_email – заказ будет прикреплен на существующего клиента, если нет – будет создан новый клиент.

Поле в документе Что хранит и в каком формате Пример
name Название клиента ООО “Примера”
contact_name Имя контакта по клиенту Иван Петрович
contact_phone Номер телефона клиента 375 29 29 273 26 96
contact_email Емейл клиента petrovich@primera.com
comment Комментарий к клиенту Давний клиент
customer_address Адрес клиента 223023, Москва, Набережная, 33, оф. 33

Информация о месте и времени выполнения заказа – orders_delivery

Поле в документе Что хранит и в каком формате Пример
address Адрес выполнения заказа 223023, Москва, Набережная, 33, оф. 33
contact_phone Номер телефона контакта по заказу 1349
contact_name Имя контакта по заказу 1350
delivery_time_from Время выполнения заказа в UNIX Time 1349015549
delivery_time_to Статус заказа в Ордерино в виде числа 1349015549
comment Комментарий к выполнению заказа Код на домофоне: 33
geo_lat Гео широта места выполнения заказа 44,22334
geo_lon Гео долгота места выполнения заказа 11,2323
contact_email Емейл контакта по заказу contact@orderino.by

Информация о составе заказа – orders_items

Представляет собой массив JSON элементов, каждый из которых состоит из:

Поле в документе Что хранит и в каком формате Пример
name Название товара или услуги Варочная поверхность BOSH 343234-34
amount Количество товара или услуги 1349
warranty Сроки гарантии, если есть 1350
comment Комментарий к позиции 1360
price Цена позиции для клиента 3
price_discount Скидка по позиции, в процентах 30
price_final Итоговая
price_income Входящая (Закупочная) цена позиции 1000
sku Артикул позиции в Ордерино. Если указано, то информация по цене, имени и другим параметрам будет взято из Ордерино

Информация о файлах и документах заказа – orders_files

Представляет собой массив JSON элементов, каждый из которых состоит из:

Поле в документе Что хранит и в каком формате Пример
name Название документа Договор с клиентом
comment Примечание к документу Внимание к первой секции
url Ссылка на документ, файл или страницу http://docs.google.com/view/docs/1
date_added Дата добавления файла 2014-04-03

Информация об дополнительных опциях заказа – orders_attributes

Представляет собой массив JSON элементов, каждый из которых состоит из:

Поле в документе Что хранит и в каком формате Пример
attribute_id ID атрибута в Ордерино. Узнать его можно на списке атрибутов заказа 1349
value Значение атрибута. Если атрибут в Ордерино имеет не строковый тип, то нужно передавать номер опции, которую можно узнать на вкладке опций атрибута.Если строковый – то строку 127 или “строка”

Пример JSON документа для создания нового заказа:

{
    "order": {
        "order_summary": "Summary"
    },
    "customer": {
        "contact_phone": "375292732696",
        "contact_name": "Alex"
    },
    "orders_delivery": {
        "address": "Streetname, 22"
    },
    "orders_items": [{
        "sku": "500sms",
        "amount": 1
    }, {
        "name": "Item Name",
        "amount": 1,
        "price": 100
    }],
    "orders_files": [{
        "comment": "File Name",
        "url": "http:\/\/google.com"
    }, {
        "comment": "Exhibit To Contract",
        "url": "http:\/\/google.com"
    }],
    "orders_attributes": [{
        "attribute_id": 222,
        "value": "2014-04-23"
    }, {
        "attribute_id": 223,
        "value": "3643123"
    }, {
        "attribute_id": 224,
        "value": "633"
    }]
}

Пример запроса на PHP:

<?php
        $url = 'https://orderino.com/api/company/COMPANY_ID/orders/add?id=ACCOUNT_ID&key=API_KEY';

        $order = array(
			'order' => array(
                'order_summary' => 'Комментарий к заказу',
			),
			'customer' => array(
                'contact_phone' => '375292732696',
                'contact_name' => 'Alex',
			),
			'orders_delivery' => array(
                'address' => 'Cухая, 22',
			),
			'orders_items' => array(
                array(
                    'sku' => '500sms',
                    'amount' => 1
                ),
                array(
                    'name' => 'Товар или услуга, которого нет в каталоге',
                    'amount' => 1,
                    'price' => 100,
                ),
			),
			'orders_files' => array(
                array(
                    'comment' => 'Договор с клиентом',
                    'url' => 'http://google.com'
                ),
                array(
                    'comment' => 'Доп соглашение',
                    'url' => 'http://google.com'
                )
			),
			'orders_attributes' => array(
                array(
                    'attribute_id' => 222,
                    'value' => '2014-04-23'
                ),
                array(
                    'attribute_id' => 223,
                    'value' => '3643123'
                ),
                array(
                    'attribute_id' => 224,
                    'value' => '633'
                ),
			)
		);
        $json = json_encode($order);

		$ch = curl_init($url);
		curl_setopt($ch, CURLOPT_POST, 1);
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
		curl_setopt($ch, CURLOPT_TIMEOUT, 5);
		curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($ch, CURLOPT_HTTPHEADER,
            array(
                'Content-Type: application/json',
                'Content-Length: ' . strlen($json)
            )
        );

		/* Ответ от сервера здесь */
		$response = curl_exec($ch);
		var_dump($response);

		curl_close($ch);
?>

Редактирование заказа

Чтобы отредктировать заказ в Ордерино, нужно отправить сформированный JSON документ POST запросом на адрес:

API_HOST/api/company/COMPANY_ID/orders/update?id=ACCOUNT_ID&key=API_KEY

Пример JSON документа для редактирования существующего заказа:

{
    "order": {
"order_id" : 123456, // Это ID заказа для обновения
        "order_summary": "Summary"
    },
    "customer": {
        "contact_phone": "375292732696",
        "contact_name": "Alex"
    },
    "orders_delivery": {
        "address": "Streetname, 22"
    },
    "orders_items": [{
        "sku": "500sms", //В заказ будет добавлена позиция в количестве 1 по артикулу 500sms из вашего каталога продукции/услуг
        "amount": 1
    }, {
        "id" : 54432, //Это ID позиции в заказе
        "name": "Item Name",
        "amount": 1,
        "price": 100,
"delete" : 1 //Укажите это поле, если хотите удалить позицию из заказа

    }],

}

Остались вопросы?

Пишите, поможем

Alex, CEO

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

Другие посетители считают интересным также

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>