| | | 1 | | namespace Services.ParserServices.HelpDictEnum |
| | | 2 | | { |
| | | 3 | | public static class YandexStatus |
| | | 4 | | { |
| | 1 | 5 | | public static Dictionary<string, string> OrderStatuses = new Dictionary<string, string> |
| | 1 | 6 | | { |
| | 1 | 7 | | { "PLACING", "Оформляется, подготовка к резервированию" }, |
| | 1 | 8 | | { "RESERVED", "Зарезервирован, но недооформлен" }, |
| | 1 | 9 | | { "UNPAID", "Оформлен, но еще не оплачен" }, |
| | 1 | 10 | | { "PROCESSING", "Находится в обработке" }, |
| | 1 | 11 | | { "DELIVERY", "Передан в службу доставки" }, |
| | 1 | 12 | | { "PICKUP", "Доставлен в пункт выдачи" }, |
| | 1 | 13 | | { "DELIVERED", "Получен покупателем" }, |
| | 1 | 14 | | { "CANCELLED", "Отменен" }, |
| | 1 | 15 | | { "PENDING", "Ожидает обработки со стороны продавца" }, |
| | 1 | 16 | | { "PARTIALLY_RETURNED", "Возвращен частично" }, |
| | 1 | 17 | | { "RETURNED", "Возвращен полностью" }, |
| | 1 | 18 | | { "UNKNOWN", "Неизвестный статус" } |
| | 1 | 19 | | }; |
| | | 20 | | |
| | | 21 | | /// <summary> |
| | | 22 | | /// Расшифровка substatus для заказов в статусе CANCELLED — причина отмены. |
| | | 23 | | /// Пишется в <c>OzonPostingCancellation.ReasonTitle</c> и показывается в тултипе на странице заказов. |
| | | 24 | | /// </summary> |
| | 1 | 25 | | public static readonly Dictionary<string, string> CancellationSubstatuses = new Dictionary<string, string> |
| | 1 | 26 | | { |
| | 1 | 27 | | { "RESERVATION_EXPIRED", "Покупатель не завершил оформление зарезервированного заказа" }, |
| | 1 | 28 | | { "USER_NOT_PAID", "Покупатель не оплатил заказ" }, |
| | 1 | 29 | | { "USER_UNREACHABLE", "Не удалось связаться с покупателем" }, |
| | 1 | 30 | | { "USER_CHANGED_MIND", "Покупатель отменил заказ по личным причинам" }, |
| | 1 | 31 | | { "USER_REFUSED_DELIVERY", "Покупателя не устроили условия доставки" }, |
| | 1 | 32 | | { "USER_REFUSED_PRODUCT", "Покупателю не подошёл товар" }, |
| | 1 | 33 | | { "USER_REFUSED_QUALITY", "Покупателя не устроило качество товара" }, |
| | 1 | 34 | | { "USER_WANTED_ANOTHER_PAYMENT_METHOD", "Покупатель хочет другой способ оплаты" }, |
| | 1 | 35 | | { "USER_WANTS_TO_CHANGE_ADDRESS", "Покупатель хочет изменить адрес доставки" }, |
| | 1 | 36 | | { "USER_WANTS_TO_CHANGE_DELIVERY_DATE", "Покупатель хочет изменить дату доставки" }, |
| | 1 | 37 | | { "USER_IDENTIFICATION_MISMATCH", "Документ покупателя не совпадает с данными в заказе" }, |
| | 1 | 38 | | { "SHOP_FAILED", "Магазин не может выполнить заказ" }, |
| | 1 | 39 | | { "REPLACING_ORDER", "Покупатель заменяет товар другим" }, |
| | 1 | 40 | | { "PICKUP_EXPIRED", "Закончился срок хранения заказа в пункте выдачи" }, |
| | 1 | 41 | | { "TOO_MANY_DELIVERY_DATE_CHANGES", "Заказ переносили слишком много раз" }, |
| | 1 | 42 | | { "TOO_LONG_DELIVERY", "Заказ доставляется слишком долго" }, |
| | 1 | 43 | | { "INCORRECT_PERSONAL_DATA", "Указаны неверные данные получателя" }, |
| | 1 | 44 | | { "PURCHASE_GROUP_THRESHOLD_NOT_REACHED_CANCELLED", "Не набралось нужное число покупок в групповой покупке" |
| | 1 | 45 | | { "TECHNICAL_ERROR", "Техническая ошибка на стороне Маркета" } |
| | 1 | 46 | | }; |
| | | 47 | | |
| | | 48 | | public static string GetStatus(string key) => |
| | 6 | 49 | | OrderStatuses.TryGetValue(key, out var value) ? value : key; |
| | | 50 | | |
| | | 51 | | /// <summary> |
| | | 52 | | /// Возвращает человекочитаемую причину отмены по substatus. |
| | | 53 | | /// Незнакомый код возвращается как есть — лучше показать код, чем ничего. |
| | | 54 | | /// </summary> |
| | | 55 | | public static string? GetCancellationReason(string? substatus) |
| | | 56 | | { |
| | 4 | 57 | | if (string.IsNullOrWhiteSpace(substatus)) |
| | 0 | 58 | | return null; |
| | | 59 | | |
| | 4 | 60 | | return CancellationSubstatuses.TryGetValue(substatus, out var value) ? value : substatus; |
| | | 61 | | } |
| | | 62 | | } |
| | | 63 | | } |