구간별 배송비의 종료값이 구간에 포함되지 않아 경계값이 무료배송으로 새고, 상품 옵션의 g/cm³ 저장값을 정책의 kg/L 로 환산하지 않아 금액이 1000배로 청구되던 문제를 수정한다. - 구간 매칭을 종료값 오름차순 사다리로 교체 — 시작값은 표시 전용이 되어 기존 저장 데이터의 두 형태 모두에서 정확히 계산된다 - 단위 환산을 배송비 계산 한 지점으로 모으고, 부피무게와 실무게를 같은 kg 단위로 비교하도록 교정 - 계산이 조용히 0원이 되는 설정(구간 미등록·단위값/기준금액 누락· 중간 구간 무제한·계산 API 폴백 0원)을 저장 시점에 차단하고, 런타임 잔여 경로에는 경고 로그를 남긴다 - 연속성 규칙을 정책 타입별로 분리해 소수 구간(2.5kg) 저장을 허용 - 상품 옵션 무게/부피 응답 왕복, 주문 총 무게/부피 실값 기록
1267 lines
58 KiB
PHP
1267 lines
58 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Ecommerce Module Messages
|
|
*
|
|
* Controller response messages
|
|
*/
|
|
return [
|
|
// Locale-specific suffix appended to names on copy (used by ProductNoticeTemplateRepository, etc.)
|
|
'copy_suffix' => ' (Copy)',
|
|
|
|
'categories' => [
|
|
'list_retrieved' => 'Category list retrieved successfully.',
|
|
'retrieved' => 'Category information retrieved successfully.',
|
|
'not_found' => 'Category not found.',
|
|
'created' => 'Category has been created.',
|
|
'updated' => 'Category has been updated.',
|
|
'deleted' => 'Category has been deleted.',
|
|
'has_products' => '(:count linked products)',
|
|
'fetch_success' => 'Category list retrieved successfully.',
|
|
'fetch_failed' => 'Failed to retrieve the category list.',
|
|
'status_changed' => 'Category status has been changed.',
|
|
'order_updated' => 'Category order has been changed.',
|
|
],
|
|
'settings' => [
|
|
'fetch_success' => 'Settings retrieved successfully.',
|
|
'fetch_failed' => 'Failed to retrieve settings.',
|
|
'save_success' => 'Settings have been saved.',
|
|
'save_failed' => 'Failed to save settings.',
|
|
'save_error' => 'An error occurred while saving settings.',
|
|
'update_success' => 'Settings have been updated.',
|
|
'update_failed' => 'Failed to update settings.',
|
|
'update_error' => 'An error occurred while updating settings.',
|
|
'cache_clear_success' => 'Settings cache has been cleared.',
|
|
'cache_clear_error' => 'An error occurred while clearing the settings cache.',
|
|
],
|
|
'payment' => [
|
|
'provider_not_found' => 'Payment method not found.',
|
|
'client_config_success' => 'Payment configuration retrieved successfully.',
|
|
],
|
|
'products' => [
|
|
'not_found' => 'Product not found.',
|
|
'created' => 'Product has been created.',
|
|
'updated' => 'Product has been updated.',
|
|
'deleted' => 'Product has been deleted.',
|
|
'fetch_success' => 'Product information retrieved successfully.',
|
|
'fetch_failed' => 'Failed to retrieve product information.',
|
|
'create_failed' => 'Failed to create product.',
|
|
'update_failed' => 'Failed to update product.',
|
|
'delete_failed' => 'Failed to delete product.',
|
|
'can_delete_checked' => 'Checked if product can be deleted.',
|
|
'can_delete_check_failed' => 'Failed to check if product can be deleted.',
|
|
'has_order_history' => 'This product has :count order(s) and cannot be deleted.',
|
|
'bulk_updated' => ':count products have been updated.',
|
|
'bulk_price_updated' => 'Prices of :count products have been updated.',
|
|
'bulk_stock_updated' => 'Stock of :count products have been updated.',
|
|
'bulk_price_update_failed' => 'Failed to update product prices.',
|
|
'bulk_stock_update_failed' => 'Failed to update product stock.',
|
|
'stock_mismatch' => 'Product stock (:product_stock) does not match option stock sum (:option_stock_sum).',
|
|
'bulk_update_success' => ':products_count products and :options_count options have been updated.',
|
|
'bulk_update_failed' => 'Bulk update failed.',
|
|
'code_generated' => 'Product code has been generated.',
|
|
'code_generation_failed' => 'Failed to generate product code.',
|
|
'logs_fetch_success' => 'Product activity logs retrieved successfully.',
|
|
'logs_fetch_failed' => 'Failed to retrieve product activity logs.',
|
|
'options_fetch_success' => 'Product options retrieved successfully.',
|
|
'options_fetch_failed' => 'Failed to retrieve product options.',
|
|
],
|
|
'presets' => [
|
|
'created' => 'Search preset has been saved.',
|
|
'updated' => 'Search preset has been updated.',
|
|
'deleted' => 'Search preset has been deleted.',
|
|
'name_exists' => 'A preset with the same name already exists.',
|
|
'not_owner' => 'You do not have permission to modify this preset.',
|
|
'fetch_success' => 'Search preset list retrieved successfully.',
|
|
],
|
|
'product_image' => [
|
|
'not_found' => 'Product image not found.',
|
|
],
|
|
'product_images' => [
|
|
'uploaded' => 'Image has been uploaded.',
|
|
'deleted' => 'Image has been deleted.',
|
|
'reordered' => 'Image order has been changed.',
|
|
'thumbnail_set' => 'Thumbnail has been set.',
|
|
'not_found' => 'Product image not found.',
|
|
],
|
|
'category_images' => [
|
|
'uploaded' => 'Image has been uploaded.',
|
|
'deleted' => 'Image has been deleted.',
|
|
'reordered' => 'Image order has been changed.',
|
|
'not_found' => 'Category image not found.',
|
|
],
|
|
'brands' => [
|
|
'list_retrieved' => 'Brand list retrieved successfully.',
|
|
'retrieved' => 'Brand information retrieved successfully.',
|
|
'not_found' => 'Brand not found.',
|
|
'created' => 'Brand has been created.',
|
|
'updated' => 'Brand has been updated.',
|
|
'deleted' => 'Brand has been deleted.',
|
|
'status_changed' => 'Brand status has been changed.',
|
|
'has_products' => '(:count linked products)',
|
|
],
|
|
'options' => [
|
|
'bulk_price_updated' => 'Prices of :count options have been updated.',
|
|
'bulk_price_update_failed' => 'Failed to update option prices.',
|
|
'bulk_stock_updated' => 'Stock of :count options have been updated.',
|
|
'bulk_stock_update_failed' => 'Failed to update option stock.',
|
|
'bulk_update_success' => ':count options have been updated.',
|
|
'bulk_update_failed' => 'Option bulk update failed.',
|
|
'has_order_history' => 'Options with order history cannot be deleted.',
|
|
'bulk_updated' => ':count option(s) have been updated.',
|
|
],
|
|
|
|
// Order (singular) - User-facing order messages
|
|
'order' => [
|
|
// 주문 생성
|
|
'created' => 'Your order has been placed.',
|
|
'create_failed' => 'Failed to create order.',
|
|
|
|
// 주문 상태
|
|
'status_changed' => 'Order status has been changed.',
|
|
'cancelled' => 'Order has been cancelled.',
|
|
'cancel_failed' => 'Failed to cancel order.',
|
|
|
|
// 자동 취소
|
|
'auto_cancel_expired_reason' => 'Automatically cancelled due to payment deadline expiration.',
|
|
|
|
// 결제
|
|
'payment_pending' => 'Awaiting payment.',
|
|
'payment_completed' => 'Payment has been completed.',
|
|
'payment_failed' => 'Payment has failed.',
|
|
|
|
// 재고
|
|
'stock_insufficient' => 'Insufficient stock.',
|
|
'stock_restored' => 'Stock has been restored.',
|
|
|
|
// 검증
|
|
'not_found' => 'Order not found.',
|
|
'invalid_status' => 'Invalid order status.',
|
|
'amount_mismatch' => 'Payment amount does not match.',
|
|
'estimate_refund_success' => 'Refund estimate retrieved successfully.',
|
|
'payment_cancelled' => 'Payment has been cancelled.',
|
|
'confirmed' => 'Purchase has been confirmed.',
|
|
'cannot_confirm' => 'Cannot confirm purchase in current status.',
|
|
],
|
|
|
|
// Coupon Messages
|
|
'coupons' => [
|
|
'list_retrieved' => 'Coupon list retrieved successfully.',
|
|
'retrieved' => 'Coupon information retrieved successfully.',
|
|
'not_found' => 'Coupon not found.',
|
|
'created' => 'Coupon has been created.',
|
|
'updated' => 'Coupon has been updated.',
|
|
'deleted' => 'Coupon has been deleted.',
|
|
'status_changed' => 'Issue status of :count coupons has been updated.',
|
|
'direct_issued' => 'Coupon issued to :issued member(s).',
|
|
'direct_issued_with_skip' => 'Coupon issued to :issued member(s). (:skipped excluded for not meeting issue conditions)',
|
|
'issue_cancelled' => 'Coupon issuance has been cancelled.',
|
|
'issues_retrieved' => 'Coupon issue history retrieved successfully.',
|
|
'has_issues' => '(:count issues)',
|
|
|
|
// Formatting (for Coupon model accessors)
|
|
'benefit_fixed_format' => ':amount off',
|
|
'benefit_rate_format' => ':rate% off',
|
|
'benefit_rate_with_max_format' => ':rate% off (max :max)',
|
|
'valid_days_format' => ':days days from issue date',
|
|
'issue_period_unlimited' => 'Always available',
|
|
'unlimited' => 'Unlimited',
|
|
],
|
|
|
|
// Order Messages
|
|
'orders' => [
|
|
'list_retrieved' => 'Order list retrieved successfully.',
|
|
'retrieved' => 'Order information retrieved successfully.',
|
|
'not_found' => 'Order not found.',
|
|
'updated' => 'Order has been updated.',
|
|
'deleted' => 'Order has been deleted.',
|
|
'bulk_updated' => ':count orders have been updated.',
|
|
'bulk_status_updated' => 'Status of :count orders has been updated.',
|
|
'bulk_shipping_updated' => 'Shipping information of :count orders has been updated.',
|
|
'bulk_update_failed' => 'Bulk update failed.',
|
|
'status_changed' => 'Order status has been changed to :status.',
|
|
'update_failed' => 'Failed to update the order.',
|
|
'delete_failed' => 'Failed to delete the order.',
|
|
'shipping_registered' => 'Shipping information has been registered.',
|
|
'export_success' => 'Excel file has been created.',
|
|
'export_failed' => 'Failed to create Excel file.',
|
|
'export_no_data' => 'No orders to export.',
|
|
'cannot_cancel' => 'This order cannot be cancelled.',
|
|
'cannot_refund' => 'This order cannot be refunded.',
|
|
'statistics_retrieved' => 'Order statistics retrieved successfully.',
|
|
'option_status_changed' => 'Status of :count options has been changed.',
|
|
'option_status_change_failed' => 'Failed to change option status.',
|
|
'shipping_address_updated' => 'Shipping address has been updated.',
|
|
'cannot_modify_address' => 'Shipping address can only be changed before shipping.',
|
|
'logs_fetch_success' => 'Order process logs retrieved successfully.',
|
|
'logs_fetch_failed' => 'Failed to retrieve order process logs.',
|
|
'log_status_changed' => 'Order status changed: :old → :new',
|
|
'log_updated' => 'Order information has been updated.',
|
|
'log_bulk_updated' => ':count orders have been bulk updated.',
|
|
'email_sent' => 'Email has been sent successfully.',
|
|
'email_send_failed' => 'Failed to send email.',
|
|
'email_subject' => '[:app_name] Regarding Order :order_number',
|
|
'fetch_success' => 'Order information retrieved successfully.',
|
|
'fetch_failed' => 'Failed to retrieve order information.',
|
|
'cancelled' => 'Order has been cancelled.',
|
|
'cancel_failed' => 'Failed to cancel order.',
|
|
'estimate_refund_success' => 'Refund estimate retrieved successfully.',
|
|
'estimate_refund_failed' => 'Failed to calculate refund estimate.',
|
|
'guest_password_reset_success' => 'Guest lookup password has been reset.',
|
|
'guest_password_reset_failed' => 'Failed to reset guest lookup password.',
|
|
'guest_password_reset_not_guest' => 'Only guest orders can have their lookup password reset.',
|
|
'deposit_confirmed' => 'Deposit confirmed and the order has been marked as paid.',
|
|
'deposit_confirm_failed' => 'Failed to confirm the deposit.',
|
|
'deposit_amount_mismatch' => 'The deposit amount does not match the amount due.',
|
|
'deposit_not_dbank' => 'Only bank transfer (manual deposit) orders can be confirmed.',
|
|
'deposit_not_pending' => 'Only unpaid orders can have their deposit confirmed.',
|
|
'payment_name_summary' => ':name and :count more',
|
|
'deposit' => [
|
|
'amount' => 'Deposit amount',
|
|
'depositor_name' => 'Depositor name',
|
|
],
|
|
],
|
|
|
|
// Product Label Messages
|
|
'labels' => [
|
|
'fetch_success' => 'Label list retrieved successfully.',
|
|
'retrieved' => 'Label information retrieved successfully.',
|
|
'not_found' => 'Label not found.',
|
|
'created' => 'Label has been created.',
|
|
'updated' => 'Label has been updated.',
|
|
'deleted' => 'Label has been deleted.',
|
|
'toggle_success' => 'Label status has been changed.',
|
|
// Controller message keys
|
|
'create_success' => 'Label has been created.',
|
|
'update_success' => 'Label has been updated.',
|
|
'delete_success' => 'Label has been deleted.',
|
|
'status_changed' => 'Label status has been changed.',
|
|
'update_failed' => 'Failed to update label.',
|
|
'delete_failed' => 'Failed to delete label.',
|
|
],
|
|
|
|
// Currency units (for price formatting)
|
|
'currency' => [
|
|
'suffix' => [
|
|
'KRW' => '',
|
|
'JPY' => '',
|
|
'CNY' => '',
|
|
'USD' => '',
|
|
'EUR' => '',
|
|
],
|
|
'prefix' => [
|
|
'KRW' => '₩',
|
|
'JPY' => '¥',
|
|
'CNY' => '元',
|
|
'USD' => '$',
|
|
'EUR' => '€',
|
|
],
|
|
],
|
|
|
|
// Cart Messages
|
|
'cart' => [
|
|
'list_retrieved' => 'Cart items retrieved successfully.',
|
|
'added' => 'Item has been added to cart.',
|
|
'bulk_added' => ':count items have been added to cart.',
|
|
'quantity_updated' => 'Quantity has been updated.',
|
|
'option_changed' => 'Option has been changed.',
|
|
'deleted' => 'Item has been removed from cart.',
|
|
'bulk_deleted' => ':count items have been removed.',
|
|
'merged' => ':count items have been merged to cart.',
|
|
'empty' => 'Cart is empty.',
|
|
'cart_key_issued' => 'Cart key has been issued.',
|
|
'item_count' => 'You have :count items in your cart.',
|
|
'key_issued' => 'Cart key has been issued.',
|
|
'key_issue_failed' => 'Failed to issue cart key.',
|
|
'fetched' => 'Cart items retrieved successfully.',
|
|
'fetch_failed' => 'Failed to retrieve cart items.',
|
|
'add_failed' => 'Failed to add item to cart.',
|
|
'reorder_added' => 'Items from your past order have been added to the cart.',
|
|
'reorder_failed' => 'Reorder failed.',
|
|
'reorder_option_not_found' => 'Product option no longer exists.',
|
|
'unknown_product' => 'Unknown product',
|
|
'update_failed' => 'Failed to update cart.',
|
|
'delete_failed' => 'Failed to delete cart item.',
|
|
'deleted_multiple' => ':deleted_count items have been removed.',
|
|
'deleted_all' => 'Cart has been cleared. :deleted_count items removed.',
|
|
'login_required' => 'Login is required.',
|
|
'cart_key_required' => 'Cart key is required.',
|
|
'invalid_cart_key' => 'Invalid cart key format.',
|
|
'merge_failed' => 'Failed to merge cart.',
|
|
'count_fetched' => 'Cart count retrieved successfully.',
|
|
|
|
// Order Summary UI i18n
|
|
'order_summary' => 'Order Summary',
|
|
'selected_items' => 'Selected Items',
|
|
'selected_count' => ':selected / :total items',
|
|
'product_amount' => 'Product Amount',
|
|
'taxable_amount' => 'Taxable Amount',
|
|
'tax_free_amount' => 'Tax-free Amount',
|
|
'discount_total' => 'Discount',
|
|
'coupon_discount' => 'Coupon Discount',
|
|
'code_discount' => 'Discount Code',
|
|
'order_discount' => 'Order Discount',
|
|
'shipping_fee' => 'Shipping',
|
|
'base_shipping' => 'Base Shipping',
|
|
'extra_shipping' => 'Extra Shipping',
|
|
'shipping_discount' => 'Shipping Discount',
|
|
'payment_amount' => 'Payment Amount',
|
|
'expected_mileage' => 'Mileage Earned',
|
|
'total' => 'Total',
|
|
'select_items_message' => 'Please select items',
|
|
'checkout' => 'Checkout',
|
|
'continue_shopping' => 'Continue Shopping',
|
|
],
|
|
|
|
// Checkout Messages
|
|
'checkout' => [
|
|
'created' => 'Checkout has been created.',
|
|
'fetched' => 'Checkout information retrieved successfully.',
|
|
'updated' => 'Checkout has been updated.',
|
|
'deleted' => 'Checkout has been deleted.',
|
|
'extended' => 'Checkout validity has been extended.',
|
|
'create_failed' => 'Failed to create checkout.',
|
|
'fetch_failed' => 'Failed to retrieve checkout.',
|
|
'update_failed' => 'Failed to update checkout.',
|
|
'delete_failed' => 'Failed to delete checkout.',
|
|
'extend_failed' => 'Failed to extend checkout validity.',
|
|
'free_shipping' => 'Free shipping',
|
|
],
|
|
|
|
// User Coupon Messages (마이페이지/체크아웃용)
|
|
'coupon' => [
|
|
'list_fetched' => 'Coupon list retrieved successfully.',
|
|
'list_fetch_failed' => 'Failed to retrieve coupon list.',
|
|
'available_fetched' => 'Available coupons retrieved successfully.',
|
|
'available_fetch_failed' => 'Failed to retrieve available coupons.',
|
|
'download_success' => 'Coupon downloaded successfully.',
|
|
'download_failed' => 'Failed to download coupon.',
|
|
'downloadable_fetched' => 'Downloadable coupons fetched.',
|
|
'downloadable_fetch_failed' => 'Failed to fetch downloadable coupons.',
|
|
'already_downloaded' => 'Coupon already downloaded.',
|
|
'download_limit_exceeded' => 'Download limit exceeded.',
|
|
'not_downloadable' => 'This coupon is not available for download.',
|
|
'quantity_exhausted' => 'Coupon quantity exhausted.',
|
|
'issue_period_expired' => 'Coupon issue period has ended.',
|
|
'validity_not_configured' => 'This coupon cannot be issued because its validity period is not configured. Please contact the administrator.',
|
|
// Coupon validation errors (DTO/ValidationError)
|
|
'expired' => 'This coupon has expired.',
|
|
'min_amount_not_met' => 'Minimum order amount not met.',
|
|
'not_combinable' => 'This coupon cannot be used with other coupons.',
|
|
'invalid_target' => 'This coupon is not applicable to the selected products.',
|
|
'already_used' => 'This coupon has already been used.',
|
|
'not_found' => 'Coupon not found.',
|
|
'per_user_limit_exceeded' => 'You have exceeded the usage limit for this coupon.',
|
|
],
|
|
|
|
// User Mileage Messages (마이페이지/체크아웃용)
|
|
'mileage' => [
|
|
'balance_fetched' => 'Mileage balance retrieved successfully.',
|
|
'balance_fetch_failed' => 'Failed to retrieve mileage balance.',
|
|
'max_usable_fetched' => 'Maximum usable mileage retrieved successfully.',
|
|
'max_usable_fetch_failed' => 'Failed to retrieve usable mileage.',
|
|
'list_retrieved' => 'Mileage history retrieved successfully.',
|
|
'transaction_created' => 'Mileage transaction processed successfully.',
|
|
'transaction_updated' => 'Mileage transaction updated successfully.',
|
|
'expiry_extended' => 'Mileage expiry extended successfully.',
|
|
'linked_retrieved' => 'Linked transactions retrieved successfully.',
|
|
'not_found' => 'Mileage transaction not found.',
|
|
'validation_failed' => 'Failed to process mileage.',
|
|
'not_earning' => 'Only earning transactions can be edited.',
|
|
'expiry_not_editable' => 'Expiry cannot be changed for already-expired or fully-used earnings.',
|
|
'expiry_before_earned' => 'Expiry cannot be earlier than the earned date.',
|
|
],
|
|
|
|
// Temporary Order Messages
|
|
'temp_order' => [
|
|
'created' => 'Order form has been created.',
|
|
'retrieved' => 'Order form retrieved successfully.',
|
|
'updated' => 'Order form has been updated.',
|
|
'deleted' => 'Order form has been deleted.',
|
|
'expired' => 'Order form has expired. Please try again.',
|
|
'extended' => 'Order form validity has been extended.',
|
|
'not_found' => 'Order form not found.',
|
|
'cleanup_completed' => ':count expired order forms have been cleaned up.',
|
|
],
|
|
|
|
// Product Notice Template Messages
|
|
'notice_templates' => [
|
|
'fetch_success' => 'Product notice template list retrieved successfully.',
|
|
'created' => 'Product notice template has been created.',
|
|
'updated' => 'Product notice template has been updated.',
|
|
'deleted' => 'Product notice template has been deleted.',
|
|
'copied' => 'Product notice template has been copied.',
|
|
'activated' => 'Product notice template has been activated.',
|
|
'deactivated' => 'Product notice template has been deactivated.',
|
|
'not_found' => 'Product notice template not found.',
|
|
],
|
|
|
|
// Common Info Messages
|
|
'common_infos' => [
|
|
'fetch_success' => 'Common info list retrieved successfully.',
|
|
'created' => 'Common info has been created.',
|
|
'updated' => 'Common info has been updated.',
|
|
'deleted' => 'Common info has been deleted.',
|
|
'not_found' => 'Common info not found.',
|
|
'activated' => 'Common info has been activated.',
|
|
'deactivated' => 'Common info has been deactivated.',
|
|
],
|
|
|
|
// Shipping Carrier Messages
|
|
'shipping_carriers' => [
|
|
'list_retrieved' => 'Shipping carrier list retrieved successfully.',
|
|
'retrieved' => 'Shipping carrier retrieved successfully.',
|
|
'not_found' => 'Shipping carrier not found.',
|
|
'created' => 'Shipping carrier has been created.',
|
|
'updated' => 'Shipping carrier has been updated.',
|
|
'deleted' => 'Shipping carrier has been deleted.',
|
|
'toggled' => 'Shipping carrier status has been changed.',
|
|
'status_changed' => 'Shipping carrier status has been changed.',
|
|
'delete_failed_in_use' => 'Cannot delete a carrier in use by orders. We recommend deactivating it instead.',
|
|
'type_domestic' => 'Domestic',
|
|
'type_international' => 'International',
|
|
|
|
// Shipping Settings Tab - Carrier Management Section
|
|
'section_title' => 'Carrier Management',
|
|
'add_button' => 'Add Carrier',
|
|
'empty' => 'No carriers registered.',
|
|
'columns' => [
|
|
'code' => 'Code',
|
|
'name' => 'Name',
|
|
'type' => 'Type',
|
|
'tracking_url' => 'Tracking URL',
|
|
'is_active' => 'Active',
|
|
'actions' => 'Actions',
|
|
],
|
|
'form' => [
|
|
'code' => 'Carrier Code',
|
|
'code_placeholder' => 'Lowercase letters, numbers, hyphens (e.g., cj, fedex)',
|
|
'name' => 'Carrier Name',
|
|
'type' => 'Type',
|
|
'type_domestic' => 'Domestic',
|
|
'type_international' => 'International',
|
|
'tracking_url' => 'Tracking URL',
|
|
'tracking_url_placeholder' => 'https://example.com/track?no={tracking_number}',
|
|
'tracking_url_help' => '{tracking_number} will be replaced with the tracking number.',
|
|
'is_active' => 'Active',
|
|
'sort_order' => 'Sort Order',
|
|
'cancel' => 'Cancel',
|
|
'save' => 'Save',
|
|
],
|
|
'confirm_delete' => 'Are you sure you want to delete this carrier?',
|
|
],
|
|
|
|
// Claim Reason Messages
|
|
'claim_reasons' => [
|
|
'list_retrieved' => 'Claim reason list retrieved successfully.',
|
|
'retrieved' => 'Claim reason retrieved successfully.',
|
|
'not_found' => 'Claim reason not found.',
|
|
'created' => 'Claim reason has been created.',
|
|
'updated' => 'Claim reason has been updated.',
|
|
'deleted' => 'Claim reason has been deleted.',
|
|
'toggled' => 'Claim reason status has been changed.',
|
|
'delete_failed_in_use' => 'Cannot delete a reason in use by order cancellations. We recommend deactivating it instead.',
|
|
],
|
|
|
|
// Shipping Policy Messages
|
|
'shipping_policy' => [
|
|
'list_retrieved' => 'Shipping policy list retrieved successfully.',
|
|
'retrieved' => 'Shipping policy retrieved successfully.',
|
|
'not_found' => 'Shipping policy not found.',
|
|
'created' => 'Shipping policy has been created.',
|
|
'updated' => 'Shipping policy has been updated.',
|
|
'deleted' => 'Shipping policy has been deleted.',
|
|
'toggled' => 'Shipping policy status has been changed.',
|
|
'copied' => 'Shipping policy has been copied.',
|
|
'bulk_deleted' => ':count shipping policies have been deleted.',
|
|
'active_list_retrieved' => 'Active shipping policy list retrieved successfully.',
|
|
'bulk_toggled' => ':count shipping policies status have been changed.',
|
|
'set_default_success' => 'Default shipping policy has been set.',
|
|
'api_test_done' => 'Calculation API test call completed.',
|
|
'fee_summary' => [
|
|
'free' => 'Free Shipping',
|
|
'fixed' => 'Shipping: :fee',
|
|
'conditional' => 'Under :threshold: :fee / Over :threshold: Free',
|
|
'api' => 'External API (Real-time calculation)',
|
|
'per_quantity' => ':fee per :unit items',
|
|
'per_weight' => ':fee per :unit kg',
|
|
'per_volume' => ':fee per :unit L',
|
|
'per_volume_weight' => ':fee per :unit kg',
|
|
'per_amount' => ':fee per :unit',
|
|
// Tier boundary units for range policies (derived from the charge policy, not stored data)
|
|
'range_unit' => [
|
|
'quantity' => ' items',
|
|
'weight' => ' kg',
|
|
'volume' => ' L',
|
|
],
|
|
],
|
|
'fee_details' => [
|
|
'base_fee' => 'Shipping Fee',
|
|
'free_threshold' => 'Free Shipping Threshold',
|
|
'range_header' => 'Tiered Shipping Fees',
|
|
'extra_fee' => 'Extra Fee (Remote Areas)',
|
|
],
|
|
],
|
|
|
|
// Admin UI i18n (for layouts)
|
|
'admin' => [
|
|
'order' => [
|
|
'title' => 'Order Management',
|
|
'description' => 'Manage customer orders.',
|
|
|
|
// Action buttons
|
|
'action' => [
|
|
'excel_download' => 'Download Excel',
|
|
'reset' => 'Reset',
|
|
'save_preset' => 'Save Preset',
|
|
'search' => 'Search',
|
|
'search_by_orderer' => 'Search by Orderer',
|
|
'view_detail' => 'View Detail',
|
|
'view_member' => 'View Member',
|
|
],
|
|
|
|
// Batch change
|
|
'batch' => [
|
|
'batch_change' => 'Batch Change',
|
|
'carrier' => 'Carrier',
|
|
'selected_count' => ':count selected',
|
|
'shipping_process' => 'Process Shipping',
|
|
'status_change' => 'Change Status',
|
|
'tracking_number' => 'Tracking Number',
|
|
],
|
|
|
|
// Bulk action
|
|
'bulk' => [
|
|
'apply' => 'Apply',
|
|
'apply_full' => 'Apply All',
|
|
'courier_placeholder' => 'Select Carrier',
|
|
'selected_count' => ':count selected',
|
|
'shipping_label' => 'Shipping Info',
|
|
'status_placeholder' => 'Select Status',
|
|
'success' => 'Bulk action completed successfully.',
|
|
'tracking_placeholder' => 'Enter Tracking Number',
|
|
],
|
|
|
|
// Claim status
|
|
'claim' => [
|
|
'exchange' => [
|
|
'approved' => 'Exchange Approved',
|
|
'completed' => 'Exchange Completed',
|
|
'hold' => 'Exchange Hold',
|
|
'payment_pending' => 'Additional Payment Pending',
|
|
'pickup_completed' => 'Pickup Completed',
|
|
'pickup_in_progress' => 'Pickup In Progress',
|
|
'rejected' => 'Exchange Rejected',
|
|
'requested' => 'Exchange Requested',
|
|
'reshipping' => 'Reshipping',
|
|
'reshipping_completed' => 'Reshipping Completed',
|
|
],
|
|
'refund' => [
|
|
'approved' => 'Refund Approved',
|
|
'completed' => 'Refund Completed',
|
|
'hold' => 'Refund Hold',
|
|
'rejected' => 'Refund Rejected',
|
|
'requested' => 'Refund Requested',
|
|
],
|
|
'return' => [
|
|
'approved' => 'Return Approved',
|
|
'completed' => 'Return Completed',
|
|
'hold' => 'Return Hold',
|
|
'payment_pending' => 'Additional Payment Pending',
|
|
'pickup_completed' => 'Pickup Completed',
|
|
'pickup_in_progress' => 'Pickup In Progress',
|
|
'rejected' => 'Return Rejected',
|
|
'requested' => 'Return Requested',
|
|
],
|
|
],
|
|
|
|
// Columns
|
|
'column' => [
|
|
'country' => 'Country',
|
|
'delivery_method' => 'Delivery Method',
|
|
'order_amount' => 'Order Amount',
|
|
'order_date' => 'Order Date',
|
|
'order_number' => 'Order Number',
|
|
'order_status' => 'Order Status',
|
|
'orderer' => 'Orderer',
|
|
'payment_method' => 'Payment Method',
|
|
'product' => 'Product Info',
|
|
],
|
|
|
|
// DataGrid
|
|
'datagrid' => [
|
|
'total_count' => 'Total :count',
|
|
],
|
|
|
|
// Detail page
|
|
'detail' => [
|
|
'title' => 'Order Detail',
|
|
'description' => 'View order details.',
|
|
'order_date' => 'Order Date',
|
|
'order_number' => 'Order Number',
|
|
'status' => 'Order Status',
|
|
|
|
// Claim history
|
|
'claim_history' => [
|
|
'title' => 'Claim History',
|
|
'items_count' => ':count items',
|
|
'per_page' => ':count per page',
|
|
'view_exchange_management' => 'View Exchange Management',
|
|
'view_refund_management' => 'View Refund Management',
|
|
'view_return_management' => 'View Return Management',
|
|
'tabs' => [
|
|
'exchange' => 'Exchange',
|
|
'refund' => 'Refund',
|
|
'return' => 'Return',
|
|
],
|
|
'columns' => [
|
|
'amount_info' => 'Amount Info',
|
|
'exchange_number' => 'Exchange No.',
|
|
'exchange_reason' => 'Exchange Reason',
|
|
'exchange_status' => 'Exchange Status',
|
|
'product_info' => 'Product Info',
|
|
'quantity' => 'Qty',
|
|
'refund_method' => 'Refund Method',
|
|
'refund_number' => 'Refund No.',
|
|
'refund_reason' => 'Refund Reason',
|
|
'refund_status' => 'Refund Status',
|
|
'request_date' => 'Request Date',
|
|
'return_number' => 'Return No.',
|
|
'return_reason' => 'Return Reason',
|
|
'return_status' => 'Return Status',
|
|
],
|
|
'amount' => [
|
|
'actual_price' => 'Actual Price',
|
|
'actual_refund' => 'Actual Refund',
|
|
'difference' => 'Difference',
|
|
'expected_refund' => 'Expected Refund',
|
|
'original_order' => 'Original Amount',
|
|
'return_request' => 'Return Request Amount',
|
|
],
|
|
'delivery' => [
|
|
'carrier' => 'Carrier',
|
|
'pickup_fee' => 'Pickup Fee',
|
|
'round_trip_fee' => 'Round Trip Fee',
|
|
'tracking_number' => 'Tracking Number',
|
|
],
|
|
'method' => [
|
|
'deposit' => 'Bank Deposit',
|
|
'direct_refund' => 'Direct Refund',
|
|
],
|
|
'product' => [
|
|
'color' => 'Color',
|
|
'exchange_product' => 'Exchange Product',
|
|
'original_product' => 'Original Product',
|
|
'same_product' => 'Same Product',
|
|
'size' => 'Size',
|
|
],
|
|
'reason' => [
|
|
'customer_fault' => 'Customer Request',
|
|
'defective_product' => 'Defective',
|
|
'seller_fault' => 'Seller Fault',
|
|
'simple_change' => 'Simple Change',
|
|
'size_exchange' => 'Size Exchange',
|
|
'wrong_color' => 'Wrong Color',
|
|
],
|
|
'sort' => [
|
|
'label' => 'Sort',
|
|
'request_date_desc' => 'Latest Request',
|
|
],
|
|
'status' => [
|
|
'exchange_completed' => 'Exchange Completed',
|
|
'exchange_shipping' => 'Exchange Shipping',
|
|
'refund_hold' => 'Refund Hold',
|
|
'refund_rejected' => 'Refund Rejected',
|
|
'return_completed' => 'Return Completed',
|
|
'return_pickup_in_progress' => 'Return Pickup In Progress',
|
|
],
|
|
],
|
|
|
|
// Modal
|
|
'modal' => [
|
|
'batch_change' => [
|
|
'cancel' => 'Cancel',
|
|
'carrier_label' => 'Carrier',
|
|
'confirm' => 'Confirm',
|
|
'confirm_prefix' => 'Are you sure you want to batch change',
|
|
'confirm_suffix' => 'orders?',
|
|
'title' => 'Batch Change',
|
|
'tracking_label' => 'Tracking Number',
|
|
],
|
|
'send_email' => [
|
|
'cancel' => 'Cancel',
|
|
'char_count' => ':count chars',
|
|
'description' => 'Send email to customer.',
|
|
'email' => 'Email',
|
|
'email_placeholder' => 'Enter email address',
|
|
'message' => 'Message',
|
|
'message_placeholder' => 'Enter email message',
|
|
'send' => 'Send',
|
|
'title' => 'Send Email',
|
|
],
|
|
'send_sms' => [
|
|
'cancel' => 'Cancel',
|
|
'char_count' => ':count chars',
|
|
'description' => 'Send SMS to customer.',
|
|
'message' => 'Message',
|
|
'message_placeholder' => 'Enter SMS message',
|
|
'phone' => 'Phone',
|
|
'phone_placeholder' => 'Enter phone number',
|
|
'plugin_label' => 'SMS Plugin',
|
|
'send' => 'Send',
|
|
'title' => 'Send SMS',
|
|
],
|
|
'cancel' => [
|
|
'title' => 'Cancel Order',
|
|
'description' => 'Cancel the order for selected products. Please review the estimated refund amount before proceeding.',
|
|
'cancel_pg' => 'Cancel PG payment as well',
|
|
'cancel_pg_hint' => 'If unchecked, only the order status will be changed without PG cancellation.',
|
|
'reason' => 'Cancel Reason',
|
|
'reason_placeholder' => 'Select a cancel reason',
|
|
'reason_detail' => 'Detailed Reason',
|
|
'reason_detail_placeholder' => 'Enter detailed reason (optional)',
|
|
'refund_estimate' => 'Estimated Refund',
|
|
'refund_loading' => 'Calculating refund amount...',
|
|
'refund_product_amount' => 'Product Refund',
|
|
'refund_shipping_diff' => 'Shipping Difference',
|
|
'refund_discount_diff' => 'Discount Adjustment',
|
|
'refund_points' => 'Points Refund',
|
|
'refund_total' => 'Total Estimated Refund',
|
|
'confirm' => 'Cancel Order',
|
|
'close' => 'Close',
|
|
'product_name' => 'Product',
|
|
'unit_price' => 'Unit Price',
|
|
'cancel_quantity' => 'Cancel Qty',
|
|
'current_status' => 'Status',
|
|
'pg_error_title' => 'PG Refund Error',
|
|
'validation_error_title' => 'Validation Error',
|
|
'cancel_success' => 'Order has been cancelled.',
|
|
'cancel_failed' => 'Failed to cancel order.',
|
|
'estimate_failed' => 'Failed to calculate estimated refund.',
|
|
],
|
|
],
|
|
|
|
// Order info
|
|
'order_info' => [
|
|
'title' => 'Order Information',
|
|
'order_products' => 'Order Products',
|
|
'save' => 'Save',
|
|
'select_all' => 'Select All',
|
|
'selected_count' => ':count selected',
|
|
'batch_change' => 'Batch Change',
|
|
'carrier' => 'Carrier',
|
|
'change_status' => 'Change Status',
|
|
'tracking_number' => 'Tracking Number',
|
|
'admin_memo' => [
|
|
'placeholder' => 'Enter admin memo',
|
|
'title' => 'Admin Memo',
|
|
],
|
|
'columns' => [
|
|
'actual_price' => 'Actual Price',
|
|
'delivery' => 'Delivery Info',
|
|
'discount' => 'Discount',
|
|
'points' => 'Points',
|
|
'price' => 'Price',
|
|
'product_info' => 'Product Info',
|
|
'quantity' => 'Qty',
|
|
'status' => 'Status',
|
|
'subtotal' => 'Subtotal',
|
|
],
|
|
'orderer_info' => [
|
|
'email' => 'Email',
|
|
'name' => 'Name',
|
|
'phone' => 'Phone',
|
|
'send' => 'Send',
|
|
'tel' => 'Tel',
|
|
'title' => 'Orderer Info',
|
|
],
|
|
'receiver_info' => [
|
|
'address' => 'Address',
|
|
'address_detail' => 'Address Detail',
|
|
'delivery_message' => 'Delivery Message',
|
|
'find_zipcode' => 'Find Zipcode',
|
|
'name' => 'Recipient',
|
|
'phone' => 'Phone',
|
|
'send' => 'Send',
|
|
'tel' => 'Tel',
|
|
'title' => 'Recipient Info',
|
|
'zipcode' => 'Zipcode',
|
|
],
|
|
'summary' => [
|
|
'total' => 'Total',
|
|
],
|
|
],
|
|
|
|
// Payment info
|
|
'payment_info' => [
|
|
'title' => 'Payment Information',
|
|
'coupon' => 'Coupon Discount',
|
|
'deposit_used' => 'Deposit Used',
|
|
'discount_code' => 'Discount Code',
|
|
'due_date' => 'Due Date',
|
|
'event' => 'Event',
|
|
'expected_points' => 'Expected Points',
|
|
'final_amount' => 'Final Amount',
|
|
'mileage_used' => 'Mileage Used',
|
|
'order_amount' => 'Order Amount',
|
|
'payment_date' => 'Payment Date',
|
|
'payment_method' => 'Payment Method',
|
|
'payment_request_date' => 'Payment Request Date',
|
|
'referral' => 'Referral',
|
|
'shipping_fee' => 'Shipping Fee',
|
|
'taxable_amount' => 'Taxable Amount',
|
|
'total_discount' => 'Total Discount',
|
|
'vat' => 'VAT',
|
|
'method' => [
|
|
'bank_transfer' => 'Bank Transfer',
|
|
'credit_card' => 'Credit Card',
|
|
'virtual_account' => 'Virtual Account',
|
|
],
|
|
'status' => [
|
|
'completed' => 'Completed',
|
|
'pending' => 'Pending',
|
|
],
|
|
'type' => [
|
|
'additional_shipping' => 'Additional Shipping',
|
|
'admin_manual' => 'Admin Adjustment',
|
|
'original' => 'Original Order',
|
|
],
|
|
],
|
|
|
|
// Activity log
|
|
'activity_log' => [
|
|
'title' => 'Activity Log',
|
|
'items_count' => ':count items',
|
|
'per_page_option' => ':count items',
|
|
'sort' => [
|
|
'date_desc' => 'Latest',
|
|
'date_asc' => 'Oldest',
|
|
'label' => 'Sort',
|
|
],
|
|
],
|
|
],
|
|
|
|
// Excel download
|
|
'excel' => [
|
|
'title' => 'Download Excel',
|
|
'description' => 'Download order list as Excel file.',
|
|
'download' => 'Download',
|
|
'download_success' => 'Excel file has been created.',
|
|
'option_search' => 'Search Results',
|
|
'option_search_desc' => 'Download orders matching current search criteria.',
|
|
'option_selected' => 'Selected Items',
|
|
'option_selected_desc' => 'Download selected orders only.',
|
|
],
|
|
|
|
// Filter
|
|
'filter' => [
|
|
'category' => 'Category',
|
|
'category_level' => 'Level :level',
|
|
'category_placeholder' => 'Select Category',
|
|
'claim_exchange' => 'Exchange Status',
|
|
'claim_exchange_options' => [
|
|
'approved' => 'Approved',
|
|
'completed' => 'Completed',
|
|
'hold' => 'Hold',
|
|
'payment_pending' => 'Payment Pending',
|
|
'pickup_completed' => 'Pickup Completed',
|
|
'pickup_in_progress' => 'Pickup In Progress',
|
|
'rejected' => 'Rejected',
|
|
'requested' => 'Requested',
|
|
'reshipping' => 'Reshipping',
|
|
'reshipping_completed' => 'Reshipping Completed',
|
|
],
|
|
'claim_mode' => 'Claim Mode',
|
|
'claim_module_link' => 'Go to Claim Module',
|
|
'claim_refund' => 'Refund Status',
|
|
'claim_refund_options' => [
|
|
'approved' => 'Approved',
|
|
'completed' => 'Completed',
|
|
'hold' => 'Hold',
|
|
'rejected' => 'Rejected',
|
|
'requested' => 'Requested',
|
|
],
|
|
'claim_return' => 'Return Status',
|
|
'claim_return_options' => [
|
|
'approved' => 'Approved',
|
|
'completed' => 'Completed',
|
|
'hold' => 'Hold',
|
|
'payment_pending' => 'Payment Pending',
|
|
'pickup_completed' => 'Pickup Completed',
|
|
'pickup_in_progress' => 'Pickup In Progress',
|
|
'rejected' => 'Rejected',
|
|
'requested' => 'Requested',
|
|
],
|
|
'claim_status' => 'Claim Status',
|
|
'country' => 'Country',
|
|
'country_options' => [
|
|
'cn' => 'China',
|
|
'jp' => 'Japan',
|
|
'kr' => 'South Korea',
|
|
'ru' => 'Russia',
|
|
'tw' => 'Taiwan',
|
|
'us' => 'United States',
|
|
],
|
|
'currency' => 'Currency',
|
|
'date' => 'Date',
|
|
'date_quick' => [
|
|
'1_month' => '1 Month',
|
|
'1_year' => '1 Year',
|
|
'3_months' => '3 Months',
|
|
'6_months' => '6 Months',
|
|
'today' => 'Today',
|
|
'week' => '1 Week',
|
|
],
|
|
'date_type' => [
|
|
'order_date' => 'Order Date',
|
|
'payment_date' => 'Payment Date',
|
|
'shipping_date' => 'Shipping Date',
|
|
],
|
|
'delivery_method' => 'Delivery Method',
|
|
'delivery_options' => [
|
|
'direct' => 'Direct Delivery',
|
|
'mail' => 'Registered Mail',
|
|
'parcel' => 'Parcel',
|
|
'pickup' => 'Pickup',
|
|
'quick' => 'Quick Delivery',
|
|
],
|
|
'detail_title' => 'Advanced Search',
|
|
'device' => 'Device',
|
|
'device_options' => [
|
|
'mobile' => 'Mobile',
|
|
'pc' => 'PC',
|
|
],
|
|
'end_date' => 'End Date',
|
|
'max_price' => 'Max Price',
|
|
'min_price' => 'Min Price',
|
|
'order_status' => 'Order Status',
|
|
'order_status_options' => [
|
|
'cancelled' => 'Cancelled',
|
|
'confirmed' => 'Confirmed',
|
|
'delivered' => 'Delivered',
|
|
'payment_complete' => 'Payment Complete',
|
|
'payment_pending' => 'Payment Pending',
|
|
'preparing' => 'Preparing',
|
|
'shipping' => 'Shipping',
|
|
'shipping_hold' => 'Shipping Hold',
|
|
'shipping_ready' => 'Shipping Ready',
|
|
'waiting' => 'Order Received',
|
|
],
|
|
'payment_method' => 'Payment Method',
|
|
'payment_options' => [
|
|
'bank' => 'Bank Transfer',
|
|
'card' => 'Credit Card',
|
|
'kakao' => 'Kakao Pay',
|
|
'naver' => 'Naver Pay',
|
|
'toss' => 'Toss Pay',
|
|
'virtual' => 'Virtual Account',
|
|
],
|
|
'price' => 'Order Amount',
|
|
'start_date' => 'Start Date',
|
|
],
|
|
|
|
// Message
|
|
'message' => [
|
|
'no_orders' => 'No orders found.',
|
|
],
|
|
|
|
// Mobile
|
|
'mobile' => [
|
|
'country' => 'Country',
|
|
'orderer' => 'Orderer',
|
|
'payment_delivery' => 'Payment/Delivery',
|
|
],
|
|
|
|
// Modal
|
|
'modal' => [
|
|
'excel_download' => [
|
|
'cancel' => 'Cancel',
|
|
'description' => 'Download order list as Excel file.',
|
|
'download' => 'Download',
|
|
'option_search' => 'Search Results',
|
|
'option_search_desc' => 'Download orders matching current search criteria.',
|
|
'option_selected' => 'Selected Items',
|
|
'option_selected_desc' => 'Download selected orders only.',
|
|
'title' => 'Download Excel',
|
|
],
|
|
'preset_delete' => [
|
|
'confirm' => 'Are you sure you want to delete ":name" preset?',
|
|
'title' => 'Delete Preset',
|
|
],
|
|
'preset_edit' => [
|
|
'title' => 'Edit Preset',
|
|
],
|
|
'preset_manage' => [
|
|
'add_new' => 'Add New Preset',
|
|
'add_preset' => 'Add Preset',
|
|
'description' => 'Save and manage frequently used search conditions.',
|
|
'empty' => 'No saved presets.',
|
|
'title' => 'Manage Presets',
|
|
],
|
|
'preset_save' => [
|
|
'description' => 'Save current search conditions as a preset.',
|
|
'placeholder' => 'Enter preset name',
|
|
'save' => 'Save',
|
|
'title' => 'Save Preset',
|
|
],
|
|
],
|
|
|
|
// Preset
|
|
'preset' => [
|
|
'applied' => ':name preset has been applied.',
|
|
'bank_pending' => 'Bank Transfer Pending',
|
|
'label' => 'Presets',
|
|
'more' => 'More',
|
|
'save_title' => 'Save Preset',
|
|
'today_payment' => 'Today Payment Complete',
|
|
],
|
|
|
|
// Search
|
|
'search' => [
|
|
'column_select' => 'Select Columns',
|
|
'detail_search' => 'Advanced Search',
|
|
'edit_search' => 'Edit Search',
|
|
'field' => [
|
|
'all' => 'All',
|
|
'email' => 'Email',
|
|
'order_number' => 'Order Number',
|
|
'orderer_name' => 'Orderer Name',
|
|
'phone' => 'Phone',
|
|
'product_name' => 'Product Name',
|
|
'receiver_name' => 'Recipient Name',
|
|
],
|
|
'placeholder' => 'Enter search keyword',
|
|
'preset_manage' => 'Manage Presets',
|
|
],
|
|
|
|
// Sort
|
|
'sort' => [
|
|
'highest_amount' => 'Highest Amount',
|
|
'latest_order' => 'Latest Order',
|
|
'latest_payment' => 'Latest Payment',
|
|
'latest_shipping' => 'Latest Shipping',
|
|
'lowest_amount' => 'Lowest Amount',
|
|
'oldest_order' => 'Oldest Order',
|
|
'oldest_payment' => 'Oldest Payment',
|
|
'oldest_shipping' => 'Oldest Shipping',
|
|
],
|
|
|
|
// Status
|
|
'status' => [
|
|
'cancelled' => 'Cancelled',
|
|
'confirmed' => 'Confirmed',
|
|
'delivered' => 'Delivered',
|
|
'payment_complete' => 'Payment Complete',
|
|
'payment_pending' => 'Payment Pending',
|
|
'preparing' => 'Preparing',
|
|
'shipping' => 'Shipping',
|
|
'shipping_hold' => 'Shipping Hold',
|
|
'shipping_ready' => 'Shipping Ready',
|
|
'waiting' => 'Order Received',
|
|
],
|
|
|
|
// Table
|
|
'table' => [
|
|
'columns' => [
|
|
'actions' => 'Actions',
|
|
'country' => 'Country',
|
|
'delivery_method' => 'Delivery Method',
|
|
'order_amount' => 'Order Amount',
|
|
'order_date' => 'Order Date',
|
|
'order_number' => 'Order Number',
|
|
'order_status' => 'Order Status',
|
|
'orderer' => 'Orderer',
|
|
'payment_method' => 'Payment Method',
|
|
'product' => 'Product Info',
|
|
],
|
|
'excel_download' => 'Download Excel',
|
|
'per_page' => ':count per page',
|
|
'sort' => [
|
|
'amount_high' => 'Highest Amount',
|
|
'amount_low' => 'Lowest Amount',
|
|
'latest' => 'Latest',
|
|
'oldest' => 'Oldest',
|
|
],
|
|
'total_count' => 'Total :count',
|
|
],
|
|
],
|
|
'shipping_policy' => [
|
|
'table' => [
|
|
'column' => [
|
|
'is_default' => 'Default',
|
|
'is_default_header' => 'Default',
|
|
],
|
|
],
|
|
'modal' => [
|
|
'set_default' => [
|
|
'title' => 'Set Default Shipping Policy',
|
|
'message' => 'Set :name as default shipping policy?',
|
|
'confirm' => 'Set',
|
|
'cancel' => 'Cancel',
|
|
'success' => 'Default shipping policy has been set.',
|
|
],
|
|
],
|
|
],
|
|
'product' => [
|
|
'bulk' => [
|
|
'no_selection' => 'No items selected.',
|
|
'update_success' => ':products products and :options options have been updated.',
|
|
'update_error' => 'Bulk update failed.',
|
|
'option_update_success' => ':count options have been updated.',
|
|
'option_update_error' => 'Option bulk update failed.',
|
|
],
|
|
'messages' => [
|
|
'bulk_summary_sales_status' => 'Sales status: :status',
|
|
'bulk_summary_display_status' => 'Display status: :status',
|
|
'bulk_summary_name_changed' => 'Name changed',
|
|
'bulk_summary_list_price' => 'List price: :price',
|
|
'bulk_summary_selling_price' => 'Selling price: :price',
|
|
'bulk_summary_inline_modified' => 'Inline modified',
|
|
'bulk_summary_bulk_applied' => 'Bulk changes applied',
|
|
'bulk_summary_price_adjustment' => 'Price adjustment: :method :value',
|
|
'bulk_summary_stock' => 'Stock: :method :value',
|
|
'bulk_summary_option_name' => 'Option name: :name',
|
|
'bulk_summary_sku' => 'SKU: :sku',
|
|
'bulk_summary_selected' => 'Selected',
|
|
],
|
|
],
|
|
],
|
|
|
|
// Activity Log Messages
|
|
'logs' => [
|
|
'product_created' => 'Product Created',
|
|
'product_deleted' => 'Product Deleted',
|
|
'description_changed' => 'Description changed: :old_length chars → :new_length chars',
|
|
'category_changed' => 'Category changed',
|
|
'options_changed' => 'Product options changed',
|
|
'additional_options_changed' => 'Additional options changed',
|
|
'images_added' => ':count image(s) added',
|
|
'images_removed' => ':count image(s) removed',
|
|
'set' => 'set',
|
|
'removed' => 'removed',
|
|
'changed' => 'changed',
|
|
],
|
|
|
|
// Stock messages
|
|
'stock' => [
|
|
'insufficient' => 'Insufficient stock for :product_name (:option_name). (Available: :available, Requested: :requested)',
|
|
'option_not_found' => 'Product option not found. (Option ID: :option_id)',
|
|
],
|
|
|
|
// Product Review Messages
|
|
'reviews' => [
|
|
'fetch_success' => 'Reviews retrieved successfully.',
|
|
'fetch_failed' => 'Failed to retrieve reviews.',
|
|
'created' => 'Review has been created.',
|
|
'create_failed' => 'Failed to create review.',
|
|
'can_write_checked' => 'Review eligibility checked.',
|
|
'can_write_check_failed' => 'Failed to check review eligibility.',
|
|
'cannot_write' => 'Cannot write a review. (Reason: :reason)',
|
|
'forbidden' => 'You do not have permission.',
|
|
'deleted' => 'Review has been deleted.',
|
|
'delete_failed' => 'Failed to delete review.',
|
|
'updated' => 'Review has been updated.',
|
|
'update_failed' => 'Failed to update review.',
|
|
'reply_saved' => 'Reply has been saved.',
|
|
'reply_save_failed' => 'Failed to save reply.',
|
|
'reply_deleted' => 'Reply has been deleted.',
|
|
'reply_delete_failed' => 'Failed to delete reply.',
|
|
'bulk_deleted' => 'Selected reviews have been deleted.',
|
|
'bulk_updated' => 'Status of selected reviews has been changed.',
|
|
'bulk_failed' => 'Bulk operation failed.',
|
|
'image_uploaded' => 'Review image has been uploaded.',
|
|
'image_upload_failed' => 'Failed to upload review image.',
|
|
'image_deleted' => 'Review image has been deleted.',
|
|
'image_delete_failed' => 'Failed to delete review image.',
|
|
'image_not_found' => 'Image not found.',
|
|
],
|
|
|
|
'wishlist' => [
|
|
'added' => 'Product has been added to wishlist.',
|
|
'removed' => 'Product has been removed from wishlist.',
|
|
'retrieved' => 'Wishlist retrieved successfully.',
|
|
'not_found' => 'Wishlist item not found.',
|
|
'toggle_failed' => 'Failed to toggle wishlist.',
|
|
'retrieve_failed' => 'Failed to retrieve wishlist.',
|
|
'delete_failed' => 'Failed to delete wishlist item.',
|
|
],
|
|
|
|
'extra_fee_template' => [
|
|
'list_retrieved' => 'Extra fee templates retrieved successfully.',
|
|
'retrieved' => 'Extra fee template retrieved successfully.',
|
|
'not_found' => 'Extra fee template not found.',
|
|
'created' => 'Extra fee template has been created.',
|
|
'updated' => 'Extra fee template has been updated.',
|
|
'deleted' => 'Extra fee template has been deleted.',
|
|
'toggled' => 'Extra fee template status has been changed.',
|
|
'bulk_deleted' => ':count extra fee templates have been deleted.',
|
|
'bulk_toggled' => ':count extra fee templates status have been changed.',
|
|
'bulk_created' => ':count extra fee templates have been created.',
|
|
'settings_retrieved' => 'Active extra fee template settings retrieved successfully.',
|
|
],
|
|
|
|
// Product 1:1 Inquiries
|
|
'inquiries' => [
|
|
'fetch_success' => 'Inquiry list retrieved successfully.',
|
|
'fetch_failed' => 'Failed to retrieve inquiry list.',
|
|
'created' => 'Your inquiry has been submitted.',
|
|
'create_failed' => 'Failed to submit inquiry.',
|
|
'updated' => 'Your inquiry has been updated.',
|
|
'update_failed' => 'Failed to update inquiry.',
|
|
'deleted' => 'Inquiry has been deleted.',
|
|
'delete_failed' => 'Failed to delete inquiry.',
|
|
'not_found' => 'Inquiry not found.',
|
|
'forbidden' => 'You do not have permission for this inquiry.',
|
|
'board_not_configured' => 'Inquiry board is not configured.',
|
|
'board_unavailable' => 'Board module is unavailable. Please contact the administrator.',
|
|
'board_changed' => 'The board configuration has changed and the post could not be found. Please contact the administrator.',
|
|
'reply_created' => 'Reply has been submitted.',
|
|
'reply_failed' => 'Failed to submit reply.',
|
|
'reply_updated' => 'Reply has been updated.',
|
|
'reply_update_failed' => 'Failed to update reply.',
|
|
'reply_deleted' => 'Reply has been deleted.',
|
|
'reply_delete_failed' => 'Failed to delete reply.',
|
|
'reply_not_found' => 'Reply not found.',
|
|
// 서비스가 던진 사유를 그대로 덧붙여, 실패 원인을 서버 기록 없이도 알 수 있게 한다
|
|
'operation_failed_reason' => ':reason',
|
|
],
|
|
|
|
// User addresses
|
|
'address' => [
|
|
'created' => 'Address has been added.',
|
|
'create_failed' => 'Failed to add address.',
|
|
'updated' => 'Address has been updated.',
|
|
'update_failed' => 'Failed to update address.',
|
|
'deleted' => 'Address has been deleted.',
|
|
'delete_failed' => 'Failed to delete address.',
|
|
'not_found' => 'Address not found.',
|
|
'fetched' => 'Address retrieved.',
|
|
'fetch_failed' => 'Failed to retrieve address.',
|
|
'list_fetched' => 'Address list retrieved.',
|
|
'list_fetch_failed' => 'Failed to retrieve address list.',
|
|
'set_default' => 'Set as default address.',
|
|
'default_set' => 'Set as default address.',
|
|
'set_default_failed' => 'Failed to set default address.',
|
|
'name_duplicate' => 'An address with the same name already exists. Do you want to overwrite it?',
|
|
'auto_saved_label' => 'New Address',
|
|
],
|
|
|
|
// Payment currency settings (A3)
|
|
'user_currency' => [
|
|
'fetched' => 'Payment currency retrieved.',
|
|
'updated' => 'Payment currency updated.',
|
|
'update_failed' => 'Failed to update payment currency.',
|
|
],
|
|
|
|
'user_shipping_country' => [
|
|
'fetched' => 'Shipping country retrieved.',
|
|
'updated' => 'Shipping country updated.',
|
|
'update_failed' => 'Failed to update shipping country.',
|
|
],
|
|
|
|
// Dashboard
|
|
'dashboard' => [
|
|
'fetch_success' => 'Dashboard data loaded.',
|
|
],
|
|
];
|