Этот сервис предоставляет доступ к корзине пользователя. С его помощью пользователь в любое время может добавлять позиции в корзину, удалять позиции из корзины, получать список позиций корзины и осуществлять заказ.
Сервис включает в себя определение шести методов.
Название | Назначение |
---|---|
Add | Позволяет добавить в корзину выбранные заказы. |
GetItemsInBasket | Возвращает все позиции, находящиеся в корзине пользователя. |
ToOrder | Позволяет заказывать выбранные позиции из корзины. |
Update | Позволяет редактировать позиции в корзине. |
Delete | Удаляет указанные позиции из корзины. |
ApproveChanges | Позволяет пользователю подтвердить изменения. |
Метод Add
Позволяет добавить в корзину выбранные позиции, для чего в метод необходимо передать идентификатор позиции, кол-во и комментарий.
Входные данные:
Имя параметра | Тип | Обязательный | Описание |
---|---|---|---|
login | string | Да | Логин пользователя. |
password | string | Да | Пароль пользователя. |
searchQueryId | Guid | Да | Идентификатор для заказа детали, который возвращается поисковым сервисом на втором этапе поиска. |
count | int | Да | Количество деталей для заказа. |
userComment | string | Да | Комментарий пользователя. |
Результат:
Класс содержит результат добавления в корзину и идентификатор позиции в корзине.
Имя свойства | Тип | Описание |
---|---|---|
BasketId | Guid? | Идентификатор позиции в корзине. Если добавить заказ в корзину не удалось, то значение равно null. |
State | AddItemState | Результат добавления в корзину. |
RowVersion | byte[] | Версия заказа в корзине. Необходима при заказе. Если добавить не удалось - пустой массив. |
Comment | string | Комментарий в случае ошибки. |
Результат добавления позиции в корзину.
Значение | Описание |
---|---|
Error | Произошла ошибка. |
Success | Операция успешно выполнена. |
DepositModeOn | Недостаточно средств на счету. |
ItemNoLongerValid | Предложение устарело. Повторите поиск. |
IncorrectData | Неверные входные данные. |
В этом примере показано, как вызвать метод Add.
using (var client = new BasketServiceClient())
{
var searchQueryId = Guid.Parse("015efa1d-3e9e-45f2-8f0e-0eb14e6b33ad");
var login = "login";
var password = "password";
var addToBasketResult = client.Add(login, password, searchQueryId, 1, "Комментарий пользователя.");
if (addToBasketResult.State != AddItemState.Success)
{
Console.WriteLine("Ошибка при добавлении товаров в корзину");
}
else
{
Console.WriteLine("Товары добавлены в корзину");
}
}
Метод GetItemsInBasket
Позволяет получить все позиции, находящиеся в корзине пользователя.
Входные данные:
Имя параметра | Тип | Обязательный | Описание |
---|---|---|---|
login | string | Да | Логин пользователя. |
password | string | Да | Пароль пользователя. |
Результат:
Класс содержит позиции в корзине и другую информацию.
Имя свойства | Тип | Описание |
---|---|---|
ItemsInBasket | BasketItem[] | Позиции в корзине. |
UserCurrencyCode | string | Трехбуквенная валюта клиента в формате ISO 4217. |
Comment | string | Комментарий в случае ошибки. |
Позиция находящаяся в корзине.
Имя свойства | Тип | Описание |
---|---|---|
ArticleDetail | string | Артикул детали. |
BasketId | Guid | Идентификатор позиции в корзине. |
Count | int | Кол-во деталей. |
Country | string | Страна производитель. |
DeliveryDaysAverage | int? | Средний срок доставки (в днях). |
DeliveryDaysGuranteed | int? | Гарантированный срок доставки (в днях). |
Description | string | Оригинальное описание |
LotQuantity | int | Кол-во деталей в партии. |
Probability | decimal? | Вероятность доставки. |
CatalogName | string | Каталог. |
UserComment | string | Комментарий пользователя. |
Price | decimal | Цена в базовой валюте. |
RowVersion | byte[] | Версия позиции в корзине. Необходима для заказа. |
В этом примере показано, как вызвать метод GetItemsInBasket.
using (var client = new BasketServiceClient())
{
var login = "login";
var password = "password";
var itemsInBasket = client.GetItemsInBasket(login, password);
Console.WriteLine("Валюта: {0}", itemsInBasket.UserCurrencyCode);
foreach (var basketItemStub in itemsInBasket.ItemsInBasket)
{
Console.WriteLine("Идентификатор позиции в корзине: {0}", basketItemStub.BasketId);
Console.WriteLine("Артикул позиции в корзине: {0}", basketItemStub.ArticleDetail);
}
}
Метод ToOrder
Позволяет заказывать выбранные позиции из корзины.
Входные данные:
Имя параметра | Тип | Обязательный | Описание |
---|---|---|---|
login | string | Да | Логин пользователя. |
password | string | Да | Пароль пользователя. |
items | ItemToOrder[] | Да | Список позиций для заказа. |
Класс содержит идентификатор и версию позиции в корзине.
Имя свойства | Тип | Описание |
---|---|---|
BasketId | Guid | Идентификатор позиции в корзине. |
RowVersion | byte[] | Версия позиции в корзине. |
Результат:
Массив ItemToOrderResult[] возвращается при отправке позиции из корзины в заказ.
Имя свойства | Тип | Описание |
---|---|---|
BasketId | Guid | Идентификатор позиции в корзине. |
MotionDescriptionId | Guid? | Идентификатор заказа (необходим для дальнейшей проверки движения заказа). |
State | ItemToOrderState | Результат отправки из корзины в заказ. |
LogicalIdentifier | string | Текстовый номер заказа. |
Comment | string | Комментарий в случае ошибки при отправке из корзины в заказ. |
Результат отправки из корзины в заказ.
Значение | Описание |
---|---|
Error | Произошла ошибка. |
Success | Операция успешно выполнена. |
IsVersionMismatch | Позиция в корзине была изменена. |
UnconfirmedItem | Позиция устарела пока находилась в корзине. Найдены схожая позиция, которую надо подтвердить. |
ExpiredLifeTime | Время нахождения в корзине истекло. |
В этом примере показано, как вызвать метод ToOrder.
using (var client = new BasketServiceClient())
{
var login = "login";
var password = "password";
var itemsInBasket = client.GetItemsInBasket(login, password);
// Заказываем первую позицию в корзине
var itemToOrder = itemsInBasket.ItemsInBasket[0];
var orderResult = client.ToOrder(
login,
password,
new[] { new ItemToOrder { BasketId = itemToOrder.BasketId, RowVersion = itemToOrder.RowVersion } });
var orderItem = orderResult.Single();
Console.WriteLine("Идентификатор позиции в корзине: {0}", orderItem.BasketId);
Console.WriteLine("Идентификатор заказа: {0}", orderItem.MotionDescriptionId);
Console.WriteLine("Номер заказа: {0}", orderItem.LogicalIdentifier);
Console.WriteLine("Результат отправки в заказ: {0}", orderItem.State);
}
Метод Update
Обновление позиции в корзине.
Входные данные:
Имя параметра | Тип | Обязательный | Описание |
---|---|---|---|
login | string | Да | Логин пользователя. |
password | string | Да | Пароль пользователя. |
items | UpdateItem | Да | Позиция для обновления. |
Класс содержит идентификатор, версию позиции в корзине, кол-во и комментарий.
Имя свойства | Тип | Описание |
---|---|---|
BasketId | Guid | Идентификатор позиции в корзине. |
RowVersion | byte[] | Версия позиции в корзине. |
Count | int | Кол-во деталей. |
Comment | string | Комментарий к позиции. Может быть null. |
Результат:
Результат обновления позиции в корзине.
Имя свойства | Тип | Описание |
---|---|---|
State | UpdateItemState | Результат обновления корзины. |
Comment | string | Комментарий в случае ошибки. |
Результат обновления корзины.
Значение | Описание |
---|---|
Error | Произошла ошибка. |
Success | Операция успешно выполнена. |
IsVersionMismatch | Позиция в корзине была изменена. |
IncorrectData | Неверные входные данные. |
ItemNotFound | Позиция не найдена. |
В этом примере показано, как вызвать метод Update.
using (var client = new BasketServiceClient())
{
var login = "login";
var password = "password";
byte[] rowVersion = { 0, 0, 1 }; // версия позиции в корзине
Guid basketId = Guid.NewGuid(); // идентификатор позиции в корзине
var newCount = 10; // новое кол-во деталей для заказа
var newComment = "Новый комментарий к заказу";
var updateBasket = client.Update(login, password, new UpdateItem
{
BasketId = basketId,
Count = newCount,
UserComment = newComment,
RowVersion = rowVersion
});
Console.WriteLine("Идентификатор позиции в корзине: {0}", updateBasket.BasketId);
Console.WriteLine("Результат обновления: {0}", updateBasket.State);
}
Метод Delete
Удаление позиций из корзины.
Входные данные:
Имя параметра | Тип | Обязательный | Описание |
---|---|---|---|
login | string | Да | Логин пользователя. |
password | string | Да | Пароль пользователя. |
items | DeleteItem | Да | Позиция для обновления. |
Класс содержит идентификатор и версию позиции в корзине.
Имя свойства | Тип | Описание |
---|---|---|
BasketId | Guid | Идентификатор позиции в корзине. |
RowVersion | byte[] | Версия позиции в корзине. |
Результат:
Результат удаления позиций из корзины.
Имя свойства | Тип | Описание |
---|---|---|
State | DeleteItemState | Результат удаления из корзины. |
Comment | string | Комментарий в случае ошибки. |
BasketId | Guid | Идентификатор позиции в корзине. |
Результат удаления из корзины.
Значение | Описание |
---|---|
Error | Произошла ошибка. |
Success | Операция успешно выполнена. |
IsVersionMismatch | Позиция в корзине была изменена. |
GroupFail | Ошибка при массовом изменении позиций. |
IncorrectData | Неверные входные данные. |
ItemNotFound | Позиция не найдена. |
В этом примере показано, как вызвать метод Delete.
using (var client = new BasketServiceClient())
{
byte[] rowVersion = { 0, 0, 1 }; // версия позиции в корзине
Guid basketId = Guid.NewGuid(); // идентификатор позиции в корзине
var items = new[] { new DeleteItem { BasketId = basketId, RowVersion = rowVersion } };
var login = "login";
var login = "password";
var deleteFromBasket = client.Delete(login, password, items);
foreach (var basketOperationResultStub in deleteFromBasket)
{
Console.WriteLine("Идентификатор позиции в корзине: {0}", basketOperationResultStub.BasketId);
Console.WriteLine("Результат удаления: {0}", basketOperationResultStub.State);
}
}
Метод ApproveChanges
Подтверждение пользователем изменений, проведенных системой над позицией в корзине.
Входные данные:
Имя параметра | Тип | Обязательный | Описание |
---|---|---|---|
login | string | Да | Логин пользователя. |
password | string | Да | Пароль пользователя. |
basketId | Guid | Да | Уникальный идентификатор позиции в корзине. |
rowVersion | byte[] | Да | Версия позиции в корзине. |
Результат:
Результат подтверждения изменений в корзине.
Имя свойства | Тип | Описание |
---|---|---|
State | ApproveChangeState | Результат подтверждения позиции в корзине. |
Comment | string | Комментарий в случае ошибки. |
Результат подтверждения позиции в корзине.
Значение | Описание |
---|---|
Error | Произошла ошибка. |
Success | Операция успешно выполнена. |
IsVersionMismatch | Позиция в корзине была изменена. |
IncorrectData | Неверные входные данные. |
ItemNotFound | Позиция не найдена. |
В этом примере показано, как вызвать метод ApproveChanges.
using (var client = new BasketServiceClient())
{
var login = "login";
var password = "password";
var basketId = Guid.NewGuid();
var rowVersion = new[] { 0, 0, 1 };
var info = client.ApproveChanges(login, password, basketId, rowVersion);
if (info.State != ApproveChangeState.Success)
{
Console.WriteLine("Не удалось подтвердить позицию");
}
else
{
Console.WriteLine("Позиция успешно подтверждена");
}
}