ООО «Оптикор» Инструкция по работе с заказами клиентов

advertisement
ООО «Оптикор»
Инструкция по работе с заказами клиентов.
Документ №: GTW_WebMethods_ClientOrder.
Введение.
Загрузка заказов клиентов, получение данных о том, в каком статусе находится заказ клиента,
реализованы через взаимодействие с soap-сервисом, расположенным по адресу
http://93.89.189.38:13131/WMS/SOAP/soap.php?xml_data=. Для работы необходим код сессии sid,
который уникален для каждой организации.
Загрузка заказа клиента.
На вход методу подаётся файл формата *.XML, который должен содержать минимальный набор
полей заказа, аналогично примеру ниже.
<?xml version="1.0" encoding="utf-8" ?>
<ClientOrder>
<!-- Заказ-->
<sid>sid<!--Сессия подключения--></sid>
<StructureCode>ClientOrder<!--Передаваемая структура--></StructureCode>>
<hdr_ClientOrder>
<!--Заголовок-->
<Date>2013-03-31</Date>
<!--Дата заказа в формате гггг-мм-дд-->
<DeliveryDate>2013-04-02</DeliveryDate>
<!--Дата доставки заказа в формате гггг-мм-дд -->
<Number>999999</Number>
<!--Номер заказа в системе клиента, целочисленное значение -->
<DeliveryType>Subway</DeliveryType>
<!--Тип доставки-->
<ClientParam>
<!--Блок информации о клиенте-->
<ClientSurname>Алексеев</ClientSurname>
<!--Фамилия клиента, текстовое значение-->
<ClientName>Алексей</ClientName>
<!--Имя клиента, текстовое значение -->
<ClientSecondname>Алексеевич</ClientSecondname>
<!--Отчество клиента, текстовое значение -->
<OwnerCode>111111</OwnerCode>
<!--Номер заказчика в системе клиента, целочисленное значение -->
<ZipCode>142000</ZipCode>
<!--Почтовый код, целочисленное значение -->
<Subject>Московская область</Subject>
<!--Субъект, текстовое значение -->
<Region>Домодедовский район</Region>
<!--Регион, текстовое значение -->
<City>Домодедово</City>
<!--Город, текстовое значение -->
<Town></Town>
<!--Насленный пункт, текстовое значение -->
<Street> ул. Гагарина </Street>
<!—Улица, текстовое значение -->
<House>5</House>
<!—Дом, текстовое значение -->
<Building></Building>
<!—Строение, текстовое значение -->
<Flat>2</Flat>
<!--Квартира, целочисленное значение -->
<Phone>555-55-55</Phone>
<!--Номер телефона, текстовое значение -->
</ClientParam>
<OrderWeight>12</OrderWeight>
<!--Суммарный вес заказа в кг, числовое значение-->
<OrderVolume>0.1</OrderVolume>
<!--Суммарный объём заказа в м. куб. , числовое значение -->
<OrderSum>105000</OrderSum>
<!--Сумма заказа, числовое значение -->
<InsuresAmount>0</InsuresAmount>
<!--Сумма страховки, числовое значение -->
<DeliveryAmount>700</DeliveryAmount>
<!--Сумма доставки, числовое значение -->
<OrderToPay>105700</OrderToPay>
<!--Сумма к оплате, числовое значение -->
</hdr_ClientOrder>
<tbl_ClientOrder>
<!--Табличная часть-->
<tbl_Line>
<!--Линия табличной части-->
<Article>12568923</Article>
<!--Артикул товара, текстовое значение -->
<Name>Hp Notebook DR-4000</Name>
<!--Полное наименование товара, текстовое значение -->
<Description>Hp NoteBook DR-4000 4CHz, 6Gb RAM, Core i5, Radeon
7800</Description>
<!--Описание товара, текстовое значение -->
<Barcode>12568923</Barcode>
<!--Штрих-код товара, целочисленное значение -->
<Weight>2.5</Weight>
<!--Вес единицы товара в кг, числовое значение -->
<Volume>0.02</Volume>
<!--Объём единицы товара в м. куб. , числовое значение -->
<Price>20000</Price>
<!--Цена единицы товара, числовое значение -->
<Qty>4</Qty>
<!--Количество товара, целочисленное значение -->
</tbl_Line>
<tbl_Line>
<!--Линия табличной части-->
<Article>12568965</Article>
<!--Артикул товара-->
<Name>Hp Notebook DR-4020</Name>
<!--Полное наименование товара-->
<Description>Hp NoteBook DR-4020 4CHz, 8Gb RAM, Core i7, Radeon
8200</Description>
<!--Описание товара-->
<Barcode>13478523</Barcode>
<!--Штрих-код товара-->
<Weight>2</Weight>
<!--Вес единицы товара в кг-->
<Volume>0.02</Volume>
<!--Объём единицы товара в м. куб.-->
<Price>25000</Price>
<!--Цена единицы товара-->
<Qty>1</Qty>
<!--Количество товара-->
</tbl_Line>
</tbl_ClientOrder>
</ClientOrder>
В ответ будет получена xml-структура с единственным тегом <Result></Result>, содержащим ответ
сервера о результате добавления заказа или ошибке.
Возможные варианты ответов:
1. «NO AUTHORIZATION» при неверном sid.
2. «Товар #Article# не найден в базе» при отсутствии записей о товаре в БД хотя бы с одним из
указанных в заявке артикулов. Заказ не будет создан.
3. «Заявка #Number# успешно создана под №n».
4. «Заявка #Number# уже есть в базе данных».
Получение статуса заказа клиента.
На вход методу подаётся файл формата *.XML, который должен содержать минимальный набор
полей, аналогично примеру ниже.
<?xml version="1.0" encoding="utf-8" ?>
<ClientOrder>
<!-- Заказ-->
<sid>sid</sid>
<StructureCode>AskStatus</StructureCode>
<hdr_AskStatus>
<OrderNum>8</OrderNum>
</hdr_AskStatus>
</ClientOrder>
В ответ будет получена xml-структура, аналогичная примеру, приведенному ниже. Она содержит
информацию об истории изменения статусов.
<StatusChange>
<!—Изменение статуса-->
<PreStatus>ClientOrder_Submit</PreStatus>
<!—Начальный статус-->
<PostStatus>ClientOrder_Reserve</PostStatus>
<!—Конечный статус-->
<RD>май 27 2013 2:28PM</RD>
<!—Время изменения статуса-->
</StatusChange>
<StatusChange>
<PreStatus>ClientOrder_Reserve</PreStatus>
<PostStatus>ClientOrder_Submit</PostStatus>
<RD>май 27 2013 2:28PM</RD>
</StatusChange>
<StatusChange>
<PreStatus>ClientOrder_Submit</PreStatus>
<PostStatus>ClientOrder_Execute</PostStatus>
<RD>май 27 2013 2:47PM</RD>
</StatusChange>
<StatusChange>
<PreStatus>ClientOrder_Execute</PreStatus>
<PostStatus>ClientOrder_Reserve</PostStatus>
<RD>май 27 2013 2:47PM</RD>
</StatusChange>
<StatusChange>
<PreStatus>ClientOrder_Reserve</PreStatus>
<PostStatus>ClientOrder_Execute</PostStatus>
<RD>май 27 2013 2:47PM</RD>
</StatusChange>
Диаграмма возможных переходов между статусами представлена ниже на схеме.
Получение данных о последних изменениях статусов заказов клиентов.
На вход методу подаётся файл формата *.XML, который должен содержать минимальный набор
полей, аналогично примеру ниже.
<?xml version="1.0" encoding="utf-8" ?>
<ClientOrder>
<!-- Заказ-->
<sid>sid</sid>
<StructureCode>GetHistory</StructureCode>
<root><!—Служебное поле, не заполняется--></root>
</ClientOrder>
В ответ будет получена xml-структура, аналогичная примеру, приведенному ниже. Она содержит
историю изменения статусов, которую клиент еще не запрашивал.
<StatusChange>
<!—Изменение статуса-->
<OrderNum>12345</OrderNum>
<!—Номер заказа-->
<PreStatus>ClientOrder_Submit</PreStatus>
<!—Начальный статус-->
<PostStatus>ClientOrder_Reserve</PostStatus>
<!—Конечный статус-->
<RD>май 27 2013 2:28PM</RD>
<!—Время изменения статуса-->
</StatusChange>
<StatusChange>
<OrderNum>12345</OrderNum>
<PreStatus>ClientOrder_Reserve</PreStatus>
<PostStatus>ClientOrder_Submit</PostStatus>
<RD>май 27 2013 2:28PM</RD>
</StatusChange>
<StatusChange>
<OrderNum>12346</OrderNum>
<PreStatus>ClientOrder_Submit</PreStatus>
<PostStatus>ClientOrder_Execute</PostStatus>
<RD>май 27 2013 2:47PM</RD>
</StatusChange>
<StatusChange>
<OrderNum>12346</OrderNum>
<PreStatus>ClientOrder_Execute</PreStatus>
<PostStatus>ClientOrder_Reserve</PostStatus>
<RD>май 27 2013 2:47PM</RD>
</StatusChange>
<StatusChange>
<OrderNum>12347</OrderNum>
<PreStatus>ClientOrder_Reserve</PreStatus>
<PostStatus>ClientOrder_Execute</PostStatus>
<RD>май 27 2013 2:47PM</RD>
</StatusChange>
Download