Texenergo Api

Suggest Edits

Получить список заказов клиента

Возвращает список всех доступных заказов клиента. По-умолчанию возвращает последние 25 заказов.

 
gethttps://api.texenergo.com/v2/customer_orders
// Формируем запрос
uri = URI.parse("https://api.texenergo.com/v2/customer_orders")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

// Указываем заголовок с ключом API
request = Net::HTTP::Get.new(uri.request_uri, {Authorization: "Token 'Ваш ключ API'"})

// Делаем запрос
response = http.request(request)

// Преобразуем ответ во что-то рабочее
array = JSON.parse(response.body)

// Выводим результат
array.each do |customer_order|
  puts "Заказ номер #{customer_order["number"]} на сумму #{customer_order["total"]} сейчас в статусе #{customer_order["status"]}"
end
// Формируем запрос
var oReq = new XMLHttpRequest();
oReq.open("GET", "https://api.texenergo.com/v2/customer_orders");
oReq.setRequestHeader("Content-Type", "application/json");

// Указываем заголовок с ключом API
oReq.setRequestHeader("Authorization", ("Token " + "Ваш токен"));

// Делаем запрос
oReq.send();

// Кладём результат в переменную
var resp = JSON.parse(oReq.response);

// Выводим результат в консоль
if(resp.length==0){
  console.log("Нет ни одного заказа");
} else {
	var co = resp[0];
	console.log("Заказ клиента " + co.number + " на сумму " + co.total);
}
curl -H "Authorization: Token <Ваш токен>" https://api.texenergo.com/v2/customer_orders
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, 
    'https://api.texenergo.com/v2/customer_orders'
);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Token <Ваш токен>'));
$content = curl_exec($ch);
$json = json_decode($content);
foreach ($json as $value) {
    echo $value->number;
}
A binary file was returned

You couldn't be authenticated

[
  {
    "id":"58415f4fa8ca837f8dc325d9",
    "number":"16-кеа-4",
    "date":"2016-12-02T14:47:27.376+03:00",
    "total":46868.31,
    "can_edit":true,
    "can_destroy":false,
    "transportation":"Самовывоз",
    "status":"Не подтвержден",
    "title":"Очень бюджетный ",
    "partner":{
      "id":"56556fa5cdba23211f000a60",
      "name":"АТЕК"
    }
  }
]

Query Params

q
string

Фильтр по номеру заказа

page
int32

Номер страницы. Используется для пагинации.

 

Разбор ответа.

  • id - ИД заказа клиента у нас в базе
  • number - Номер заказа клиента для учёта
  • date - Дата актуальности заказа. Обычно это дата создания или последнего пересчёта.
  • total - Сумма заказ.
  • can_edit - Возможность редактирования заказа Вами.
  • can_destroy - Возможность удаления заказа Вами.
  • transportation - Выбран способ отгрузки.
  • status - Статус заказа.
  • title - Название заказа. Обычно это номер в Вашей системе учёта. Например, номер заказа поставщика в Вашей 1С.
  • partner - Объект с информацией о покупателе. Включает название (name) и ИД (id).
Suggest Edits

Просмотр заказа клиента

Показывает информацию по заказу клиента.

 
gethttps://api.texenergo.com/v2/customer_orders/customer_order_id
// Формируем запрос
uri = URI.parse("https://api.texenergo.com/v2/customer_orders/'ИД заказа клиента'")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

// Указываем заголовок с ключом API
request = Net::HTTP::Get.new(uri.request_uri, {Authorization: "Token 'Ваш ключ API'"})

// Делаем запрос
response = http.request(request)

// Преобразуем ответ во что-то рабочее
hash = JSON.parse(response.body)

// Выводим результат
puts "Заказ клиента номер #{hash["number"]} содержит следующие товары:"
hash["customer_order_contents"].each do |content|
  puts "Товар #{content["product"]["name"]} в количестве #{content["quantity"]} на сумму в рублях с учётом НДС #{content["price"] * content["quantity"]*(1-content["discount"]/100)}"
end
// Формируем запрос
var oReq = new XMLHttpRequest();
oReq.open("GET", "https://api.texenergo.com/v2/customer_orders/'ИД заказа'");
oReq.setRequestHeader("Content-Type", "application/json");

// Указываем заголовок с ключом API
oReq.setRequestHeader("Authorization", ("Token " + "Ваш токен"));

// Делаем запрос
oReq.send();

// Кладём результат в переменную
var resp = JSON.parse(oReq.response);

// Выводим результат в консоль
if(resp.length==0){
  console.log("Нет ни одного заказа");
} else {
	var co = resp[0];
	console.log("Заказ клиента " + co.number + " на сумму " + co.total);
}
console.log("Заказ клиента номер #{resp.number} содержит следующие товары:");
for (var i = 0; i < resp.customer_order_contents.length; i++) {
  var content = resp.customer_order_contents[i];
  console.log("Товар " + content.product.name + " в количестве " + content.quantity + " на сумму в рублях с учётом НДС " + content.price * content.quantity *(1-content.discount/100));
}
curl -H "Authorization: Token <Ваш токен>" https://api.texenergo.com/v2/customer_orders/<ИД заказа>
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, 
			'https://api.texenergo.com/v2/customer_orders/5852aafba8ca832b9956b936'
		   );
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Token 0AmiH90j9yxycDhV95JQLiZA9 '));
$content = curl_exec($ch);
$json = json_decode($content);
echo 'Заказ клиента номер'.$json->number." содержит следующие товары:\r\n";
foreach ($json->customer_order_contents as $content) {
	echo "Товар ".$content->product->name." в количистве ".$content->quantity." на сумму в рублях с учётом НДС ".($content->price * $content->quantity * (1 - $content->discount / 100))."\r\n";
}
A binary file was returned

You couldn't be authenticated

{
  "id":"584168afa8ca836d15039d3b",
  "title":"",
  "date":"2016-12-02T15:28:42.698+03:00",
  "number":"16-абв-1",
  "description":"Здравствуйте,\nнеобходимы цены на следующие выкдючатели:\nВыключатель нагрузки    ВН-103 20А 2п   шт.     53\nВыключатель нагрузки    ВА-103 6А 2п    шт.     6\nВыключатель нагрузки    ВА-103 4А 2п    шт.     6",
  "paid_amount":0,
  "dispatched_amount":0,
  "total":25966.02,
  "can_edit":true,
  "can_destroy":false,
  "can_confirm":false,
  "manager_name":"Поляков Василий",
  "status":"Не подтвержден",
  "partner":{
    "id":"58426871d8ca836d83039d2e",
    "name":"Газпром-Роснефть-Русал"
  },
  "issued_by":{
    "id":"524ef2e76c3f4fd8dc00029c",
    "name":"Texenergo"
  },
  "transportation_info":{
    "transportation":"Деловые Линии",
    "delivery_address":{
      "postal_index":"214031",
      "region":"Смоленская обл",
      "city":"Смоленск",
      "street":"ул Ленина",
      "house":"1"
    }
  },
  "customer_order_contents":[
    {
      "id":"58416921a8ca836d89039d5b",
      "price":311.41,
      "quantity":6,
      "discount":20,
      "product":{
        "id":"52a6dcb46c3f4f422501f3a4",
        "name":"Автоматический выключатель ВА-103 2п 6А 6кА хар-ка С",
        "article":"12070DEK"
      }
    }
  ]
}

Path Params

customer_order_id
string
required

ИД заказа клиента

 

Разбор ответа.

  • id - Уникальный ИД заказа клиента.
  • title - Ваш номер заказа.
  • date - Дата актуальности заказа. Это либо дата создания, либо дата последнего обновления цен и сроков поставки в заказе.
  • number - Номер заказа клиента для учёта
  • description - Описание заказа. Часто это развёрнутый комментарий или оригинал запроса.
  • paid_amount - Сумма полученных оплат по заказу в рублях.
  • dispatched_amount - Сумма отгрузок по заказу в рублях.
  • total - Сумма заказа в рублях.
  • can_edit - Возможность редактирования заказа Вами.
  • can_destroy - Возможность удаления заказа Вами.
  • manager_name - Имя ответственного менеджера.
  • status - Статус заказа. Например, "Не подтвержден", "Подтвержден" или "Закрыт".
  • partner - Объект с информацией о покупателе. Включает название (name) и ИД (id).
  • issued_by - Объект с информацией о продавце. Включает название (name) и ИД (id).
  • transportation - Объект с информацией об отгрузке. Включает выбранный способ отгрузки (transportation) типа "Самовывоз" или "Деловые Линии", и адрес доставки (delivery_address) в виде объекта с полями индекс (index), регион (region), город (city), улица (street), дом (house).
  • customer_order_contents - Массив с объектами, описывающими каждую стороку с товаром. То есть каждая строка заказа имеет уникальный ИД (id), цену без скидки в руб (price), количество товара (quantity), применяемую скидку (discount - всегда Integer), кеш товара в виде объекта с полями ИД товара (id), название (name) и артикул (article)
Suggest Edits

Просмотр неотгруженных товаров

Показывает информацию по заказу клиента.

 
gethttps://api.texenergo.com/v2/customer_orders/can_dispatch
// Формируем запрос
uri = URI.parse("https://api.texenergo.com/v2/customer_orders/can_dispatch")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

// Указываем заголовок с ключом API
request = Net::HTTP::Get.new(uri.request_uri, {Authorization: "Token 'Ваш ключ API'"})

// Делаем запрос
response = http.request(request)

// Преобразуем ответ во что-то рабочее
hash = JSON.parse(response.body)

// Выводим результат
puts "Заказ клиента номер #{hash["number"]} содержит следующие товары:"
hash.each do |content|
  puts "Товар #{content["product"]["name"]} в количестве #{content["quantity"]} по заказу #{content["number"]} сейчас #{content["dispatchable"] ? 'готов' : 'не готов'} к списанию."
end
// Формируем запрос
var oReq = new XMLHttpRequest();
oReq.open("GET", "https://api.texenergo.com/v2/customer_orders/can_dispatch");
oReq.setRequestHeader("Content-Type", "application/json");

// Указываем заголовок с ключом API
oReq.setRequestHeader("Authorization", ("Token " + "Ваш токен"));

// Делаем запрос
oReq.send();

// Кладём результат в переменную
var resp = JSON.parse(oReq.response);

console.log("К списанию готовы:");
for (var i = 0; i < resp.customer_order_contents.length; i++) {
  var content = resp.customer_order_contents[i];
  if(!content.dispatchable) continue;
  console.log("Товар " + content.product.name + " по заказу " + content.number + " готов в списанию в количестве " + (content.remains_to_dispatch > content.stock ? content.stock : content.remains_to_dispatch) + " ед.");
}
curl -H "Authorization: Token <Ваш токен>" https://api.texenergo.com/v2/customer_orders/can_dispatch
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, 
			'https://api.texenergo.com/v2/customer_orders/can_dispatch'
		   );
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Token 0AmiH90j9yxycDhV95JQLiZA9 '));
$content = curl_exec($ch);
$json = json_decode($content);
echo 'Заказ клиента номер'.$json->number." содержит следующие товары:\r\n";
foreach ($json->customer_order_contents as $content) {
	echo "Товар ".$content->product->name." в количистве ".$content->quantity." на сумму в рублях с учётом НДС ".($content->price * $content->quantity * (1 - $content->discount / 100))."\r\n";
}
A binary file was returned

You couldn't be authenticated

[
  {
    "customer_order_id":"587e1f70a8ca82084ad82fad",
    "number":"17-абв-1",
    "date":"2017-01-01T07:09:49.386Z",
    "title":"",
    "transportation":"Самовывоз",
    "partner":{
      "id":"5289cf4d653c4afb75e0402d",
      "name":"ГазНефтеЗолотоПромДеньги Групп"
    },
    "delivery_address":{
      "street":"",
      "postal_index":"",
      "region":"",
      "city":"",
      "house":""
    },
    "customer_order_content_id":"587e1f94a8ca83085ad82fba",
    "product":{
      "id":"52a6d9816c3f4f422500075a",
      "name":"Выключатель конечный ВК 200 БР-11-67У2",
      "article":"VK200"
    },
    "quantity":10,
    "remains_to_dispatch":10,
    "stock":0.0,
    "dispatchable":false,
    "reason":"Нет услуги отгрузки частями",
    "automatically_dispatchable":true
  }
]
 

Разбор ответа. Возвращается массив. Мы рассмотрим каждую запись в массиве, которая по сути является строкой в заказе клиента.

  • customer_order_id - Уникальный ИД заказа клиента.
  • number - Номер заказа клиента для учёта
  • title - Ваш номер заказа.
  • date - Дата актуальности заказа. Это либо дата создания, либо дата последнего обновления цен и сроков поставки в заказе.
  • transportation - Объект с информацией об отгрузке. Включает выбранный способ отгрузки (transportation) типа "Самовывоз" или "Деловые Линии", и адрес доставки (delivery_address) в виде объекта с полями индекс (index), регион (region), город (city), улица (street), дом (house).
  • partner - Объект с информацией о покупателе. Включает название (name) и ИД (id).
  • customer_order_content_id - Уникальный ИД строки в заказе клиента.
  • quantity - Количество товара в строке.
  • remains_to_dispatch - Количество ещё не отгруженного товара.
  • stock - Доступный складской остаток.
  • dispatchable - Флаг означающий возможность добавки в реализацию.
  • reason - Человеческое описание причины невозможности добавки в реализацию.
  • automatically_dispatchable - Указывает будет ли строка списываться роботом автоматически.
Suggest Edits

Добавление товара в заказ клиента

Описывает как добавить товар в заказ клиента

 
posthttps://api.texenergo.com/v2/customer_orders/customer_order_id/customer_order_contents
// Формируем запрос
uri = URI.parse("https://api.texenergo.com/v2/customer_orders/#{id зааказа}/customer_order_contents")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

// Указываем заголовок с ключом API
request = Net::HTTP::Get.new(uri.request_uri, {Authorization: "Token 'Ваш ключ API'"})

// Делаем запрос
response = http.request(request)

// Преобразуем ответ во что-то рабочее
hash = JSON.parse(response.body)

// Выводим результат
puts "Заказ клиента номер #{hash["number"]} содержит следующие товары:"
hash.each do |content|
  puts "Товар #{content["product"]["name"]} в количестве #{content["quantity"]} по заказу #{content["number"]} сейчас #{content["dispatchable"] ? 'готов' : 'не готов'} к списанию."
end
// Формируем запрос
var oReq = new XMLHttpRequest();
oReq.open("GET", "https://api.texenergo.com/v2/customer_orders/can_dispatch");
oReq.setRequestHeader("Content-Type", "application/json");

// Указываем заголовок с ключом API
oReq.setRequestHeader("Authorization", ("Token " + "Ваш токен"));

// Делаем запрос
oReq.send();

// Кладём результат в переменную
var resp = JSON.parse(oReq.response);

console.log("К списанию готовы:");
for (var i = 0; i < resp.customer_order_contents.length; i++) {
  var content = resp.customer_order_contents[i];
  if(!content.dispatchable) continue;
  console.log("Товар " + content.product.name + " по заказу " + content.number + " готов в списанию в количестве " + (content.remains_to_dispatch > content.stock ? content.stock : content.remains_to_dispatch) + " ед.");
}
curl -H "Authorization: Token <Ваш токен>" https://api.texenergo.com/v2/customer_orders/can_dispatch
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, 
			'https://api.texenergo.com/v2/customer_orders/can_dispatch'
		   );
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Token 0AmiH90j9yxycDhV95JQLiZA9 '));
$content = curl_exec($ch);
$json = json_decode($content);
echo 'Заказ клиента номер'.$json->number." содержит следующие товары:\r\n";
foreach ($json->customer_order_contents as $content) {
	echo "Товар ".$content->product->name." в количистве ".$content->quantity." на сумму в рублях с учётом НДС ".($content->price * $content->quantity * (1 - $content->discount / 100))."\r\n";
}
A binary file was returned

You couldn't be authenticated

[
  {
    "id": "59b7e62f43b42abec902e3eb",
    "price": 1668.37,
    "quantity": 1,
    "discount": 0,
    "delivery_terms": {
      "stock": 35
    },
    "discount_description": "Добавлен сотрудником Texenergo: -5%\nСумма заказа меньше 9 тыс руб: -5%\nВсего один товар в заказе: -5%\nТовар в наличии: -0%",
    "messages": [
      {
        "level": "warning",
        "text": "Заменить на A9K24332. Дешевле на 449.83 р.",
        "resolution": ""
      }
    ],
    "product": {
      "id": "52a6d9766c3f4f4225000103",
      "name": "Автоматический выключатель iC60N 3П 32A C",
      "article": "A9F79332"
    },
    "can_edit": true,
    "can_destroy": true,
    "upsale": []
  }
]

Path Params

customer_order_id
string
required

ИД заказа клиента

Form Data

product_id
string
required

ИД товара для добавления

quantity
int32

Количество товара для добавления

query_original
string

Оригинал поискового запроса по которому был подобран данный product_id. Используется для статистики и отслеживания процесса формирования заказов.

 

Разбор ответа. Возвращается массив. Обычно это в массиве всего одна запись. Рассмотрим её

  • id - Уникальный ИД строки в заказе.
  • price - Цена за 1 ед товара в рублях, вкл НДС, но без учёта скидки.
  • quantity - Количество товара в строке.
  • discount - Размер скидки. Всегда целое число.
  • delivery_terms - Описывает обещанные сроки поставки. Может содержать поле stock с количеством товара в наличии. Может содержать поле promised_date с обещанным сроков поставки в виде String.
  • discount_description - (String) Описывает почему скидка была скорректирована.
  • messages - массив предлагаемых изменений. Например, замена на более дешёвый аналог. Каждое предлагаемое изменений представлено в виде объекта, где поле 'level' означает критичность и 'text' описывает человеческим языком. Другие поля не рассматриваем.
  • product - стандартный объект с кратким описанием товара.
  • can_edit - указывает на возможность внесения изменений в строку.
  • can_destroy - указывает на возможность удаления строки.
  • upsale - массив с товарами в стиле "с этим товаром обычно покупают". Каждый товар представлен в виде объекта с полем 'text', которое описывает человеческим языком, и полем 'product', которое кратко описывает товар, но имеет доп поля 'price' и 'stock'
Suggest Edits

Удаление товара из заказа клиента

Описывает процесс удаления товара из заказа клиента

 
deletehttps://api.texenergo.com/v2/customer_orders/customer_order_id/customer_order_contents/content_id
curl --request DELETE \
  --url https://api.texenergo.com/v2/customer_orders/customer_order_id/customer_order_contents/content_id
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://api.texenergo.com/v2/customer_orders/customer_order_id/customer_order_contents/content_id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.texenergo.com/v2/customer_orders/customer_order_id/customer_order_contents/content_id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://api.texenergo.com/v2/customer_orders/customer_order_id/customer_order_contents/content_id");

xhr.send(data);
import requests

url = "https://api.texenergo.com/v2/customer_orders/customer_order_id/customer_order_contents/content_id"

response = requests.request("DELETE", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

customer_order_id
string
required

ИД заказа клиента

content_id
string
required

ИД строки в заказе клиента

 

В случае успеха сервер отвечает 204-м кодом.

Suggest Edits

Изменение статуса заказ клиента

Позволяет переключать заказ клиента по статусам

 
puthttps://api.texenergo.com/v2/customer_orders/customer_order_id/update_status
curl --request PUT \
  --url https://api.texenergo.com/v2/customer_orders/customer_order_id/update_status
var request = require("request");

var options = { method: 'PUT',
  url: 'https://api.texenergo.com/v2/customer_orders/customer_order_id/update_status' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.texenergo.com/v2/customer_orders/customer_order_id/update_status")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://api.texenergo.com/v2/customer_orders/customer_order_id/update_status");

xhr.send(data);
import requests

url = "https://api.texenergo.com/v2/customer_orders/customer_order_id/update_status"

response = requests.request("PUT", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "id":"584168afa8ca836d15039d3b",
  "title": "",
  "date":"2016-12-02T15:28:42.698+03:00",
  "number":"16-абв-1",
  "description":"Здравствуйте,\nнеобходимы цены на следующие выкдючатели:\nВыключатель нагрузки    ВН-103 20А 2п   шт.     53\nВыключатель нагрузки    ВА-103 6А 2п    шт.     6\nВыключатель нагрузки    ВА-103 4А 2п    шт.     6",
  "paid_amount":0,
  "dispatched_amount":0,
  "total":25966.02,
  "can_edit":true,
  "can_destroy":false,
  "can_confirm":false,
  "manager_name":"Поляков Василий",
  "status":"Не подтвержден",
  "partner":{
    "id":"58426871d8ca836d83039d2e",
    "name":"Газпром-Роснефть-Русал"
  },
  "issued_by":{
    "id":"524ef2e76c3f4fd8dc00029c",
    "name":"Texenergo"
  },
  "transportation_info":{
    "transportation":"Деловые Линии",
    "delivery_address":{
      "postal_index":"214031",
      "region":"Смоленская обл",
      "city":"Смоленск",
      "street":"ул Ленина",
      "house":"1"
    }
  },
  "customer_order_contents":[
    {
      "id":"58416921a8ca836d89039d5b",
      "price":311.41,
      "quantity":6,
      "discount":20,
      "product":{
        "id":"52a6dcb46c3f4f422501f3a4",
        "name":"Автоматический выключатель ВА-103 2п 6А 6кА хар-ка С",
        "article":"12070DEK"
      }
    }
  ]
}
{
  "errors" : "Unknown event"
}

Path Params

customer_order_id
string
required

Уникальный ID заказа клиента

Form Data

event
string

Название на желаемого события на английском (доступные возвращает сервер при просмотре заказа). Должен лежать внутри объекта customer_order. Например, { "customer_order" : { "event" : "confirm" }}

 

В случае успеха сервер отвечает аналогично ответу на просмотр заказа клиента.

Suggest Edits

Обновление сторки в заказе клиента

Позволяет производить базовые операции с строками (товарами) в заказе клиента как изменение количества или скидки.

 
puthttps://api.texenergo.com/v2/customer_orders/customer_order_id/customer_order_contents/row_id
curl --request PUT \
  --url https://api.texenergo.com/v2/customer_orders/customer_order_id/customer_order_contents/row_id
var request = require("request");

var options = { method: 'PUT',
  url: 'https://api.texenergo.com/v2/customer_orders/customer_order_id/customer_order_contents/row_id' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://api.texenergo.com/v2/customer_orders/customer_order_id/customer_order_contents/row_id")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://api.texenergo.com/v2/customer_orders/customer_order_id/customer_order_contents/row_id");

xhr.send(data);
import requests

url = "https://api.texenergo.com/v2/customer_orders/customer_order_id/customer_order_contents/row_id"

response = requests.request("PUT", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

[
  {
    "id": "59de08490b75722db0b56df3",
    "price": 1884.6,
    "quantity": 2,
    "discount": 0,
    "delivery_terms": {
      "stock": 21
    },
    "discount_description": "Сумма заказа меньше 9 тыс руб: -5%\nВсего один товар в заказе: -5%",
    "messages": [],
    "product": {
      "id": "52a6da166c3f4f42250068fd",
      "name": "Ящик с трансформатором ЯТП- ОСО 0,25 220/24 В (3 автомата) IP54",
      "article": "ST2-25M0243"
    },
    "can_edit": true,
    "can_destroy": true,
    "upsale": []
  }
]

Path Params

customer_order_id
string
required

Уникальный ID заказа клиента

row_id
string
required

Уникальный ID строки заказа клиента

Form Data

quantity
int32

Новое количество товара. Должен лежать внутри объекта customer_order. Например, { "customer_order" : { "quantity" : "1" }}

discount
int32

Новое значение скидки в строке товара. Должен лежать внутри объекта customer_order. Например, { "customer_order" : { "discount" : "5" }}

 

В случае успеха сервер отвечает стандартным описание строки как при просмотре заказа клиента.

Suggest Edits

Поиск товаров

 
gethttps://api.texenergo.com/v2/products/search
curl -H "Authorization: Token <Ваш токен>" https://api.texenergo.com/v2/products/search?q=a9f
A binary file was returned

You couldn't be authenticated

Try the API to see results

Query Params

q
string
required

Поисковый запрос

$skip
int32

Количество пропускаемых результатов. Можно использовать для пагинации.

$top
int32

Количество возвращаемых товаров, но не более 50.

 

Возвращает массив результатов в виде объектов, где каждый объект описывается:

  • article - (String) артикул если есть.
  • can_destroy - (Boolean) описывает возможность удаления товара
  • id - Уникальный ИД товара
  • image_url - Ссылка на картинку товара если есть.
  • manufacturer - (String) Название производителя
  • name - Название товара
  • obsolete - (Boolean или null) Выставляется если товар снят с производства
  • price - Цена товара в руб, вкл. НДС, но без скидки
  • price_obsolete - (Boolean) Указывает на неактуальность цены
  • stock - (Integer) Количество товара в наличие
  • stock_assemblable - (Integer или null) Количество товара, которое можем собрать.
Suggest Edits

Просмотр карточки товара

Данный метод позволяет просмотреть всю основную информацию по товару и список Ваших документов в которых данный товар присутствует.

 
gethttps://api.texenergo.com/v2/products/id
# Задаем переменную. Например, это ИД для товара с артикулом A9F79116
product_id = "52a6d9756c3f4f422500003b"

# Формируем запрос
uri = URI.parse("https://api.texenergo.com/v2/products/#{product_id}")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

# Указываем заголовок с ключом API
request = Net::HTTP::Get.new(uri.request_uri, {Authorization: "Token 'Ваш токен'"})

# Делаем запрос
response = http.request(request)

# Преобразуем ответ во что-то рабочее
hash = JSON.parse(response.body)

# Выводим результат
puts "Товар #{hash["name"]} с артикулом #{hash["article"] || "---"} стоит #{hash["price"]} и на складе #{hash["stock"]}"
// Задаем переменную.  Например, это ИД для товара с артикулом A9F79116
var product_id = "52a6d9756c3f4f422500003b";

// Формируем запрос
var oReq = new XMLHttpRequest();
oReq.open("GET", "https://api.texenergo.com/v2/products/" + product_id);
oReq.setRequestHeader("Content-Type", "application/json");

// Указываем заголовок с ключом API
oReq.setRequestHeader("Authorization", ("Token " + "Ваш токен"));

// Делаем запрос
oReq.send();

// Кладём результат в переменную
var resp = JSON.parse(oReq.response);

// Выводим результат в консоль
console.log("Товар " + resp.name + " с артикулом " + (resp.article || "---") + " стоит " + resp.price + " и на складе " + resp.stock);
curl -H "Authorization: Token <Ваш токен>" https://api.texenergo.com/v2/products/<ИД товара>
A binary file was returned

You couldn't be authenticated

{
  "description":"Модульные автоматические и так далее",
  "price":322.34,
  "image_url":"http://cdn.texenergo.com/products/52a6d9756c3f4f422500003b/image/original.jpg",
  "name":"Автоматический выключатель iC60N 1п 16A C",
  "article":"A9F79116",
  "stock":4,
  "can_edit":false,
  "obsolete":{"flag":false},
  "manufacturer":{
    "name":"Schneider Electric",
    "id":"548ec8ef7365725e954e0300"
  },
  "customer_orders":[],
  "product_orders":[],
  "supplier_infos":[
    {
      "supplier_code":"mpo",
      "price":394.87,
      "quantity":193,
      "lead_time":null,
      "foreign_code":"К8409",
      "currency":"RUR"
    }
  ],
  "stock_assemblable":1
}

Path Params

id
string
required

Код товара

Headers

Authorization
string
required

Где 123 замените Вашим ключом интеграции

 

Разбор ответа.

  • description - Описание товара для каталога
  • price - Текущая рекомендованная цена перепродажи. Включает НДС, не учитывает Ваших скидок.
  • image_url - Пути к файлу с картинкой товара. Если есть, иначе null.
  • name - Название товара.
  • article - Артикул товара. Если есть, иначе null.
  • stock - Наличие на складе.
  • can_edit - Возможность редактирования товара Вами.
  • obsolete - Объект с информацией о снятии с производства. Подробно не рассматривается.
  • manufacturer - Объект с информацией о производителе. Включает название (name) и ИД (id).
  • customer_orders - Список/массив Ваших заказов клиента, где есть данный товар. Подробно не рассматривается.
  • product_orders - Список/массив Ваших движений, где есть данный товар. Подробно не рассматривается.
  • supplier_infos - Информация по товару у партнёров. Включает код партнёра (supplier_code), цена если достуна (price), остаток на складе (quantity), обещанный срок поставки (lead_time), код в базе партнёра (foreign_code), валюта цены (RUR).
  • stock_assemblable - (Необязательное поле) Означает количество товара, которое можно собрать из других комплектующих.
  • components - (Необязательное поле) Массив с товарами из которых можно собрать текущий товар. Содержит поле quantity - необходимое количество товара для сборки 1 единицы текущего товара. Содержит поле product - с описанием товара.
Suggest Edits

Информация из Шнейдер

Доступно только для товаров производства Schneider Electric. Совершает запрос в MySE для получения логистической и ценовой информации в реальном времени.

 
gethttps://api.texenergo.com/v2/products/:id/lead_time
# Задаем переменную. Например, это ИД для товара с артикулом A9F79116
product_id = "52a6d9756c3f4f422500003b"
q = 5

# Формируем запрос
uri = URI.parse("https://api.texenergo.com/v2/products/#{product_id}?quantity=#{q}")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

# Указываем заголовок с ключом API
request = Net::HTTP::Get.new(uri.request_uri, {Authorization: "Token 'Ваш токен'"})

# Делаем запрос
response = http.request(request)

# Преобразуем ответ во что-то рабочее
hash = JSON.parse(response.body)

# Выводим результат
puts "Товар #{hash["name"]} с артикулом #{hash["article"] || "---"} стоит #{hash["price"]} и на складе #{hash["stock"]}"
// Задаем переменную.  Например, это ИД для товара с артикулом A9F79116
var product_id = "52a6d9756c3f4f422500003b";
var q = 5;

// Формируем запрос
var oReq = new XMLHttpRequest();
oReq.open("GET", "https://api.texenergo.com/v2/products/" + product_id + "/lead_time?quantity=" + q);
oReq.setRequestHeader("Content-Type", "application/json");

// Указываем заголовок с ключом API
oReq.setRequestHeader("Authorization", ("Token " + "Ваш токен"));

// Делаем запрос
oReq.send();

// Кладём результат в переменную
var resp = JSON.parse(oReq.response);

// Выводим результат в консоль
console.log("Шнейдер обещает привезти " + q + " ед. к " + resp.lead_time_info.delivery_date + ". Наша закупка составит " + resp.lead_time_info.cost + " руб, вкл. НДС");
A binary file was returned

You couldn't be authenticated

{
 "product":
	{
		"id":"52a6d9756c3f4f422500003b",
    "name":"Автоматический выключатель iC60N 1п 16A C",
    "article":"A9F79116"
  },
 "lead_time_info":
  {
    "cost":225.64,
    "delivery_date":"2016-12-20",
    "discount":53.001,
    "price_tarif":"406.86 RUB",
    "quantity_min":12,
    "schneider_stock":7149,
    "obsolete":false
  }
}

Path Params

:id
string
required

ИД товара

Query Params

quantity
int32
required

Количество для которого требуется получить информацию

username
string

Используйте свои данные для авторизации в MySE

password
string

Используйте свои данные для авторизации в MySE

 

Разбор информации из MySE.

В случае успеха, ответ состоит следующих элементов:

{"product":{"id":"...","name":"...","article":"..."}}

Данное поле описывает информацию по товару из базы данных Texenergo. Мы понимаем что "должно работать", но в интернете всегда что-то может пойти не так. Поэтому данную информацию можете использовать для сверки с информацией с Вашей стороны.

{"lead_time_info":{"cost":1.0,"delivery_date":"2016-12-20","discount":53.0,"price_tarif":"1 RUB","quantity_min":1,"schneider_stock":1,"obsolete":false}}}

Здесь содержится основная информацию, которая была получена из MySE:

  • cost - наша закупка в рублях, с учётом НДС.
  • delivery_date - обещанная дата поставки для указанного в запросе количества. Эта дата поставки на наш склад.
  • discount - наша скидка от тарифа Schneider Electric для запрашиваемого артикула
  • price_tarif - текущая цена в тарифе Schneider Electric
  • quantity_min - минимальное количество для заказ. Округляется Шнейдером вверх до ближайшей упаковки.
  • schneider_stock - текущий остаток на складе Schneider Electric
  • obsolete - флаг снятия с производства.

Кеширование

Во избежании лишней нагрузки на сервера Schneider Electric, все ответы кешируются на 3 часа. Поэтому, первый запрос занимает чуть больше, чем последующие.
Кеширование учитывает запрошенное количество. Например, если в кеше есть значение для 1 шт, а Вам надо 2 шт, то будет сделан запрос в MySE.

Информация о снятии с производства

Мы заметили что иногда Шнейдер Электрик двусмысленно отвечает о снятии товара с производства:
Вариант 1. Товар снят с производства и другой информации нет.
Вариант 2. Товар снят с производства с указанной заменой. В это случае логистическая информация предоставляется для замены!
Вариант 3. Есть проблемы с доступностью информации на стороне MySE. В этом случае они отвечают "лучшей доступной информацией", но на всякий случай ставят данный флаг.

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

Если у Вас есть свой доступ в MySE, то Вы можете получать данный из-под своего пользователя. Для этого можете в своём профиле выставить имя и пароль для программного доступа в MySE. Если же Вы не хотите хранить имя и пароль в нашей БД, то можете их динамично выставлять с помощью соответствующих параметров.

Suggest Edits

Получить список реализаций

Возвращает список всех доступных реализация клиента. По-умолчанию возвращает последние 25 реализаций.

 
gethttps://api.texenergo.com/v2/dispatch_orders
// Формируем запрос
uri = URI.parse("https://api.texenergo.com/v2/dispatch_orders")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true

// Указываем заголовок с ключом API
request = Net::HTTP::Get.new(uri.request_uri, {Authorization: "Token 'Ваш ключ API'"})

// Делаем запрос
response = http.request(request)

// Преобразуем ответ во что-то рабочее
array = JSON.parse(response.body)

// Выводим результат
array.each do |dispatch|
  puts "Заказ номер #{dispatch_order["number"]} на сумму #{dispatch_order["total"]} сейчас в статусе #{dispatch_order["status"]}"
end
// Формируем запрос
var oReq = new XMLHttpRequest();
oReq.open("GET", "https://api.texenergo.com/v2/dispatch_orders");
oReq.setRequestHeader("Content-Type", "application/json");

// Указываем заголовок с ключом API
oReq.setRequestHeader("Authorization", ("Token " + "Ваш токен"));

// Делаем запрос
oReq.send();

// Кладём результат в переменную
var resp = JSON.parse(oReq.response);

// Выводим результат в консоль
if(resp.length==0){
  console.log("Нет ни одной реализации");
} else {
	var co = resp[0];
	console.log("Реализация клиента " + co.number + " на сумму " + co.total);
}
curl -H "Authorization: Token <Ваш токен>" https://api.texenergo.com/v2/dispatch_orders
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, 
    'https://api.texenergo.com/v2/dispatch_orders'
);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Token <Ваш токен>'));
$content = curl_exec($ch);
$json = json_decode($content);
foreach ($json as $value) {
    echo $value->number;
}
A binary file was returned

You couldn't be authenticated

[
  {
    "id": "59b19eef9379b267a4c4cfa0",
    "number": "р-17-абв-1",
    "date": "2017-09-07T19:33:03.822Z",
    "transportation": {
      "value": "FCA Чёрная Грязь (ТК Деловые Линии)"
    },
    "total": 1668.64,
    "status": "Ожидает отгрузки",
    "can_edit": false,
    "can_destroy": false,
    "delivery_address": null,
    "partner": {
      "id": "59ae94389179b264501050cb",
      "name": "Наименование контрагента"
    }
  }
]

Query Params

q
string

Фильтр по номеру реализации

page
int32

Номер страницы. Используется для пагинации.

status
string

Необязательный параметр. Если равен "incomplete", то возвращаются только невыполненные реализации.

 

Разбор ответа.

  • id - ИД реализации у нас в базе
  • number - Номер реализации для целей учёта
  • date - Дата формирования реализации для бухгалтерского учёта.
  • transportation - Выбран способ отгрузки в виде объекта со вложенным значением "value".
  • total - Сумма реализации в руб, вкл НДС.
  • status - Статус реализации.
  • can_edit - Возможность редактирования реализации Вами.
  • can_destroy - Возможность удаления реализации Вами.
  • delivery_address - Необязательное поле. Может быть в форме объекта с описанием адреса доставки.
  • partner - Объект с информацией о покупателе. Включает название (name) и ИД (id).
Suggest Edits

Термоусаживаемая трубка

Данная точка позволяет автоматический подбор ТУТ по различным параметрам

 
gethttps://api.texenergo.com/v2/functors/thermo_tube
curl -H "Authorization: Token <Ваш токен>" "https://api.texenergo.com/v2/functors/thermo_tube?cross_section=11&color=Красный"
A binary file was returned

You couldn't be authenticated

[
  {
    "id": "52a6d98d6c3f4f4225000fb4",
    "article": "tut-6-r", 
    "manufacturer" : "EKF",
    "name": "Термоусаживаемая трубка ТУТ 6/3 красная EKF"
  }
]

Query Params

cross_section
int32
required

Сечение в мм2 проводника - шины или провода. Во втором случае учитывайте, что у провода может быть изоляция, броня и тп, что увеличивает сечение.

color
string

Желаемый цвет словом. Например, "Синий", "Желто-зеленый", "PEN" и т.д.

manufacturer
string

Название производителя текстом. Например, "Texenergo" или "ТДМ". Если поле не заполнено, то не фильтрует по производителю.

 

В случае успешного подбора система отвечает массивом товаров с указанием ID товара в нашей базе, артикула производителя, названия производителя и названия товара.