| | | 1 | | namespace Services.ParserServices.HelpDictEnum |
| | | 2 | | { |
| | | 3 | | public static class OzonStatus |
| | | 4 | | { |
| | 1 | 5 | | public static Dictionary<string, string> OrderStatuses = new Dictionary<string, string> |
| | 1 | 6 | | { |
| | 1 | 7 | | { "acceptance_in_progress", "Идёт приёмка" }, |
| | 1 | 8 | | { "arbitration", "Арбитраж" }, |
| | 1 | 9 | | { "awaiting_approve", "Ожидает подтверждения" }, |
| | 1 | 10 | | { "awaiting_deliver", "Ожидает отгрузки" }, |
| | 1 | 11 | | { "awaiting_packaging", "Ожидает упаковки" }, |
| | 1 | 12 | | { "awaiting_registration", "Ожидает регистрации" }, |
| | 1 | 13 | | { "awaiting_verification", "Создано" }, |
| | 1 | 14 | | { "cancelled", "Отменён" }, |
| | 1 | 15 | | { "cancelled_from_split_pending", "Отменён из-за разделения отправления" }, |
| | 1 | 16 | | { "client_arbitration", "Клиентский арбитраж доставки" }, |
| | 1 | 17 | | { "delivered", "Доставлен" }, |
| | 1 | 18 | | { "delivering", "Доставляется" }, |
| | 1 | 19 | | { "driver_pickup", "У водителя" }, |
| | 1 | 20 | | { "not_accepted", "Не принят на сортировочном центре" }, |
| | 1 | 21 | | { "sent_by_seller", "Отправлено продавцом" } |
| | 1 | 22 | | }; |
| | | 23 | | |
| | 1 | 24 | | public static Dictionary<string, string> PostingSubStatuses = new Dictionary<string, string> |
| | 1 | 25 | | { |
| | 1 | 26 | | { "posting_acceptance_in_progress", "Идёт приёмка" }, |
| | 1 | 27 | | { "posting_in_arbitration", "Арбитраж" }, |
| | 1 | 28 | | { "posting_created", "Создано" }, |
| | 1 | 29 | | { "posting_in_carriage", "В перевозке" }, |
| | 1 | 30 | | { "posting_not_in_carriage", "Не добавлено в перевозку" }, |
| | 1 | 31 | | { "posting_registered", "Зарегистрировано" }, |
| | 1 | 32 | | { "posting_transferring_to_delivery", "Передаётся в доставку" }, |
| | 1 | 33 | | { "posting_awaiting_passport_data", "Ожидает паспортных данных" }, |
| | 1 | 34 | | { "posting_awaiting_registration", "Ожидает регистрации" }, |
| | 1 | 35 | | { "posting_registration_error", "Ошибка регистрации" }, |
| | 1 | 36 | | { "posting_split_pending", "Создано (разделение отправления)" }, |
| | 1 | 37 | | { "posting_canceled", "Отменён" }, |
| | 1 | 38 | | { "posting_in_client_arbitration", "Клиентский арбитраж доставки" }, |
| | 1 | 39 | | { "posting_delivered", "Доставлено" }, |
| | 1 | 40 | | { "posting_received", "Получено" }, |
| | 1 | 41 | | { "posting_conditionally_delivered", "Условно доставлено" }, |
| | 1 | 42 | | { "posting_in_courier_service", "Курьер в пути" }, |
| | 1 | 43 | | { "posting_in_pickup_point", "В пункте выдачи" }, |
| | 1 | 44 | | { "posting_on_way_to_city", "В пути в ваш город" }, |
| | 1 | 45 | | { "posting_on_way_to_pickup_point", "В пути в пункт выдачи" }, |
| | 1 | 46 | | { "posting_returned_to_warehouse", "Возвращено на склад" }, |
| | 1 | 47 | | { "posting_transferred_to_courier_service", "Передаётся в службу доставки" }, |
| | 1 | 48 | | { "posting_driver_pick_up", "У водителя" }, |
| | 1 | 49 | | { "posting_not_in_sort_center", "Не принято на сортировочном центре" }, |
| | 1 | 50 | | { "ship_failed", "Сборка не удалась" }, |
| | 1 | 51 | | { "ship_pending", "Готовится к отгрузке" } |
| | 1 | 52 | | }; |
| | | 53 | | |
| | | 54 | | public static string GetSubStatus(string key) => |
| | 3 | 55 | | PostingSubStatuses.TryGetValue(key, out var value) ? value : key; |
| | | 56 | | |
| | | 57 | | /// <summary> |
| | | 58 | | /// Тип начисления для /v3/finance/transaction/list: filter.transaction_type. |
| | | 59 | | /// </summary> |
| | 1 | 60 | | public static Dictionary<string, string> FinanceTransactionTypes = new Dictionary<string, string> |
| | 1 | 61 | | { |
| | 1 | 62 | | { "all", "Все" }, |
| | 1 | 63 | | { "orders", "Заказы" }, |
| | 1 | 64 | | { "returns", "Возвраты и отмены" }, |
| | 1 | 65 | | { "services", "Сервисные сборы" }, |
| | 1 | 66 | | { "compensation", "Компенсация" }, |
| | 1 | 67 | | { "transferDelivery", "Стоимость доставки" }, |
| | 1 | 68 | | { "other", "Прочее" } |
| | 1 | 69 | | }; |
| | | 70 | | |
| | | 71 | | /// <summary> |
| | | 72 | | /// Типы операций для /v3/finance/transaction/list: filter.operation_type (часть значений из API). |
| | | 73 | | /// </summary> |
| | 1 | 74 | | public static Dictionary<string, string> FinanceOperationTypes = new Dictionary<string, string> |
| | 1 | 75 | | { |
| | 1 | 76 | | { "ClientReturnAgentOperation", "Получение возврата, отмены, невыкупа от покупателя" }, |
| | 1 | 77 | | { "MarketplaceMarketingActionCostOperation", "Услуги продвижения товаров" }, |
| | 1 | 78 | | { "MarketplaceSaleReviewsOperation", "Приобретение отзывов на платформе" }, |
| | 1 | 79 | | { "MarketplaceSellerCompensationOperation", "Прочие компенсации" }, |
| | 1 | 80 | | { "OperationAgentDeliveredToCustomer", "Доставка покупателю" }, |
| | 1 | 81 | | { "OperationAgentDeliveredToCustomerCanceled", "Доставка покупателю — исправленное начисление" }, |
| | 1 | 82 | | { "OperationAgentStornoDeliveredToCustomer", "Доставка покупателю — отмена начисления" }, |
| | 1 | 83 | | { "OperationClaim", "Начисление по претензии" }, |
| | 1 | 84 | | { "OperationCorrectionSeller", "Инвентаризация взаиморасчетов" }, |
| | 1 | 85 | | { "OperationDefectiveWriteOff", "Компенсация за повреждённый на складе товар" }, |
| | 1 | 86 | | { "OperationItemReturn", "Доставка и обработка возврата, отмены, невыкупа" }, |
| | 1 | 87 | | { "OperationLackWriteOff", "Компенсация за утерянный на складе товар" }, |
| | 1 | 88 | | { "OperationMarketplaceCrossDockServiceWriteOff", "Доставка товаров на склад Ozon (кросс-докинг)" }, |
| | 1 | 89 | | { "OperationMarketplaceServiceStorage", "Услуга размещения товаров на складе" }, |
| | 1 | 90 | | { "OperationSetOff", "Взаимозачёт с другими договорами контрагента" }, |
| | 1 | 91 | | { "MarketplaceSellerReexposureDeliveryReturnOperation", "Перечисление за доставку от покупателя" }, |
| | 1 | 92 | | { "OperationReturnGoodsFBSofRMS", "Доставка и обработка возврата, отмены, невыкупа" }, |
| | 1 | 93 | | { "ReturnAgentOperationRFBS", "Возврат перечисления за доставку покупателю" }, |
| | 1 | 94 | | { "ItemAgentServiceStarsMembership", "Вознаграждение за услугу «Звёздные товары»" }, |
| | 1 | 95 | | { "MarketplaceSellerShippingCompensationReturnOperation", "Компенсация перечисления за доставку" }, |
| | 1 | 96 | | { "OperationMarketplaceServicePremiumCashback", "Услуга продвижения Premium" }, |
| | 1 | 97 | | { "MarketplaceServicePremiumPromotion", "Услуга продвижения Premium, фиксированная комиссия" }, |
| | 1 | 98 | | { "MarketplaceRedistributionOfAcquiringOperation", "Оплата эквайринга" }, |
| | 1 | 99 | | { "MarketplaceReturnStorageServiceAtThePickupPointFbsItem", "Краткосрочное размещение возврата FBS" }, |
| | 1 | 100 | | { "MarketplaceReturnStorageServiceInTheWarehouseFbsItem", "Долгосрочное размещение возврата FBS" }, |
| | 1 | 101 | | { "MarketplaceServiceItemDeliveryKGT", "Доставка КГТ" }, |
| | 1 | 102 | | { "MarketplaceServiceItemDirectFlowLogistic", "Логистика" }, |
| | 1 | 103 | | { "MarketplaceServiceItemReturnFlowLogistic", "Обратная логистика" }, |
| | 1 | 104 | | { "MarketplaceServicePremiumCashbackIndividualPoints", "Услуга продвижения «Бонусы продавца»" }, |
| | 1 | 105 | | { "OperationMarketplaceWithHoldingForUndeliverableGoods", "Удержание за недовложение товара" }, |
| | 1 | 106 | | { "MarketplaceServiceItemDirectFlowLogisticVDC", "Логистика вРЦ" }, |
| | 1 | 107 | | { "MarketplaceServiceItemDropoffPPZ", "Услуга drop-off в пункте приёма заказов" }, |
| | 1 | 108 | | { "MarketplaceServicePremiumCashback", "Услуга продвижения Premium" }, |
| | 1 | 109 | | { "MarketplaceServiceItemRedistributionReturnsPVZ", "Перевыставление возвратов на пункте выдачи" }, |
| | 1 | 110 | | { "OperationElectronicServiceStencil", "Услуга «Трафареты»" }, |
| | 1 | 111 | | { "OperationElectronicServicesPromotionInSearch", "Услуга «Продвижение в поиске»" }, |
| | 1 | 112 | | { "OperationMarketplaceServiceItemElectronicServicesBrandShelf", "Услуга «Брендовая полка»" }, |
| | 1 | 113 | | { "OperationSubscriptionPremium", "Подписка Premium" }, |
| | 1 | 114 | | { "DefectRateDetailed", "Обработка операционных ошибок продавца" }, |
| | 1 | 115 | | { "MarketplaceServiceBrandCommission", "Продвижение бренда" } |
| | 1 | 116 | | }; |
| | | 117 | | |
| | | 118 | | /// <summary> |
| | | 119 | | /// Названия услуг (services.name) из API /v3/finance/transaction/list. |
| | | 120 | | /// </summary> |
| | 1 | 121 | | public static Dictionary<string, string> FinanceServiceNames = new Dictionary<string, string> |
| | 1 | 122 | | { |
| | 1 | 123 | | { "MarketplaceNotDeliveredCostItem", "Возврат невостребованного товара от покупателя на склад" }, |
| | 1 | 124 | | { "MarketplaceReturnAfterDeliveryCostItem", "Возврат от покупателя на склад после доставки" }, |
| | 1 | 125 | | { "MarketplaceDeliveryCostItem", "Доставка товара до покупателя" }, |
| | 1 | 126 | | { "MarketplaceSaleReviewsItem", "Приобретение отзывов на платформе" }, |
| | 1 | 127 | | { "ItemAdvertisementForSupplierLogistic", "Доставка товаров на склад Ozon — кросс-докинг" }, |
| | 1 | 128 | | { "OperationMarketplaceServiceStorage", "Размещения товаров" }, |
| | 1 | 129 | | { "MarketplaceMarketingActionCostItem", "Продвижение товаров" }, |
| | 1 | 130 | | { "MarketplaceServiceItemInstallment", "Продвижение и продажа в рассрочку" }, |
| | 1 | 131 | | { "MarketplaceServiceItemMarkingItems", "Обязательная маркировка товаров" }, |
| | 1 | 132 | | { "MarketplaceServiceItemFlexiblePaymentSchedule", "Гибкий график выплат" }, |
| | 1 | 133 | | { "MarketplaceServiceItemReturnFromStock", "Комплектация товаров для вывоза продавцом" }, |
| | 1 | 134 | | { "ItemAdvertisementForSupplierLogisticSeller", "Транспортно-экспедиционные услуги" }, |
| | 1 | 135 | | { "ItemAgentServiceStarsMembership", "Вознаграждение за услугу «Звёздные товары»" }, |
| | 1 | 136 | | { "MarketplaceServiceItemDelivToCustomer", "Последняя миля" }, |
| | 1 | 137 | | { "MarketplaceServiceItemRedistributionLastMileCourier", "Последняя миля (курьер — перераспределение)" }, |
| | 1 | 138 | | { "MarketplaceServiceItemDirectFlowTrans", "Магистраль" }, |
| | 1 | 139 | | { "MarketplaceServiceItemDropoffFF", "Обработка отправления" }, |
| | 1 | 140 | | { "MarketplaceServiceItemDropoffPVZ", "Обработка отправления" }, |
| | 1 | 141 | | { "MarketplaceServiceItemDropoffSC", "Обработка отправления" }, |
| | 1 | 142 | | { "MarketplaceServiceItemFulfillment", "Сборка заказа" }, |
| | 1 | 143 | | { "MarketplaceServiceItemPickup", "Pick-up: выезд за отправлениями по адресу продавца" }, |
| | 1 | 144 | | { "MarketplaceServiceItemReturnAfterDelivToCustomer", "Обработка возврата" }, |
| | 1 | 145 | | { "MarketplaceServiceItemReturnFlowTrans", "Обратная магистраль" }, |
| | 1 | 146 | | { "MarketplaceServiceItemReturnNotDelivToCustomer", "Обработка отмен" }, |
| | 1 | 147 | | { "MarketplaceServiceItemReturnPartGoodsCustomer", "Обработка невыкупа" }, |
| | 1 | 148 | | { "MarketplaceRedistributionOfAcquiringOperation", "Оплата эквайринга" }, |
| | 1 | 149 | | { "MarketplaceReturnStorageServiceAtThePickupPointFbsItem", "Краткосрочное размещение возврата FBS" }, |
| | 1 | 150 | | { "MarketplaceReturnStorageServiceInTheWarehouseFbsItem", "Долгосрочное размещение возврата FBS" }, |
| | 1 | 151 | | { "MarketplaceServiceItemDeliveryKGT", "Доставка крупногабаритного товара (КГТ)" }, |
| | 1 | 152 | | { "MarketplaceServiceItemDirectFlowLogistic", "Логистика" }, |
| | 1 | 153 | | { "MarketplaceServiceItemReturnFlowLogistic", "Обратная логистика" }, |
| | 1 | 154 | | { "MarketplaceServicePremiumCashbackIndividualPoints", "Услуга продвижения «Бонусы продавца»" }, |
| | 1 | 155 | | { "MarketplaceServicePremiumPromotion", "Услуга продвижение Premium, фиксированная комиссия" }, |
| | 1 | 156 | | { "OperationMarketplaceWithHoldingForUndeliverableGoods", "Удержание за недовложение товара" }, |
| | 1 | 157 | | { "MarketplaceServiceItemDropoffPPZ", "Drop-off в пункте приёма заказов" }, |
| | 1 | 158 | | { "MarketplaceServiceItemRedistributionReturnsPVZ", "Перевыставление возвратов на ПВЗ" }, |
| | 1 | 159 | | { "OperationMarketplaceAgencyFeeAggregator3PLGlobal", "Тарификация агентской услуги Agregator 3PL Global" }, |
| | 1 | 160 | | { "MarketplaceServiceItemDirectFlowLogisticVDC", "Логистика вРЦ" }, |
| | 1 | 161 | | { "MarketplaceServiceItemRedistributionDropOffApvz", "Перевыставление drop-off АПВЗ" } |
| | 1 | 162 | | }; |
| | | 163 | | |
| | | 164 | | public static string GetFinanceTransactionType(string key) => |
| | 0 | 165 | | FinanceTransactionTypes.TryGetValue(key, out var value) ? value : key; |
| | | 166 | | |
| | | 167 | | public static string GetFinanceOperationType(string key) => |
| | 0 | 168 | | FinanceOperationTypes.TryGetValue(key, out var value) ? value : key; |
| | | 169 | | |
| | | 170 | | public static string GetFinanceServiceName(string? key) => |
| | 0 | 171 | | string.IsNullOrEmpty(key) ? "" : (FinanceServiceNames.TryGetValue(key, out var value) ? value : key); |
| | | 172 | | |
| | | 173 | | /// <summary> |
| | | 174 | | /// Статусы возврата (visual_status_name / sys_name) из API /v1/returns/list. |
| | | 175 | | /// </summary> |
| | 1 | 176 | | public static Dictionary<string, string> ReturnVisualStatuses = new() |
| | 1 | 177 | | { |
| | 1 | 178 | | { "DisputeOpened", "Открыт спор с покупателем" }, |
| | 1 | 179 | | { "OnSellerApproval", "На согласовании у продавца" }, |
| | 1 | 180 | | { "ArrivedAtReturnPlace", "В пункте выдачи" }, |
| | 1 | 181 | | { "OnSellerClarification", "На уточнении у продавца" }, |
| | 1 | 182 | | { "OnSellerClarificationAfterPartialCompensation", "На уточнении у продавца после частичной компенсации" }, |
| | 1 | 183 | | { "OfferedPartialCompensation", "Предложена частичная компенсация" }, |
| | 1 | 184 | | { "ReturnMoneyApproved", "Одобрен возврат денег" }, |
| | 1 | 185 | | { "PartialCompensationReturned", "Вернули часть денег" }, |
| | 1 | 186 | | { "CancelledDisputeNotOpen", "Возврат отклонён, спор не открыт" }, |
| | 1 | 187 | | { "Rejected", "Заявка отклонена" }, |
| | 1 | 188 | | { "CrmRejected", "Заявка отклонена Ozon" }, |
| | 1 | 189 | | { "Cancelled", "Заявка отменена" }, |
| | 1 | 190 | | { "Approved", "Заявка одобрена продавцом" }, |
| | 1 | 191 | | { "ApprovedByOzon", "Заявка одобрена Ozon" }, |
| | 1 | 192 | | { "ReceivedBySeller", "Продавец получил возврат" }, |
| | 1 | 193 | | { "MovingToSeller", "Возврат на пути к продавцу" }, |
| | 1 | 194 | | { "ReturningToSellerByCourier", "Курьер везёт возврат продавцу" }, |
| | 1 | 195 | | { "Utilizing", "На утилизации" }, |
| | 1 | 196 | | { "Utilized", "Утилизирован" }, |
| | 1 | 197 | | { "MoneyReturned", "Покупателю вернули всю сумму" }, |
| | 1 | 198 | | { "PartialCompensationInProcess", "Одобрен частичный возврат денег" }, |
| | 1 | 199 | | { "DisputeYouOpened", "Продавец открыл спор" }, |
| | 1 | 200 | | { "CompensationRejected", "Отказано в компенсации" }, |
| | 1 | 201 | | { "DisputeOpening", "Обращение в поддержку отправлено" }, |
| | 1 | 202 | | { "CompensationOffered", "Ожидает вашего решения по компенсации" }, |
| | 1 | 203 | | { "WaitingCompensation", "Ожидает компенсации" }, |
| | 1 | 204 | | { "SendingError", "Ошибка при отправке обращения в поддержку" }, |
| | 1 | 205 | | { "CompensationRejectedBySla", "Истёк срок решения" }, |
| | 1 | 206 | | { "CompensationRejectedBySeller", "Продавец отказался от компенсации" }, |
| | 1 | 207 | | { "MovingToOzon", "Едет на склад Ozon" }, |
| | 1 | 208 | | { "ReturnedToOzon", "На складе Ozon" }, |
| | 1 | 209 | | { "MoneyReturnedBySystem", "Быстрый возврат" }, |
| | 1 | 210 | | { "WaitingShipment", "Ожидает отправки" } |
| | 1 | 211 | | }; |
| | | 212 | | |
| | | 213 | | /// <summary> |
| | | 214 | | /// Статусы компенсации (compensation_status sys_name) из API /v1/returns/list. |
| | | 215 | | /// </summary> |
| | 1 | 216 | | public static Dictionary<string, string> ReturnCompensationStatuses = new() |
| | 1 | 217 | | { |
| | 1 | 218 | | { "Sent", "Отправлена" }, |
| | 1 | 219 | | { "Received", "Получена" }, |
| | 1 | 220 | | { "Canceled", "Отменена" }, |
| | 1 | 221 | | { "DecompensationSent", "Проведена декомпенсация" } |
| | 1 | 222 | | }; |
| | | 223 | | |
| | | 224 | | /// <summary> |
| | | 225 | | /// Типы возврата (return type) из API /v1/returns/list. |
| | | 226 | | /// </summary> |
| | 1 | 227 | | public static Dictionary<string, string> ReturnTypes = new() |
| | 1 | 228 | | { |
| | 1 | 229 | | { "Cancellation", "Отмена" }, |
| | 1 | 230 | | { "FullReturn", "Полный возврат" }, |
| | 1 | 231 | | { "PartialReturn", "Частичный возврат" }, |
| | 1 | 232 | | { "ClientReturn", "Возврат от покупателя" }, |
| | 1 | 233 | | { "Unknown", "Неизвестно" } |
| | 1 | 234 | | }; |
| | | 235 | | |
| | | 236 | | public static string GetReturnVisualStatusName(string? sysName) => |
| | 0 | 237 | | string.IsNullOrEmpty(sysName) ? "" : (ReturnVisualStatuses.TryGetValue(sysName, out var v) ? v : sysName); |
| | | 238 | | |
| | | 239 | | public static string GetReturnCompensationStatusName(string? sysName) => |
| | 0 | 240 | | string.IsNullOrEmpty(sysName) ? "" : (ReturnCompensationStatuses.TryGetValue(sysName, out var v) ? v : sysNa |
| | | 241 | | |
| | | 242 | | public static string GetReturnTypeName(string? type) => |
| | 0 | 243 | | string.IsNullOrEmpty(type) ? "" : (ReturnTypes.TryGetValue(type, out var v) ? v : type); |
| | | 244 | | } |
| | | 245 | | } |