В основном для самописных интернет-магазинов.
Для настройки API 1.0, нужно:
1. Сгенерировать ключ доступа
2. Дать доступ к объектам сервиса
Для этого зайдите: Верхнее меню – Сервис – API 1.0
И установите переключатели для тех объектов, для которых Вы хотели бы совершать Экспорт/Импорт. Заметим, что для справочника «Товары», есть под-пункты (полное наименование, описание, …), если Вы их не используете, то снимите с них галочки, иначе выгрузка может занять продолжительное время.
Данные Вы будете получать в JSON-формате.
1. Справочник «Товары».
Для получения данных из справочника «Товары», Вам нужно сформировать запрос сервису в таком формате:
http://sklad.uchetoblako.ru/API/Api10.ashx?Key=XXX&pID=ExportDirNomen&DirNomenGroup=78
параметры:
Key – Код идентификации
pID – Тип Экспортируемого объекта, в данном случае «Товар» (ExportDirNomen)
DirNomenGroup – Группа товара, если нужно выгружать данные по Группам. Можно указывать и номер группы и наименование группы. Номер группы можно получить при редактировании группы:
Мы рекомендуем использовать именно номер группы, а не наименование. Если, нужно экспортировать весь справочник, то этот параметр вообще не указываете.
Данные Вы получите в таком формате:
{'sucess':true, 'total':363, 'ExportDirNomen': [
{
"DirNomenID":"2",
"DirNomenGroupID":"1",
"DirNomenGroupName":"Група-1",
"DirNomenName":"Товар-1",
"DirNomenNameFull":"Товар-1":"1",
"DirUnitMeasureName":"шт",
"DirNomenArticle":"123456",
"DirNomenManufacturer":"",
"DirNomenManufacturerCode":"",
"DirCountryName":"",
"DirNomenNumberCustomsDeclaration":"",
"DirNomenMinimumBalance":"3",
"DirNomenDisc":"",
"DirNomenDiscFull":"",
"DirNomenInventoryNumber":"",
"DirVatName":"0%",
"DirCurrencyName":"Российский рубль",
"PriceVAT":"67.6",
"PriceRetailVAT":"95",
"PriceWholesaleVAT":"92.18",
"ImageLink":""
},
{
"DirNomenID":"3",
"DirNomenGroupID":"1",
"DirNomenGroupName":"Група-1",
"DirNomenName":"Товар-2",
"DirNomenNameFull":"Товар-2",
"DirUnitMeasureID":"1",
"DirUnitMeasureName":"шт",
"DirNomenArticle":"45678",
"DirNomenTypeID":"1",
"DirNomenManufacturer":"",
"DirNomenManufacturerCode":"",
"DirCountryName":"",
"DirNomenNumberCustomsDeclaration":"",
"DirNomenMinimumBalance":"1",
"DirNomenDisc":"",
"DirNomenDiscFull":"",
"DirNomenInventoryNumber":"",
"DirVatName":"0%",
"DirCurrencyName":"Российский рубль ",
"PriceVAT":"69.75",
"PriceRetailVAT":"97",
"PriceWholesaleVAT":"95.11",
"ImageLink":""
}
]}
В примере всего 2-а товара, с кодами: DirNomenID=2 и DirNomenID=3
Программный код на языке программирования .NET C# будет выглядеть так:
//Строка соединения
string URI = "http://sklad.uchetoblako.ru/API/Api10.ashx";
//Параметры
string myParameters = "Key=XXX&pID=ExportDirNomen&DirNomenGroup=1";
using (WebClient wc = new WebClient())
{
wc.Encoding = System.Text.Encoding.UTF8;
wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
Label1.Text = wc.UploadString(URI, myParameters);
}
2. Справочник «Контрагенты».
Запрос:
http://sklad.uchetoblako.ru /API/Api10.ashx?Key= XXX
&pID=ExportDirContractor&DirContractoGroup=3
параметры:
Key – Код идентификации
pID – Тип Экспортируемого объекта, в данном случае «Контрагенты» (ExportDirContractor)
ExportDirContractor – Группа контрагента, если нужно выгружать данные по Группам. Можно указывать и номер группы и наименование группы. Номер группы можно получить при редактировании группы, аналогично, как с Товаром. Мы рекомендуем использовать именно номер группы, а не наименование. Если, нужно экспортировать весь справочник, то этот параметр вообще не указываете.
Данные Вы получите в таком формате:
{'sucess':true, 'total':2, 'ExportDirContractor': [
{
"DirContractorID":"1",
"DirContractorGroupID":"1",
"DirContractorGroupName":"Поставщики",
"DirContractorTypeID":"2",
"DirContractorTypeName":"Физическое лицо",
"DirContractor2TypeID":"2",
"DirContractor2TypeName":"Поставщик",
"DirContractorName":"Контрагент-1",
"DirContractorAddress":"",
"DirContractorPhone":"123456789",
"DirContractorFax":"",
"DirContractorEmail":"",
"DirContractorWWW":"",
"DirContractorDiscount":"0",
"DirVatName":"0%",
"DirVatValue":"0",
"DirContractorLegalName":"Контрагент-1",
"DirContractorLegalAddress":"",
"DirContractorLegalTIN":"",
"DirContractorLegalRNNBO":"",
"DirContractorLegalCAT":"",
"DirContractorLegalBIN":"",
"DirContractorLegalOGRNIP":"",
"DirContractorLegalCertificateNumber":"",
"DirContractorLegalCertificateDate":"2016-04-01 00:00:00",
"DirContractorLegalPasSeries":"",
"DirContractorLegalPasNumber":"",
"DirContractorLegalPasCode":"",
"DirContractorLegalPasIssued":"",
"DirContractorLegalPasDate":"1992-01-01 00:00:00",
"DirContractorDesc":"",
"ImageLink":""
},
{
"DirContractorID":"2",
"DirContractorGroupID":"1",
"DirContractorGroupName":"Поставщики",
"DirContractorTypeID":"2",
"DirContractorTypeName":"Физическое лицо ",
"DirContractor2TypeID":"2",
"DirContractor2TypeName":"Поставщик",
"DirContractorName":" Контрагент-1",
"DirContractorAddress":"",
"DirContractorPhone":"",
"DirContractorFax":"",
"DirContractorEmail":"",
"DirContractorWWW":"",
"DirContractorDiscount":"0",
"DirVatName":"0%",
"DirVatValue":"0",
"DirContractorLegalName":" Контрагент-1",
"DirContractorLegalAddress":"",
"DirContractorLegalTIN":"",
"DirContractorLegalRNNBO":"",
"DirContractorLegalCAT":"",
"DirContractorLegalBIN":"",
"DirContractorLegalOGRNIP":"",
"DirContractorLegalCertificateNumber":"",
"DirContractorLegalCertificateDate":"2016-04-01 00:00:00",
"DirContractorLegalPasSeries":"",
"DirContractorLegalPasNumber":"",
"DirContractorLegalPasCode":"",
"DirContractorLegalPasIssued":"",
"DirContractorLegalPasDate":"1999-01-01 00:00:00",
"DirContractorDesc":"",
"ImageLink":""
}
]}
В примере всего 2-а контрагента, с кодами: DirContractorID =1 и DirContractorID =2
Программный код на языке программирования .NET C# будет выглядеть так:
//Строка соединения
string URI = "http://sklad.uchetoblako.ru/API/Api10.ashx";
//Параметры
string myParameters = "Key=XXX&pID=ExportDirContractor&DirContractoGroup=4";
using (WebClient wc = new WebClient())
{
wc.Encoding = System.Text.Encoding.UTF8;
wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
Label1.Text = wc.UploadString(URI, myParameters);
}
3. Справочник «Остатки».
Запрос:
http://sklad.uchetoblako.ru /API/Api10.ashx?Key= XXX&pID=ExportRemnants&DirWarehouse=1
параметры:
Key – Код идентификации
pID – Тип Экспортируемого объекта, в данном случае «Остатки» (ExportRemnants)
DirWarehouse – Склад, обязательный параметр и указывать нужно номер склада.
Org – Организация, необязательный параметр и указывать нужно номер организации..
Данные Вы получите в таком формате:
{'sucess':true, 'total':33, 'ExportRemnants': [
{
"DirNomenID":"1",
"DirNomenName":"Товар-1",
"DirWarehouseID":"1",
"DirContractorIDOrg":"1",
"DirWarehouseName":"Склад-1",
" Count ":"3"
},
{
"DirNomenID":"2",
"DirNomenName":"Товар-2",
"DirWarehouseID":"1",
"DirContractorIDOrg":"1",
"DirWarehouseName":"Склад-1",
"Quantity":"2"
}
]}
В примере всего 2-а товара, с кодами: DirNomenID=2 и DirNomenID=3 с остатками 3 и 5 штук/кг соответственно.
Программный код на языке программирования .NET C# будет выглядеть так:
//Строка соединения
string URI = "http://sklad.uchetoblako.ru/API/Api10.ashx";
//Параметры
string myParameters = "Key=XXX&pID=ExportRemnants&DirWarehouse=1";
using (WebClient wc = new WebClient())
{
wc.Encoding = System.Text.Encoding.UTF8;
wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
Label2.Text = wc.UploadString(URI, myParameters);
}
Данные нужно отправлять в JSON-формате.
Во всех случаях при импорте для передачи коллекции Товара/Контрагентов/Спецификации на сервер Вам нужно сформировать JSON-массив состоящий из полей/значений товара и передать его в виде параметра, а так же нескольких дополнительных параметров.
1. Справочник «Товары».
параметры:
DirNomenCollection - JSON-массив имеет вид:
[
{
'DirNomenID':'1',
'DirNomenGroupID':'3',
'DirNomenGroupName':'Група-1',
'DirNomenName':'Товар-1',
'DirNomenNameFull':'Товар-1',
'DirUnitMeasureID':'1',
'DirUnitMeasureName':'шт',
'DirNomenArticle':'12345',
'DirNomenTypeID':'1',
'DirNomenManufacturer':'',
'DirNomenManufacturerCode':'',
'DirCountryName':'',
'DirNomenNumberCustomsDeclaration':'',
'DirNomenMinimumBalance':'0',
'DirNomenDisc':'',
'DirNomenDiscFull':'',
'DirNomenInventoryNumber':'',
'DirVatName':'0',
'DirCurrencyName':'Российский рубль',
'PriceVAT':'59.25',
'PriceRetailVAT':'129.99',
'PriceWholesaleVAT':'119.99',
'ImageLink':''
},
{
'DirNomenID':'2',
'DirNomenGroupID':'3',
'DirNomenGroupName':'Група-1',
'DirNomenName':'Товар-2',
'DirNomenNameFull':'Товар-2',
'DirUnitMeasureID':'1',
'DirUnitMeasureName':'шт',
'DirNomenArticle':'98765',
'DirNomenTypeID':'1',
'DirNomenManufacturer':'',
'DirNomenManufacturerCode':'',
'DirCountryName':'',
'DirNomenNumberCustomsDeclaration':'',
'DirNomenMinimumBalance':'0',
'DirNomenDisc':'',
'DirNomenDiscFull':'',
'DirNomenInventoryNumber':'',
'DirVatName':'0',
'DirCurrencyName':'Российский рубль',
'PriceVAT':'2587.5',
'PriceRetailVAT':'4999.99',
'PriceWholesaleVAT':'4899.99',
'ImageLink':''
},
]
Key – Код идентификации
pID – Тип Экспортируемого объекта, в данном случае «Товар» (ImportDirNomen)
NotStopProcess – Продолжить дальше, даже если есть ошибки и принимает значения: false, true
MatchName – Если Наименование совпадают, то не создавать новую позицию, а перезаписать её (UPDATE) и принимает значения: false, true
MatchArticle – Если Артикул совпадает, то не создавать новую позицию, а перезаписать её (UPDATE) и принимает значения: false, true
Программный код на языке программирования .NET C# будет выглядеть так:
//Строка соединения
string URI = "http://sklad.uchetoblako.ru/API/Api10.ashx";
//Параметры
string DirNomenCollection = "DirNomenCollection[
{
'DirNomenID':'1',
'DirNomenGroupID':'3',
'DirNomenGroupName':'Група-1',
'DirNomenName':'Товар-1',
'DirNomenNameFull':'Товар-1',
'DirUnitMeasureID':'1',
'DirUnitMeasureName':'шт',
'DirNomenArticle':'12345',
'DirNomenTypeID':'1',
'DirNomenManufacturer':'',
'DirNomenManufacturerCode':'',
'DirCountryName':'',
'DirNomenNumberCustomsDeclaration':'',
'DirNomenMinimumBalance':'0',
'DirNomenDisc':'',
'DirNomenDiscFull':'',
'DirNomenInventoryNumber':'',
'DirVatName':'0',
'DirCurrencyName':'Российский рубль',
'PriceVAT':'59.25',
'PriceRetailVAT':'129.99',
'PriceWholesaleVAT':'119.99',
'ImageLink':''
},
{
'DirNomenID':'2',
'DirNomenGroupID':'3',
'DirNomenGroupName':'Група-1',
'DirNomenName':'Товар-2',
'DirNomenNameFull':'Товар-2',
'DirUnitMeasureID':'1',
'DirUnitMeasureName':'шт',
'DirNomenArticle':'98765',
'DirNomenTypeID':'1',
'DirNomenManufacturer':'',
'DirNomenManufacturerCode':'',
'DirCountryName':'',
'DirNomenNumberCustomsDeclaration':'',
'DirNomenMinimumBalance':'0',
'DirNomenDisc':'',
'DirNomenDiscFull':'',
'DirNomenInventoryNumber':'',
'DirVatName':'0%',
'DirCurrencyName':'Российский рубль',
'PriceVAT':'2587.5',
'PriceRetailVAT':'4999.99',
'PriceWholesaleVAT':'4899.99',
'ImageLink':''
}
]";
string myParameters = "Key=XXX&pID=ImportDirNomen&NotStopProcess=false&MatchName=false&MatchArticle=true&" + DirNomenCollection;
using (WebClient wc = new WebClient())
{
wc.Encoding = System.Text.Encoding.UTF8;
wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
Label1.Text = wc.UploadString(URI, "POST", myParameters);
}
Ответ сервера, после завершения операции импорта будет такой:
{'success':true, 'data': {'CountInsert':'0','CountUpdate':'2','CountIgnore':'0'}}
Где параметры:
- CountInsert – новых записей
- CountUpdate – обновлено уже существующих записей
- CountIgnore – ошибок
2. Справочник «Контрагенты».
параметры:
DirContractorCollection - JSON-массив имеет вид:
[
{
'DirContractorID':'1',
'DirContractorGroupID':'1',
'DirContractorGroupName':'Поставщики',
'DirContractorTypeID':'2',
'DirContractor2TypeID':'2',
'DirContractorTypeName':'Физическое лицо',
'DirContractorName':'Контрагент-1',
'DirContractorAddress':'',
'DirContractorPhone':'123456789',
'DirContractorFax':'',
'DirContractorEmail':'',
'DirContractorWWW':'',
'DirContractorDiscount':'0',
'DirVatValue':'0',
'DirContractorLegalName':'Контрагент-1',
'DirContractorLegalAddress':'',
'DirContractorLegalTIN':'',
'DirContractorLegalRNNBO':'',
'DirContractorLegalCAT':'',
'DirContractorLegalBIN':'',
'DirContractorLegalOGRNIP':'',
'DirContractorLegalCertificateNumber':'',
'DirContractorLegalCertificateDate':'2016-04-01 00:00:00',
'DirContractorLegalPasSeries':'',
'DirContractorLegalPasNumber':'',
'DirContractorLegalPasCode':'',
'DirContractorLegalPasIssued':'',
'DirContractorLegalPasDate':'1988-01-01 00:00:00',
'DirContractorDesc':'',
'ImageLink':''
},
{
'DirContractorID':'2',
'DirContractorGroupID':'1',
'DirContractorGroupName':'Поставщики',
'DirContractorTypeID':'2',
'DirContractor2TypeID':'2
'DirContractorTypeName':'Физическое лицо',
'DirContractorName':'Контрагент-2',
'DirContractorAddress':'',
'DirContractorPhone':'987654321',
'DirContractorFax':'',
'DirContractorEmail':'',
'DirContractorWWW':'',
'DirContractorDiscount':'0',
'DirVatValue':'0',
'DirContractorLegalName':'Контрагент-2',
'DirContractorLegalAddress':'',
'DirContractorLegalTIN':'',
'DirContractorLegalRNNBO':'',
'DirContractorLegalCAT':'',
'DirContractorLegalBIN':'',
'DirContractorLegalOGRNIP':'',
'DirContractorLegalCertificateNumber':'',
'DirContractorLegalCertificateDate':'2016-04-01 00:00:00',
'DirContractorLegalPasSeries':'',
'DirContractorLegalPasNumber':'',
'DirContractorLegalPasCode':'',
'DirContractorLegalPasIssued':'',
'DirContractorLegalPasDate':'1994-01-01 00:00:00',
'DirContractorDesc':'',
'ImageLink':''
}
]
Key – Код идентификации
pID – Тип Экспортируемого объекта, в данном случае «Контрагент» (ImportDirContractor)
NotStopProcess – Продолжить дальше, даже если есть ошибки и принимает значения: false, true
MatchName – Если Наименование совпадают, то не создавать новую позицию, а перезаписать её (UPDATE) и принимает значения: false, true
MatchTIN_CAT_BIN – Если все значения ИНН, КПП и ОГРН совпадает, то не создавать новую позицию, а перезаписать её (UPDATE)
Программный код на языке программирования .NET C# будет выглядеть так:
//Строка соединения
string URI = "http://sklad.uchetoblako.ru";
//Параметры
string DirContractorCollection =
"DirContractorCollection=
[
{
'DirContractorID':'1',
'DirContractorGroupID':'1',
'DirContractorGroupName':'Поставщики',
'DirContractorTypeID':'2',
'DirContractor2TypeID':'2,
'DirContractorTypeName':'Физическое лицо',
'DirContractorName':'Контрагент-1',
'DirContractorAddress':'',
'DirContractorPhone':'123456789',
'DirContractorFax':'',
'DirContractorEmail':'',
'DirContractorWWW':'',
'DirContractorDiscount':'0',
'DirVatValue':'0',
'DirContractorLegalName':'Контрагент-1',
'DirContractorLegalAddress':'',
'DirContractorLegalTIN':'',
'DirContractorLegalRNNBO':'',
'DirContractorLegalCAT':'',
'DirContractorLegalBIN':'',
'DirContractorLegalOGRNIP':'',
'DirContractorLegalCertificateNumber':'',
'DirContractorLegalCertificateDate':'2016-04-01 00:00:00',
'DirContractorLegalPasSeries':'',
'DirContractorLegalPasNumber':'',
'DirContractorLegalPasCode':'',
'DirContractorLegalPasIssued':'',
'DirContractorLegalPasDate':'1988-01-01 00:00:00',
'DirContractorDesc':'',
'ImageLink':''
},
{
'DirContractorID':'2',
'DirContractorGroupID':'1',
'DirContractorGroupName':'Поставщики',
'DirContractorTypeID':'2',
'DirContractor2TypeID':'2,
'DirContractorTypeName':'Физическое лицо',
'DirContractorName':'Контрагент-2',
'DirContractorAddress':'',
'DirContractorPhone':'987654321',
'DirContractorFax':'',
'DirContractorEmail':'',
'DirContractorWWW':'',
'DirContractorDiscount':'0',
'DirVatValue':'0',
'DirContractorLegalName':'Контрагент-2',
'DirContractorLegalAddress':'',
'DirContractorLegalTIN':'',
'DirContractorLegalRNNBO':'',
'DirContractorLegalCAT':'',
'DirContractorLegalBIN':'',
'DirContractorLegalOGRNIP':'',
'DirContractorLegalCertificateNumber':'',
'DirContractorLegalCertificateDate':'2016-04-01 00:00:00',
'DirContractorLegalPasSeries':'',
'DirContractorLegalPasNumber':'',
'DirContractorLegalPasCode':'',
'DirContractorLegalPasIssued':'',
'DirContractorLegalPasDate':'1994-01-01 00:00:00',
'DirContractorDesc':'',
'ImageLink':''
}
]";
string myParameters = "Key=XXX&pID=ImportDirContractor&NotStopProcess=false&MatchName=true&MatchTIN_CAT_BIN=true&" + DirContractorCollection;
using (WebClient wc = new WebClient())
{
wc.Encoding = System.Text.Encoding.UTF8;
wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
Label1.Text = wc.UploadString(URI, "POST", myParameters);
}
Ответ сервера, после завершения операции импорта будет такой:
{'success':true, 'data': {'CountInsert':'0','CountUpdate':'2','CountIgnore':'0'}}
Где параметры:
- CountInsert – новых записей
- CountUpdate – обновлено уже существующих записей
- CountIgnore – ошибок
3. Расходная накладная.
параметры:
DocSalesCollection - JSON-массив имеет вид:
[
{
'DirNomenID':'1',
'DirNomenArticle':'',
'DirNomenName':'',
'Count':'2',
'PriceVAT':'55'
},
{
'DirNomenID':'2',
'DirNomenArticle':'',
'DirNomenName':'',
'Count':'1',
'PriceVAT':'125'
}
]
Key – Код идентификации
pID – Тип Экспортируемого объекта, в данном случае «Контрагент» (ImportDocSales)
NotStopProcess – Продолжить дальше, даже если есть ошибки и принимает значения: false, true
MatchName – Если Наименование совпадают, то не создавать новую позицию, а перезаписать её (UPDATE) и принимает значения: false, true
MatchArticle – Если Артикул совпадает, то не создавать новую позицию, а перезаписать её (UPDATE) и принимает значения: false, true
DirWarehouseID - Склад (его порядковый номер)
DirContractorID - Контрагент (его порядковый номер)
Org - Организация (его порядковый номер)
DocDate - Дата документа
Программный код на языке программирования .NET C# будет выглядеть так:
//Строка соединения
string URI = "http://sklad.uchetoblako.ru/API/Api10.ashx";
//Параметры
string DocSalesCollection =
"DocSalesCollection=
[
{
'DirNomenID':'1',
'DirNomenArticle':'',
'DirNomenName':'',
'Count':'2',
'PriceVAT':'55'
},
{
'DirNomenID':'2',
'DirNomenArticle':'',
'DirNomenName':'',
'Count':'1',
'PriceVAT':'125'
}
]";
string myParameters =
"Key=XXX&pID=ImportDocSales&" +
"NotStopProcess=false&MatchName=true&MatchArticle=true&" +
"DirWarehouseID=2& DirContractorID=31& DocDate=2016-04-01&" +
DocSalesCollection;
using (WebClient wc = new WebClient())
{
wc.Encoding = System.Text.Encoding.UTF8;
wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
Label1.Text = wc.UploadString(URI, "POST", myParameters);
}
Ответ сервера, после завершения операции импорта будет такой:
{'success':true, 'data': {'CountInsert':'2','CountUpdate':'0','CountIgnore':'0','DocID':'9135'}}
Где параметры:
- CountInsert – новых записей
- CountUpdate – обновлено уже существующих записей
- CountIgnore – ошибок
- DocID – номер созданного документа
4. Приходная накладная.
параметры:
DocPurchCollection - JSON-массив имеет вид:
[
{
'DirNomenID':'1',
'DirNomenArticle':'',
'DirNomenName':'',
'Count':'2',
'PriceVAT':'55',
'PriceRetailVAT':'64',
'PriceWholesaleVAT':'62'
},
{
'DirNomenID':'2',
'DirNomenArticle':'',
'DirNomenName':'',
'Count':'1',
'PriceVAT':'125',
'PriceRetailVAT':'159',
'PriceWholesaleVAT':'149'
}
]
Key – Код идентификации
pID – Тип Экспортируемого объекта, в данном случае «Контрагент» (ImportDocPurch)
NotStopProcess – Продолжить дальше, даже если есть ошибки и принимает значения: false, true
MatchName – Если Наименование совпадают, то не создавать новую позицию, а перезаписать её (UPDATE) и принимает значения: false, true
MatchArticle – Если Артикул совпадает, то не создавать новую позицию, а перезаписать её (UPDATE) и принимает значения: false, true
DirWarehouseID - Склад (его порядковый номер)
DirContractorID - Контрагент (его порядковый номер)
Org - Організація (його порядковий номер)
DocDate - Дата документа
Программный код на языке программирования .NET C# будет выглядеть так:
//Строка соединения
string URI = "http://sklad.uchetoblako.ru/API/Api10.ashx";
//Параметры
string DocPurchCollection =
"DocPurchCollection=
[
{
'DirNomenID':'1',
'DirNomenArticle':'',
'DirNomenName':'',
'Count':'2',
'PriceVAT':'55',
'PriceRetailVAT':'64',
'PriceWholesaleVAT':'62'
},
{
'DirNomenID':'2',
'DirNomenArticle':'',
'DirNomenName':'',
'Count':'1',
'PriceVAT':'125',
'PriceRetailVAT':'159',
'PriceWholesaleVAT':'149'
}
]
";
string myParameters =
"Key=XXX&pID=ImportDocPurch&" +
"NotStopProcess=false&MatchName=true&MatchArticle=true&" +
"DirWarehouseID=2& DirContractorID=31& DocDate=2016-04-01&" +
DocPurchCollection;
using (WebClient wc = new WebClient())
{
wc.Encoding = System.Text.Encoding.UTF8;
wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
Label1.Text = wc.UploadString(URI, "POST", myParameters);
}
Ответ сервера, после завершения операции импорта будет такой:
{'success':true, 'data': {'CountInsert':'2','CountUpdate':'0','CountIgnore':'0','DocID':'9135'}}
Где параметры:
- CountInsert – новых записей
- CountUpdate – обновлено уже существующих записей
- CountIgnore – ошибок
- DocID – номер созданного документа
5. Заказы покупателей.
параметры:
DocOrdersCustomerCollection - JSON-массив имеет вид:
[
{
'DirNomenID':'1',
'DirNomenArticle':'',
'DirNomenName':'',
'Count':'2',
'PriceVAT':'55',
'DirOrdersStateID':'13'
},
{
'DirNomenID':'2',
'DirNomenArticle':'',
'DirNomenName':'',
'Count':'1',
'PriceVAT':'125',
'DirOrdersStateID':'13'
}
]
Key – Код идентификации
pID – Тип Экспортируемого объекта, в данном случае «Контрагент» (ImportDocOrdersCustomer)
NotStopProcess – Продолжить дальше, даже если есть ошибки и принимает значения: false, true
MatchName – Если Наименование совпадают, то не создавать новую позицию, а перезаписать её (UPDATE) и принимает значения: false, true
MatchArticle – Если Артикул совпадает, то не создавать новую позицию, а перезаписать её (UPDATE) и принимает значения: false, true
DirWarehouseID - Склад (его порядковый номер)
DirContractorID - Контрагент (его порядковый номер)
Org - Організація (його порядковий номер)
DocDate - Дата документа
DirOrdersStateID - Статус заказа (его порядковый номер)
Программный код на языке программирования .NET C# будет выглядеть так:
//Строка соединения
string URI = "http://sklad.uchetoblako.ru/API/Api10.ashx";
//Параметры
string DocPurchCollection =
"DocPurchCollection=
[
{
'DirNomenID':'1',
'DirNomenArticle':'',
'DirNomenName':'',
'Count':'2',
'PriceVAT':'55',
'DirOrdersStateID':'13'
},
{
'DirNomenID':'2',
'DirNomenArticle':'',
'DirNomenName':'',
'Count':'1',
'PriceVAT':'125',
'DirOrdersStateID':'13'
}
]
";
string myParameters =
"Key=XXX&pID=ImportDocOrdersCustomer&" +
"NotStopProcess=false&MatchName=true&MatchArticle=true&" +
"DirWarehouseID=2&DirContractorID=31&DocDate=2016-04-01&DirOrdersStateID=3&" +
DocPurchCollection;
using (WebClient wc = new WebClient())
{
wc.Encoding = System.Text.Encoding.UTF8;
wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
Label1.Text = wc.UploadString(URI, "POST", myParameters);
}
Ответ сервера, после завершения операции импорта будет такой:
{'success':true, 'data': {'CountInsert':'2','CountUpdate':'0','CountIgnore':'0','DocID':'9135'}}
Где параметры:
- CountInsert – новых записей
- CountUpdate – обновлено уже существующих записей
- CountIgnore – ошибок
- DocID – номер созданного документа
П.С.
Экспорт и импорт Товара, Контрагентов и Остатков можно производить раз в 10 минут
Импорт Расходной накладной можно производить без ограничений.
При неудачных 5 попытках соединения с сервисом (напр. не правельный параметр Key), будет таймают на 25 минут. При том Вы будете получать сообщение, что ключ не подходит, но проверка Ключа не будет происходить.