Интеграция с CWMS
Содержание
Внешние запросы от системы CWMS
Oбработка статуса и количества вложений
Метод
Реализована обработка статуса и количества вложений по url: index.php
- При получение статуса 3 добавляется статус [21] Готов к выдаче
- Корректируется количество вложений
- изменений количества не происходит, если товар представлен в заказе несколькими вложениями
Входящие данные
Пример запроса:
<DOC>
<DOC_OUT>
<CONTR>85</CONTR>
<NUMBER>103200-0001061553</NUMBER>
<ID_DOC>103200</ID_DOC>
<STATUS>8</STATUS>
<STATUS_DSC>Отгружен</STATUS_DSC>
<DATE>24.12.2021-09.42.14</DATE>
<OLD_STATUS>0</OLD_STATUS>
<OLD_STATUS_DSC></OLD_STATUS_DSC>
<UPLOAD_END>2021-12-24T09:42:12</UPLOAD_END>
<TYPE>Заказ на отгрузку</TYPE>
<DSC>примечание из корреспонденции</DSC>
<CONTENT>
<CODE CODE="40581">
<CNT>4</CNT>
<ACTUAL_CNT>16</ACTUAL_CNT>
<UNIT_TYPE>шт</UNIT_TYPE>
<ST_PART></ST_PART>
<PART_NUM></PART_NUM>
<EXPIRE_DATE>3000-01-01T00:00:00</EXPIRE_DATE>
<NOM_TYPE>1</NOM_TYPE>
<SUB_NOM_TYPE></SUB_NOM_TYPE>
</CODE>
<CODE CODE="40582">
<CNT>4</CNT>
<ACTUAL_CNT>16</ACTUAL_CNT>
<UNIT_TYPE>шт</UNIT_TYPE>
<ST_PART></ST_PART>
<PART_NUM></PART_NUM>
<EXPIRE_DATE>3000-01-01T00:00:00</EXPIRE_DATE>
<NOM_TYPE>1</NOM_TYPE>
<SUB_NOM_TYPE></SUB_NOM_TYPE>
</CODE>
</CONTENT>
<EXT_PARAMS>
<PARAM>
<PARAM_NAME>Шифр</PARAM_NAME>
<PARAM_VALUE>000000111</PARAM_VALUE>
<PARAM_CAPTION>Шифр</PARAM_CAPTION>
</PARAM>
</EXT_PARAMS>
</DOC_OUT>
</DOC>
Ответ
- При отсутствии критических ошибок: (Пустой запрос не вызывает критическую ошибку и считается успешным)
<?xml version="1.0" encoding="UTF-8"?><request>OK</request>
- При возникновении критической ошибки:
<?xml version="1.0" encoding="UTF-8"?><request>ERROR</request>
- При необходимости изменения количества товара представленного несколькими вложениями
<?xml version="1.0" encoding="UTF-8"?><request>addresscode = [Код заказа] {[Код товара]} - This item has several records. Updating its quantity is prohibited</request>
Лог
Факт запроса на обработку статуса и количества вложений отображается по url: info.php?s=index&d=2022-01-09
где параметр s - источник логов, d - дата лога. При не указанной дате выводится лог на текущую дату
Cинхронизация номенклатуры
Метод
Реализована синхронизация номенклатуры по url: http://62.84.120.241:54280/items.php
Габариты номенклатуры синхронизируются при совпадении items.code как NOM->CODE и items.ClientCode как NOM->CODE2
Входящие данные
Пример запроса:
<NOMENKLATURA>
<NOM>
<CODE>3</CODE>
<CODE2>787662</CODE2>
<NAME_DOC>name_doc</NAME_DOC>
<NAME>ннн 1:6990</NAME>
<GROUP_NAME>group1</GROUP_NAME>
<UNIT_NAME>шт</UNIT_NAME>
<UNIT_OP_NAME>кор</UNIT_OP_NAME>
<UNIT_CL_NAME>кор</UNIT_CL_NAME>
<EXPIRE>0</EXPIRE>
<SALE_DAYS>0</SALE_DAYS>
<STORAGE_TEMP/>
<DSC />
<ABC_GROUP>0</ABC_GROUP>
<BREND>ТМ AUTOTIME</BREND>
<STATUS>3</STATUS>
<id_importer />
<id_producer>vend_414</id_producer>
<id_supplier>vend_414</id_supplier>
<label_desc />
<STAMPED>1</STAMPED>
<STORE_AREAS>
<STORE_AREA>5</STORE_AREA>
</STORE_AREAS>
<PALLS_INFO>
<PALL>
<TYPE>1</TYPE>
<BLCK>1</BLCK>
<LENGTH>7</LENGTH>
<WIDTH>1</WIDTH>
<HEIGHT>10</HEIGHT>
<WEIGHT_NETTO>0</WEIGHT_NETTO>
<WEIGHT_BRUTTO>0</WEIGHT_BRUTTO>
<LAYER_CNT>0</LAYER_CNT>
</PALL>
</PALLS_INFO>
<UNITS_INFO>
<UNIT>
<TYPE>шт</TYPE>
<CNT>1</CNT>
<BARCODE></BARCODE>
<BARCODETYPE></BARCODETYPE>
<WEIGHT_NETTO>0</WEIGHT_NETTO>
<WEIGHT_BRUTTO>0</WEIGHT_BRUTTO>
<PRICE>0</PRICE>
<LENGTH>7</LENGTH>
<WIDTH>3</WIDTH>
<HEIGHT>10</HEIGHT>
<NDS>0</NDS>
<VOLUME>0</VOLUME>
<EXPONENT>1</EXPONENT>
</UNIT>
<UNIT>
<TYPE>кор</TYPE>
<CNT>5</CNT>
<BARCODE></BARCODE>
<BARCODETYPE></BARCODETYPE>
<WEIGHT_NETTO>0</WEIGHT_NETTO>
<WEIGHT_BRUTTO>0</WEIGHT_BRUTTO>
<PRICE>0</PRICE>
<LENGTH>0</LENGTH>
<WIDTH>0</WIDTH>
<HEIGHT>0</HEIGHT>
<NDS>0</NDS>
<VOLUME>0</VOLUME>
<EXPONENT>1</EXPONENT>
</UNIT>
</UNITS_INFO>
<OTHER_CODES>
<CODE>
<ARTK_CLIENT>add_code</ARTK_CLIENT>
<NAME_ITEM_CLIENT>name_add_code</NAME_ITEM_CLIENT>
<BARCODE>EAN13</BARCODE>
<BARCODETYPE>0000073601210</BARCODETYPE>
<DSC></DSC>
<UNIT_TYP></UNIT_TYP>
<ID_CLIENT>Client1</ID_CLIENT>
</CODE>
</OTHER_CODES>
<EXT_PARAMS>
<PARAM>
<PARAM_NAME>ext_param1</PARAM_NAME>
<PARAM_VALUE>val1</PARAM_VALUE>
</PARAM>
</EXT_PARAMS>
<NOM_CHANGE_NOM>
<NOM>
<CODE>1276654</CODE>
<ORD>1</ORD>
<COEFF>1.1</COEFF>
</NOM>
<NOM>
<CODE>46344</CODE>
<ORD>2</ORD>
<COEFF>1.1</COEFF>
</NOM>
</NOM_CHANGE_NOM>
<NOM_CONTENT>
<NOM>
<CODE>content_code1</CODE>
<CNT>2</CNT>
<NOMUNIT>1</NOMUNIT>
</NOM>
</NOM_CONTENT>
<BARCODES>
<BARCODE>
<BAR_CODE>237847656437463</BAR_CODE>
<UNIT_TYP>шт</UNIT_TYP>
<TYP>EAN13</TYP>
</BARCODE>
<BARCODE>
<BAR_CODE>258476359667757</BAR_CODE>
<UNIT_TYP>шт2</UNIT_TYP>
<TYP>EAN13</TYP>
</BARCODE>
<BARCODE>
<BAR_CODE>4875643746245</BAR_CODE>
<UNIT_TYP>кор</UNIT_TYP>
<TYP>EAN13</TYP>
</BARCODE>
</BARCODES>
</NOM>
</NOMENKLATURA>
- NOM->CODE - внутренний код номенклатуры,
- NOM->CODE2 - код номенклатуры клиента
`itemclient`.`ClienCode`
- NOM->UNITS_INFO->UNIT - блок с количественными и габаритными характеристиками номенклатуры.
При проверке данных номенклатуры на корректность, сверяются коды номенклатуры, проверяется ее активность (не в архиве). Обязательным признаком корректности структуры данных, является наличие тега NOM->UNITS_INFO->UNIT->WEIGHT_NETTO
Ответ
- При отсутствии критических ошибок: (Пустой запрос не вызывает критическую ошибку и считается успешным)
<?xml version="1.0" encoding="UTF-8"?><request>OK</request>
- При возникновении критической ошибки:
<?xml version="1.0" encoding="UTF-8"?><request>ERROR</request>
Лог
Факт запроса синхронизации номенклатуры отображается по url: http://62.84.120.241:54280/info.php?s=items&d=2022-01-10
где параметр s - источник логов, d - дата лога. При не указанной дате выводится лог на текущую дат
Cинхронизация складских остатков
Метод
Версия 2: http://62.84.120.241:54280/stockfast.php
Данных о тестировании клиентом нет.
- Устанавливается остаток товара по клиенту.
- Синхронизация происходит всему запросу по кодам товаров и коду клиента.
- Остаток товаров, которых нет в запросе считается равным 0.
Входящие данные
Формат входящего xml
Структура получена из рабочих примеров.
Пример запроса:
<?xml version="1.0" encoding="UTF-8"?>
<STOCK FD="2022-01-11T02:14:36">
<CONTR>85</CONTR>
<REC>
<CODE>40236</CODE>
<CNT>5</CNT>
<EXPIRE_DATE>3000-01-01T00:00:00</EXPIRE_DATE>
<NOM_TYP>1</NOM_TYP>
<SUB_NOM_TYP></SUB_NOM_TYP>
<PALL_TYPE>1</PALL_TYPE>
<ST_PART_N></ST_PART_N>
<DSC></DSC>
<BLOCK_TYPE></BLOCK_TYPE>
</REC>
<REC>
<CODE>40237</CODE>
<CNT>5</CNT>
<EXPIRE_DATE>3000-01-01T00:00:00</EXPIRE_DATE>
<NOM_TYP>1</NOM_TYP>
<SUB_NOM_TYP></SUB_NOM_TYP>
<PALL_TYPE>1</PALL_TYPE>
<ST_PART_N></ST_PART_N>
<DSC></DSC>
<BLOCK_TYPE></BLOCK_TYPE>
</REC>
</STOK>
- CONTR - код клиента
- REC->CODE - код товара
- REC->CNT - Количество товаров
Ответ
- При отсутствии критических ошибок:
<?xml version="1.0" encoding="UTF-8"?><request>OK</request>
- При возникновении критической ошибки:
<?xml version="1.0" encoding="UTF-8"?><request>Error: Empty DATA</request>
Сообщение об ошибке возникает:
- При пустом запросе: Error: Empty DATA
- При откате транзакции: Error: Rollback transaction
- При пустом ID клиента: Error: Empty client ID
Лог
Факт запроса отображается по url
- http://62.84.120.241:54280/info.php?d=2022-01-10
- http://62.84.120.241:54280/info.php?s=stockfast&d=2022-07-10
где параметр s - источник логов, d - дата лога. При не указанной дате выводится лог на текущую дату