직전 커밋 산출물에 「Phase 4/5 에서 추가」 문구가 박힌 것을 가 지적했다. 그 문자열은 이번 브랜치에서 쓴 것이 아니라 editor-spec.json 의 description 에 원래 있던 값이고, 새로 만든 생성기가 그것을 문서 앞머리로 옮겨 실으면서 승격된 것이다. 그 필드는 코드가 아니라 사람이 쓴 메모라 실측과 대조되지 않는다. 전수 조사에서 12건 중 5건이 오염돼 있었고, 그중 둘은 바로 아래 실측 표와 정반대를 말했다 — 「controls 는 나중에 추가」라는데 표는 303개가 있다고 한다. 오류도 경고도 나지 않는다: 문서가 자기 자신을 반박한 채로 읽힐 뿐이다. 한 줄 요약은 남기되 실측에서 만든다. 두 표에 흩어진 값을 한 줄로 압축하므로 읽는 쪽이 잃는 것이 없고, 코드에서 파생되므로 어긋날 자리가 사라진다. 도메인 의미는 바로 아래 사람 서술 칸이 이미 담당한다. 스펙 파일의 오염된 메모 5건도 정리했다. 그 파일을 여는 개발자는 문서와 별개로 그 값을 읽고, 확장과 함께 공개 배포된다. 재발 방지는 규정에 명시하고 검사는 두지 않았다 — 어휘를 정규식으로 고정하면 정당한 서술까지 걸리고 목록 밖 표현은 통과해, 「검사했으나 통과」와 「보지 않음」이 구분되지 않는다.
8580 lines
309 KiB
JSON
8580 lines
309 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"moduleId": "sirsoft-ecommerce",
|
|
"version": "1.0.0",
|
|
"description": "이커머스 모듈 레이아웃 편집기 스펙 — 관리자·사용자 상점 화면의 프리뷰 샘플과 페이지 상태. 공용 인프라(roles·availableChannels·identityProviders 등)는 관리자 템플릿 스펙과 코어 기본값이 커버한다.",
|
|
"actionRecipes": {
|
|
"comment": "이커머스 모듈 소유 친화 액션 레시피. 코어 시드 위에 module 단계로 병합(__source:{kind:module,id:sirsoft-ecommerce}, 편집기 〔이커머스〕 배지). 라벨은 모듈 격리 네임스페이스($t:sirsoft-ecommerce.editor.action.*) — 편집기 t()가 모듈 lang 통짜 ko.json/en.json 의 editor.action 을 sirsoft-ecommerce.editor.action 으로 해석한다(코어/템플릿 editor 와 격리). 결제(PG) 진입은 커머스 도메인이라 코어가 아닌 모듈이 소유한다(provider-agnostic — 핸들러명을 백엔드 응답값으로 받음).",
|
|
"requestPgPayment": {
|
|
"comment": "결제(PG) 진입 — provider-agnostic. 백엔드 응답이 호출할 결제 진입 핸들러 풀네임(pg_payment_handler)을 데이터 칩으로 연결하면 그 핸들러를 dispatch(특정 PG 하드코딩 없음). build.handler 가 {{paymentHandler}} placeholder 라 matchAction 이 placeholder-aware 로 역매칭한다. onSuccess 컨텍스트(chipContext=response)에서 결제 응답 칩 노출.",
|
|
"label": "$t:sirsoft-ecommerce.editor.action.request_pg_payment.label",
|
|
"params": [
|
|
{
|
|
"key": "paymentHandler",
|
|
"label": "$t:sirsoft-ecommerce.editor.action.request_pg_payment.param_handler",
|
|
"widget": "data-chip",
|
|
"required": true
|
|
},
|
|
{
|
|
"key": "pgPaymentData",
|
|
"label": "$t:sirsoft-ecommerce.editor.action.request_pg_payment.param_data",
|
|
"widget": "data-chip",
|
|
"required": true
|
|
}
|
|
],
|
|
"build": {
|
|
"handler": "{{paymentHandler}}",
|
|
"params": {
|
|
"pgPaymentData": "{{pgPaymentData}}"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"actionChipCandidates": {
|
|
"comment": "이커머스 도메인 응답 칩 후보 — 코어 기본 응답 칩(response.data/message) 뒤에 병합. 주문 생성 응답이 내려주는 PG 결제 진입 필드(pg_payment_handler/pg_payment_data)를 결제 진입 레시피의 데이터 칩으로 연결할 수 있게 노출한다. 코어는 PG 도메인을 모르고, 본 모듈이 자기 응답 필드를 선언한다(라벨은 모듈 격리 네임스페이스).",
|
|
"response": [
|
|
{
|
|
"path": "data.pg_payment_handler",
|
|
"labelKey": "sirsoft-ecommerce.editor.action_chip.response_pg_handler",
|
|
"shape": "scalar"
|
|
},
|
|
{
|
|
"path": "data.pg_payment_data",
|
|
"labelKey": "sirsoft-ecommerce.editor.action_chip.response_pg_data",
|
|
"shape": "object"
|
|
}
|
|
]
|
|
},
|
|
"sampleGlobal": {
|
|
"comment": "이커머스 도메인 _global keyspace. 코어 keyspace(currentUser/settings)는 시드하지 않음(충돌 시 코어 우선). 헤더 통화/배송국가 셀렉터(header_currency 슬롯 주입)는 실사이트에서 init_actions 가 채우는 파생 상태(availableCurrencies/availableShippingCountries)와 modules['sirsoft-ecommerce'] 설정을 표시 조건으로 읽는다. 편집기 캔버스는 init_actions 를 실행하지 않으므로 이 키들을 직접 시드해 편집기에서도 셀렉터가 보이게 한다(양 템플릿 공용 — 헤더는 모듈 무지 유지).",
|
|
"cart": {
|
|
"items": [],
|
|
"count": 0,
|
|
"total": 0
|
|
},
|
|
"wishlist": {
|
|
"items": [],
|
|
"count": 0
|
|
},
|
|
"recent_products": [],
|
|
"modules": {
|
|
"sirsoft-ecommerce": {
|
|
"comment": "헤더 통화/배송국가 셀렉터 표시 조건 소스. 실사이트 G7Config(window.__G7_MODULE_CONFIG) 미러 — 편집기 캔버스 전용 시드.",
|
|
"language_currency": {
|
|
"default_currency": "KRW",
|
|
"currencies": [
|
|
{ "code": "KRW", "symbol": "₩", "flag": "🇰🇷", "exchange_rate": 1, "is_default": true },
|
|
{ "code": "USD", "symbol": "$", "flag": "🇺🇸", "exchange_rate": 0.00073, "is_default": false },
|
|
{ "code": "JPY", "symbol": "¥", "flag": "🇯🇵", "exchange_rate": 0.11, "is_default": false }
|
|
]
|
|
},
|
|
"shipping": {
|
|
"international_shipping_enabled": true,
|
|
"default_country": "KR",
|
|
"available_countries": [
|
|
{ "code": "KR", "name": { "ko": "대한민국", "en": "South Korea", "ja": "韓国" }, "is_active": true },
|
|
{ "code": "US", "name": { "ko": "미국", "en": "United States", "ja": "アメリカ" }, "is_active": true },
|
|
{ "code": "JP", "name": { "ko": "일본", "en": "Japan", "ja": "日本" }, "is_active": true }
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"defaultCurrency": "KRW",
|
|
"preferredCurrency": "KRW",
|
|
"preferredShippingCountry": "KR",
|
|
"availableCurrencies": [
|
|
{ "code": "KRW", "symbol": "₩", "flag": "🇰🇷", "exchange_rate": 1, "is_default": true },
|
|
{ "code": "USD", "symbol": "$", "flag": "🇺🇸", "exchange_rate": 0.00073, "is_default": false },
|
|
{ "code": "JPY", "symbol": "¥", "flag": "🇯🇵", "exchange_rate": 0.11, "is_default": false }
|
|
],
|
|
"availableShippingCountries": [
|
|
{ "code": "KR", "name": "대한민국" },
|
|
{ "code": "US", "name": "미국" },
|
|
{ "code": "JP", "name": "일본" }
|
|
],
|
|
"mileageManual": {},
|
|
"mileageEdit": {},
|
|
"mileageExtend": {}
|
|
},
|
|
"sampleData": {
|
|
"comment": "실제 모듈 레이아웃 data_source ID(admin: products/categories/orders/order/reviews 등) + 사용자 페이지(템플릿이 렌더, /api/modules/sirsoft-ecommerce/* 호출) byEndpointPattern. 계획서 추정과 실제 ID 차이 반영(데이터소스가 SSoT).",
|
|
"byDataSourceId": {
|
|
"transactions": {
|
|
"comment": "관리자 마일리지 내역 (admin_ecommerce_mileage_transaction_index.json — {{transactions?.data?.data}} 반복).",
|
|
"data": {
|
|
"data": [
|
|
{
|
|
"row_number": 1,
|
|
"id": 100,
|
|
"user_id": 5,
|
|
"currency": "KRW",
|
|
"type": "admin_earn",
|
|
"type_label": "관리자 지급",
|
|
"admin_badge_group": "earn",
|
|
"user_display_category": "적립",
|
|
"amount": 10000,
|
|
"amount_formatted": "10,000",
|
|
"remaining_amount": 10000,
|
|
"balance_after": 50000,
|
|
"description": "신규 가입 보너스",
|
|
"memo": "환영 포인트",
|
|
"expires_at": "2027-06-03",
|
|
"expires_at_formatted": "2027-06-03",
|
|
"created_at": "2026-05-28T14:30:00Z",
|
|
"created_at_date": "2026-05-28",
|
|
"is_earning": true,
|
|
"expired_amount": 0,
|
|
"expiry_state": "active",
|
|
"can_edit_expiry": true,
|
|
"abilities": {
|
|
"can_manage": true,
|
|
"can_edit": true
|
|
}
|
|
},
|
|
{
|
|
"row_number": 2,
|
|
"id": 99,
|
|
"user_id": 5,
|
|
"currency": "KRW",
|
|
"type": "purchase_use",
|
|
"type_label": "구매 사용",
|
|
"admin_badge_group": "use",
|
|
"user_display_category": "사용",
|
|
"amount": -3000,
|
|
"amount_formatted": "-3,000",
|
|
"remaining_amount": 0,
|
|
"balance_after": 47000,
|
|
"description": "주문 결제 사용",
|
|
"memo": null,
|
|
"expires_at": null,
|
|
"expires_at_formatted": null,
|
|
"created_at": "2026-05-29T09:10:00Z",
|
|
"created_at_date": "2026-05-29",
|
|
"is_earning": false,
|
|
"expired_amount": 0,
|
|
"expiry_state": "none",
|
|
"can_edit_expiry": false,
|
|
"abilities": {
|
|
"can_manage": true,
|
|
"can_edit": false
|
|
}
|
|
}
|
|
],
|
|
"pagination": {
|
|
"current_page": 1,
|
|
"last_page": 1,
|
|
"per_page": 20,
|
|
"total": 2,
|
|
"from": 1,
|
|
"to": 2,
|
|
"has_more_pages": false
|
|
},
|
|
"abilities": {
|
|
"can_manage": true
|
|
},
|
|
"currencies": ["KRW"]
|
|
}
|
|
},
|
|
"products": {
|
|
"data": {
|
|
"abilities": {
|
|
"can_create": true,
|
|
"can_update": true
|
|
},
|
|
"data": [
|
|
{
|
|
"id": 101,
|
|
"name": {
|
|
"ko": "베이직 오버핏 코튼 티셔츠"
|
|
},
|
|
"name_localized": "베이직 오버핏 코튼 티셔츠",
|
|
"product_code": "TS-1001",
|
|
"sku": "TS-1001",
|
|
"thumbnail_url": "/images/placeholder.png",
|
|
"list_price": 29000,
|
|
"list_price_formatted": "29,000원",
|
|
"selling_price": 23200,
|
|
"selling_price_formatted": "23,200원",
|
|
"discount_rate": 20,
|
|
"multi_currency_list_price": {
|
|
"KRW": {
|
|
"price": 29000,
|
|
"formatted": "29,000원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 22.31,
|
|
"formatted": "$22.31",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"multi_currency_selling_price": {
|
|
"KRW": {
|
|
"price": 23200,
|
|
"formatted": "23,200원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 17.85,
|
|
"formatted": "$17.85",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"stock_quantity": 320,
|
|
"safe_stock_quantity": 10,
|
|
"is_below_safe_stock": false,
|
|
"option_stock_sum": 320,
|
|
"sales_status": "on_sale",
|
|
"sales_status_label": "판매중",
|
|
"sales_status_variant": "success",
|
|
"display_status": "visible",
|
|
"display_status_label": "노출",
|
|
"display_status_variant": "success",
|
|
"categories": [
|
|
{
|
|
"id": 11,
|
|
"name": "상의",
|
|
"is_primary": true
|
|
}
|
|
],
|
|
"primary_category": "상의",
|
|
"categories_with_path": [
|
|
{
|
|
"id": 11,
|
|
"path": [
|
|
{
|
|
"id": 1,
|
|
"name": "패션의류"
|
|
},
|
|
{
|
|
"id": 11,
|
|
"name": "상의"
|
|
}
|
|
],
|
|
"path_string": "패션의류 > 상의",
|
|
"is_primary": true
|
|
}
|
|
],
|
|
"brand_name": "코지홈",
|
|
"shipping_policy_id": 1,
|
|
"shipping_policy_name": "기본 배송정책",
|
|
"min_purchase_qty": 1,
|
|
"max_purchase_qty": 0,
|
|
"has_options": true,
|
|
"options_count": 6,
|
|
"options": [],
|
|
"labels": [
|
|
{
|
|
"name": "BEST",
|
|
"color": "#ef4444"
|
|
}
|
|
],
|
|
"review_count": 128,
|
|
"rating_avg": 4.7,
|
|
"created_at": "2026-05-20 14:30:00",
|
|
"updated_at": "2026-05-28 09:15:00",
|
|
"is_owner": false,
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
},
|
|
{
|
|
"id": 102,
|
|
"name": {
|
|
"ko": "데일리 와이드 슬랙스"
|
|
},
|
|
"name_localized": "데일리 와이드 슬랙스",
|
|
"product_code": "PT-2042",
|
|
"sku": "PT-2042",
|
|
"thumbnail_url": "/images/placeholder.png",
|
|
"list_price": 39000,
|
|
"list_price_formatted": "39,000원",
|
|
"selling_price": 39000,
|
|
"selling_price_formatted": "39,000원",
|
|
"discount_rate": 0,
|
|
"multi_currency_list_price": {
|
|
"KRW": {
|
|
"price": 39000,
|
|
"formatted": "39,000원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 30,
|
|
"formatted": "$30.00",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"multi_currency_selling_price": {
|
|
"KRW": {
|
|
"price": 39000,
|
|
"formatted": "39,000원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 30,
|
|
"formatted": "$30.00",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"stock_quantity": 85,
|
|
"safe_stock_quantity": 10,
|
|
"is_below_safe_stock": false,
|
|
"option_stock_sum": 85,
|
|
"sales_status": "on_sale",
|
|
"sales_status_label": "판매중",
|
|
"sales_status_variant": "success",
|
|
"display_status": "visible",
|
|
"display_status_label": "노출",
|
|
"display_status_variant": "success",
|
|
"categories": [
|
|
{
|
|
"id": 11,
|
|
"name": "상의",
|
|
"is_primary": true
|
|
}
|
|
],
|
|
"primary_category": "상의",
|
|
"categories_with_path": [
|
|
{
|
|
"id": 11,
|
|
"path": [
|
|
{
|
|
"id": 1,
|
|
"name": "패션의류"
|
|
},
|
|
{
|
|
"id": 11,
|
|
"name": "상의"
|
|
}
|
|
],
|
|
"path_string": "패션의류 > 상의",
|
|
"is_primary": true
|
|
}
|
|
],
|
|
"brand_name": "어반핏",
|
|
"shipping_policy_id": 1,
|
|
"shipping_policy_name": "기본 배송정책",
|
|
"min_purchase_qty": 1,
|
|
"max_purchase_qty": 0,
|
|
"has_options": false,
|
|
"options_count": 0,
|
|
"options": [],
|
|
"labels": [],
|
|
"review_count": 42,
|
|
"rating_avg": 4.3,
|
|
"created_at": "2026-05-20 14:30:00",
|
|
"updated_at": "2026-05-28 09:15:00",
|
|
"is_owner": false,
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
},
|
|
{
|
|
"id": 103,
|
|
"name": {
|
|
"ko": "구스다운 경량 패딩 점퍼"
|
|
},
|
|
"name_localized": "구스다운 경량 패딩 점퍼",
|
|
"product_code": "OW-3310",
|
|
"sku": "OW-3310",
|
|
"thumbnail_url": "/images/placeholder.png",
|
|
"list_price": 189000,
|
|
"list_price_formatted": "189,000원",
|
|
"selling_price": 132300,
|
|
"selling_price_formatted": "132,300원",
|
|
"discount_rate": 30,
|
|
"multi_currency_list_price": {
|
|
"KRW": {
|
|
"price": 189000,
|
|
"formatted": "189,000원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 145.38,
|
|
"formatted": "$145.38",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"multi_currency_selling_price": {
|
|
"KRW": {
|
|
"price": 132300,
|
|
"formatted": "132,300원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 101.77,
|
|
"formatted": "$101.77",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"stock_quantity": 0,
|
|
"safe_stock_quantity": 10,
|
|
"is_below_safe_stock": true,
|
|
"option_stock_sum": 0,
|
|
"sales_status": "sold_out",
|
|
"sales_status_label": "품절",
|
|
"sales_status_variant": "danger",
|
|
"display_status": "hidden",
|
|
"display_status_label": "미노출",
|
|
"display_status_variant": "gray",
|
|
"categories": [
|
|
{
|
|
"id": 11,
|
|
"name": "상의",
|
|
"is_primary": true
|
|
}
|
|
],
|
|
"primary_category": "상의",
|
|
"categories_with_path": [
|
|
{
|
|
"id": 11,
|
|
"path": [
|
|
{
|
|
"id": 1,
|
|
"name": "패션의류"
|
|
},
|
|
{
|
|
"id": 11,
|
|
"name": "상의"
|
|
}
|
|
],
|
|
"path_string": "패션의류 > 상의",
|
|
"is_primary": true
|
|
}
|
|
],
|
|
"brand_name": "노스벨리",
|
|
"shipping_policy_id": 1,
|
|
"shipping_policy_name": "기본 배송정책",
|
|
"min_purchase_qty": 1,
|
|
"max_purchase_qty": 0,
|
|
"has_options": true,
|
|
"options_count": 9,
|
|
"options": [],
|
|
"labels": [
|
|
{
|
|
"name": "BEST",
|
|
"color": "#ef4444"
|
|
}
|
|
],
|
|
"review_count": 271,
|
|
"rating_avg": 4.9,
|
|
"created_at": "2026-05-20 14:30:00",
|
|
"updated_at": "2026-05-28 09:15:00",
|
|
"is_owner": false,
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
}
|
|
],
|
|
"pagination": {
|
|
"current_page": 1,
|
|
"last_page": 4,
|
|
"per_page": 20,
|
|
"total": 73
|
|
}
|
|
}
|
|
},
|
|
"product": {
|
|
"data": {
|
|
"id": 101,
|
|
"name": {
|
|
"ko": "베이직 오버핏 코튼 티셔츠",
|
|
"en": "Basic Overfit Cotton T-Shirt"
|
|
},
|
|
"product_code": "TS-1001",
|
|
"sales_product_code": "SP-TS-1001",
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
},
|
|
"images": [
|
|
{
|
|
"id": 5001,
|
|
"hash": "img5001",
|
|
"original_filename": "tshirt_main.jpg",
|
|
"download_url": "/images/placeholder.png",
|
|
"alt_text": "정면",
|
|
"is_thumbnail": true,
|
|
"sort_order": 0,
|
|
"order": 0,
|
|
"width": 1000,
|
|
"height": 1000,
|
|
"file_size": 184320,
|
|
"size": 184320,
|
|
"size_formatted": "180 KB",
|
|
"mime_type": "image/jpeg",
|
|
"is_image": true
|
|
},
|
|
{
|
|
"id": 5002,
|
|
"hash": "img5002",
|
|
"original_filename": "tshirt_back.jpg",
|
|
"download_url": "/images/placeholder.png",
|
|
"alt_text": "후면",
|
|
"is_thumbnail": false,
|
|
"sort_order": 1,
|
|
"order": 1,
|
|
"width": 1000,
|
|
"height": 1000,
|
|
"file_size": 176128,
|
|
"size": 176128,
|
|
"size_formatted": "172 KB",
|
|
"mime_type": "image/jpeg",
|
|
"is_image": true
|
|
},
|
|
{
|
|
"id": 5003,
|
|
"hash": "img5003",
|
|
"original_filename": "tshirt_detail.jpg",
|
|
"download_url": "/images/placeholder.png",
|
|
"alt_text": "디테일",
|
|
"is_thumbnail": false,
|
|
"sort_order": 2,
|
|
"order": 2,
|
|
"width": 1000,
|
|
"height": 1000,
|
|
"file_size": 158720,
|
|
"size": 158720,
|
|
"size_formatted": "155 KB",
|
|
"mime_type": "image/jpeg",
|
|
"is_image": true
|
|
}
|
|
],
|
|
"created_at": "2026-05-20 14:30:00",
|
|
"updated_at": "2026-05-28 09:15:00"
|
|
}
|
|
},
|
|
"categories": {
|
|
"data": {
|
|
"abilities": {
|
|
"can_create": true,
|
|
"can_update": true
|
|
},
|
|
"data": [
|
|
{
|
|
"id": 1,
|
|
"name": {
|
|
"ko": "패션의류"
|
|
},
|
|
"localized_name": "패션의류",
|
|
"description": null,
|
|
"parent_id": null,
|
|
"path": "1",
|
|
"depth": 0,
|
|
"sort_order": 1,
|
|
"is_active": true,
|
|
"slug": "fashion",
|
|
"url": "fashion",
|
|
"icon": "folder",
|
|
"meta_title": null,
|
|
"meta_description": null,
|
|
"created_at": "2026-04-01 10:00:00",
|
|
"updated_at": "2026-05-01 10:00:00",
|
|
"children": [
|
|
{
|
|
"id": 11,
|
|
"name": {
|
|
"ko": "상의"
|
|
},
|
|
"localized_name": "상의",
|
|
"description": null,
|
|
"parent_id": 1,
|
|
"path": "1/11",
|
|
"depth": 1,
|
|
"sort_order": 11,
|
|
"is_active": true,
|
|
"slug": "tops",
|
|
"url": "tops",
|
|
"icon": "folder",
|
|
"meta_title": null,
|
|
"meta_description": null,
|
|
"created_at": "2026-04-01 10:00:00",
|
|
"updated_at": "2026-05-01 10:00:00",
|
|
"children": [
|
|
{
|
|
"id": 111,
|
|
"name": {
|
|
"ko": "티셔츠"
|
|
},
|
|
"localized_name": "티셔츠",
|
|
"description": null,
|
|
"parent_id": 11,
|
|
"path": "11/111",
|
|
"depth": 2,
|
|
"sort_order": 111,
|
|
"is_active": true,
|
|
"slug": "tshirts",
|
|
"url": "tshirts",
|
|
"icon": "folder",
|
|
"meta_title": null,
|
|
"meta_description": null,
|
|
"created_at": "2026-04-01 10:00:00",
|
|
"updated_at": "2026-05-01 10:00:00",
|
|
"children": []
|
|
},
|
|
{
|
|
"id": 112,
|
|
"name": {
|
|
"ko": "셔츠/블라우스"
|
|
},
|
|
"localized_name": "셔츠/블라우스",
|
|
"description": null,
|
|
"parent_id": 11,
|
|
"path": "11/112",
|
|
"depth": 2,
|
|
"sort_order": 112,
|
|
"is_active": true,
|
|
"slug": "shirts",
|
|
"url": "shirts",
|
|
"icon": "folder",
|
|
"meta_title": null,
|
|
"meta_description": null,
|
|
"created_at": "2026-04-01 10:00:00",
|
|
"updated_at": "2026-05-01 10:00:00",
|
|
"children": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 12,
|
|
"name": {
|
|
"ko": "하의"
|
|
},
|
|
"localized_name": "하의",
|
|
"description": null,
|
|
"parent_id": 1,
|
|
"path": "1/12",
|
|
"depth": 1,
|
|
"sort_order": 12,
|
|
"is_active": true,
|
|
"slug": "bottoms",
|
|
"url": "bottoms",
|
|
"icon": "folder",
|
|
"meta_title": null,
|
|
"meta_description": null,
|
|
"created_at": "2026-04-01 10:00:00",
|
|
"updated_at": "2026-05-01 10:00:00",
|
|
"children": [
|
|
{
|
|
"id": 121,
|
|
"name": {
|
|
"ko": "슬랙스"
|
|
},
|
|
"localized_name": "슬랙스",
|
|
"description": null,
|
|
"parent_id": 12,
|
|
"path": "12/121",
|
|
"depth": 2,
|
|
"sort_order": 121,
|
|
"is_active": true,
|
|
"slug": "slacks",
|
|
"url": "slacks",
|
|
"icon": "folder",
|
|
"meta_title": null,
|
|
"meta_description": null,
|
|
"created_at": "2026-04-01 10:00:00",
|
|
"updated_at": "2026-05-01 10:00:00",
|
|
"children": []
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 2,
|
|
"name": {
|
|
"ko": "가방/잡화"
|
|
},
|
|
"localized_name": "가방/잡화",
|
|
"description": null,
|
|
"parent_id": null,
|
|
"path": "2",
|
|
"depth": 0,
|
|
"sort_order": 2,
|
|
"is_active": true,
|
|
"slug": "bags",
|
|
"url": "bags",
|
|
"icon": "folder",
|
|
"meta_title": null,
|
|
"meta_description": null,
|
|
"created_at": "2026-04-01 10:00:00",
|
|
"updated_at": "2026-05-01 10:00:00",
|
|
"children": [
|
|
{
|
|
"id": 21,
|
|
"name": {
|
|
"ko": "백팩"
|
|
},
|
|
"localized_name": "백팩",
|
|
"description": null,
|
|
"parent_id": 2,
|
|
"path": "2/21",
|
|
"depth": 1,
|
|
"sort_order": 21,
|
|
"is_active": true,
|
|
"slug": "backpack",
|
|
"url": "backpack",
|
|
"icon": "folder",
|
|
"meta_title": null,
|
|
"meta_description": null,
|
|
"created_at": "2026-04-01 10:00:00",
|
|
"updated_at": "2026-05-01 10:00:00",
|
|
"children": []
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": 3,
|
|
"name": {
|
|
"ko": "아우터"
|
|
},
|
|
"localized_name": "아우터",
|
|
"description": null,
|
|
"parent_id": null,
|
|
"path": "3",
|
|
"depth": 0,
|
|
"sort_order": 3,
|
|
"is_active": true,
|
|
"slug": "outer",
|
|
"url": "outer",
|
|
"icon": "folder",
|
|
"meta_title": null,
|
|
"meta_description": null,
|
|
"created_at": "2026-04-01 10:00:00",
|
|
"updated_at": "2026-05-01 10:00:00",
|
|
"children": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"orders": {
|
|
"data": {
|
|
"data": [
|
|
{
|
|
"id": 5101,
|
|
"no": 1,
|
|
"order_number": "20260601-0042",
|
|
"order_status": "preparing",
|
|
"order_status_label": "배송준비중",
|
|
"order_status_variant": "info",
|
|
"total_amount": 69500,
|
|
"total_amount_formatted": "69,500원",
|
|
"total_shipping_amount": 3000,
|
|
"total_shipping_amount_formatted": "3,000원",
|
|
"total_paid_amount": 69500,
|
|
"total_paid_amount_formatted": "69,500원",
|
|
"total_unpaid_amount": 0,
|
|
"total_unpaid_amount_formatted": "0원",
|
|
"ordered_at_formatted": "2026-06-01 19:30",
|
|
"order_device_label": "PC",
|
|
"is_first_order": false,
|
|
"options_count": 2,
|
|
"user": {
|
|
"uuid": "u-1001",
|
|
"name": "홍길동",
|
|
"email": "gildong@example.com"
|
|
},
|
|
"first_option": {
|
|
"product_name": "프리미엄 무선 이어버드 프로",
|
|
"product_option_name": "미드나잇 블랙 / 기본",
|
|
"product_code": "EARBUDS-PRO",
|
|
"quantity": 2,
|
|
"thumbnail_url": null
|
|
},
|
|
"address": {
|
|
"orderer_name": "홍길동",
|
|
"recipient_name": "홍길동",
|
|
"recipient_country_code": "KR",
|
|
"recipient_country_name": "대한민국"
|
|
},
|
|
"payment": {
|
|
"payment_method": "card",
|
|
"payment_method_label": "신용카드"
|
|
},
|
|
"shipping": {
|
|
"shipping_type": "parcel",
|
|
"shipping_type_label": "택배",
|
|
"shipping_method_label": "일반배송",
|
|
"carrier_name": "CJ대한통운",
|
|
"tracking_number": null
|
|
}
|
|
},
|
|
{
|
|
"id": 5102,
|
|
"no": 2,
|
|
"order_number": "20260530-0118",
|
|
"order_status": "shipping",
|
|
"order_status_label": "배송중",
|
|
"order_status_variant": "primary",
|
|
"total_amount": 42000,
|
|
"total_amount_formatted": "42,000원",
|
|
"total_shipping_amount": 0,
|
|
"total_shipping_amount_formatted": "0원",
|
|
"total_paid_amount": 42000,
|
|
"total_paid_amount_formatted": "42,000원",
|
|
"total_unpaid_amount": 0,
|
|
"total_unpaid_amount_formatted": "0원",
|
|
"ordered_at_formatted": "2026-05-30 13:05",
|
|
"order_device_label": "PC",
|
|
"is_first_order": false,
|
|
"options_count": 1,
|
|
"user": {
|
|
"uuid": "u-1002",
|
|
"name": "김영희",
|
|
"email": "younghee@example.com"
|
|
},
|
|
"first_option": {
|
|
"product_name": "휴대용 블루투스 스피커",
|
|
"product_option_name": "기본",
|
|
"product_code": "SPEAKER-MINI",
|
|
"quantity": 1,
|
|
"thumbnail_url": null
|
|
},
|
|
"address": {
|
|
"orderer_name": "김영희",
|
|
"recipient_name": "김영희",
|
|
"recipient_country_code": "KR",
|
|
"recipient_country_name": "대한민국"
|
|
},
|
|
"payment": {
|
|
"payment_method": "vbank",
|
|
"payment_method_label": "가상계좌"
|
|
},
|
|
"shipping": {
|
|
"shipping_type": "parcel",
|
|
"shipping_type_label": "택배",
|
|
"shipping_method_label": "일반배송",
|
|
"carrier_name": "CJ대한통운",
|
|
"tracking_number": "6123456789020"
|
|
}
|
|
},
|
|
{
|
|
"id": 5103,
|
|
"no": 3,
|
|
"order_number": "20260528-0096",
|
|
"order_status": "payment_pending",
|
|
"order_status_label": "입금대기",
|
|
"order_status_variant": "warning",
|
|
"total_amount": 128000,
|
|
"total_amount_formatted": "128,000원",
|
|
"total_shipping_amount": 3000,
|
|
"total_shipping_amount_formatted": "3,000원",
|
|
"total_paid_amount": 0,
|
|
"total_paid_amount_formatted": "0원",
|
|
"total_unpaid_amount": 128000,
|
|
"total_unpaid_amount_formatted": "128,000원",
|
|
"ordered_at_formatted": "2026-05-28 21:40",
|
|
"order_device_label": "PC",
|
|
"is_first_order": true,
|
|
"options_count": 1,
|
|
"user": {
|
|
"uuid": "u-1003",
|
|
"name": "John Smith",
|
|
"email": "john@example.com"
|
|
},
|
|
"first_option": {
|
|
"product_name": "스마트 워치 밴드",
|
|
"product_option_name": "브라운 / M",
|
|
"product_code": "WATCH-BAND",
|
|
"quantity": 1,
|
|
"thumbnail_url": null
|
|
},
|
|
"address": {
|
|
"orderer_name": "John Smith",
|
|
"recipient_name": "John Smith",
|
|
"recipient_country_code": "US",
|
|
"recipient_country_name": "United States"
|
|
},
|
|
"payment": {
|
|
"payment_method": "dbank",
|
|
"payment_method_label": "무통장입금"
|
|
},
|
|
"shipping": {
|
|
"shipping_type": "parcel",
|
|
"shipping_type_label": "택배",
|
|
"shipping_method_label": "일반배송",
|
|
"carrier_name": "CJ대한통운",
|
|
"tracking_number": null
|
|
}
|
|
},
|
|
{
|
|
"id": 5104,
|
|
"no": 4,
|
|
"order_number": "20260525-0071",
|
|
"order_status": "cancelled",
|
|
"order_status_label": "주문취소",
|
|
"order_status_variant": "danger",
|
|
"total_amount": 24000,
|
|
"total_amount_formatted": "24,000원",
|
|
"total_shipping_amount": 3000,
|
|
"total_shipping_amount_formatted": "3,000원",
|
|
"total_paid_amount": 0,
|
|
"total_paid_amount_formatted": "0원",
|
|
"total_unpaid_amount": 0,
|
|
"total_unpaid_amount_formatted": "0원",
|
|
"ordered_at_formatted": "2026-05-25 10:12",
|
|
"order_device_label": "PC",
|
|
"is_first_order": false,
|
|
"options_count": 1,
|
|
"user": {
|
|
"uuid": "u-1004",
|
|
"name": "이철수",
|
|
"email": "chulsoo@example.com"
|
|
},
|
|
"first_option": {
|
|
"product_name": "USB-C 멀티 어댑터",
|
|
"product_option_name": "실버",
|
|
"product_code": "ADAPTER-USBC",
|
|
"quantity": 1,
|
|
"thumbnail_url": null
|
|
},
|
|
"address": {
|
|
"orderer_name": "이철수",
|
|
"recipient_name": "이철수",
|
|
"recipient_country_code": "KR",
|
|
"recipient_country_name": "대한민국"
|
|
},
|
|
"payment": {
|
|
"payment_method": "card",
|
|
"payment_method_label": "신용카드"
|
|
},
|
|
"shipping": {
|
|
"shipping_type": "parcel",
|
|
"shipping_type_label": "택배",
|
|
"shipping_method_label": "일반배송",
|
|
"carrier_name": "CJ대한통운",
|
|
"tracking_number": null
|
|
}
|
|
}
|
|
],
|
|
"statistics": {
|
|
"pending_payment": 1,
|
|
"payment_complete": 0,
|
|
"preparing": 1,
|
|
"shipping": 1,
|
|
"delivered": 0,
|
|
"confirmed": 0,
|
|
"cancelled": 1
|
|
},
|
|
"pagination": {
|
|
"current_page": 1,
|
|
"last_page": 1,
|
|
"per_page": 20,
|
|
"total": 4,
|
|
"from": 1,
|
|
"to": 4,
|
|
"has_more_pages": false
|
|
},
|
|
"abilities": {
|
|
"can_update": true
|
|
}
|
|
}
|
|
},
|
|
"order": {
|
|
"data": {
|
|
"id": 5101,
|
|
"order_number": "20260601-0042",
|
|
"order_status": "preparing",
|
|
"order_status_label": "배송준비중",
|
|
"order_status_variant": "info",
|
|
"order_device": "pc",
|
|
"order_device_label": "PC",
|
|
"is_first_order": false,
|
|
"abilities": {
|
|
"can_read": true,
|
|
"can_update": true,
|
|
"can_cancel": true
|
|
},
|
|
"subtotal_amount": 76000,
|
|
"subtotal_amount_formatted": "76,000원",
|
|
"total_discount_amount": 9500,
|
|
"total_discount_amount_formatted": "9,500원",
|
|
"total_shipping_amount": 3000,
|
|
"total_shipping_amount_formatted": "3,000원",
|
|
"total_amount": 69500,
|
|
"total_amount_formatted": "69,500원",
|
|
"total_paid_amount": 69500,
|
|
"total_paid_amount_formatted": "69,500원",
|
|
"total_product_coupon_discount_amount": 5000,
|
|
"total_product_coupon_discount_amount_formatted": "5,000원",
|
|
"total_order_coupon_discount_amount": 2500,
|
|
"total_order_coupon_discount_amount_formatted": "2,500원",
|
|
"total_coupon_discount_amount": 7500,
|
|
"total_coupon_discount_amount_formatted": "7,500원",
|
|
"total_code_discount_amount": 2000,
|
|
"total_code_discount_amount_formatted": "2,000원",
|
|
"total_points_used_amount": 1000,
|
|
"total_points_used_amount_formatted": "1,000원",
|
|
"total_deposit_used_amount": 0,
|
|
"total_deposit_used_amount_formatted": "0원",
|
|
"total_earned_points_amount": 710,
|
|
"total_earned_points_amount_formatted": "710원",
|
|
"total_tax_amount": 6318,
|
|
"total_tax_amount_formatted": "6,318원",
|
|
"total_vat_amount": 6318,
|
|
"total_vat_amount_formatted": "6,318원",
|
|
"total_list_price": 82000,
|
|
"total_list_price_formatted": "82,000원",
|
|
"total_quantity": 3,
|
|
"item_count": 2,
|
|
"mc_subtotal_amount": {
|
|
"KRW": {
|
|
"price": 76000,
|
|
"formatted": "76,000원",
|
|
"is_default": true
|
|
},
|
|
"USD": {
|
|
"price": 55.7,
|
|
"formatted": "$55.70",
|
|
"is_default": false
|
|
}
|
|
},
|
|
"mc_total_discount_amount": {
|
|
"KRW": {
|
|
"price": 9500,
|
|
"formatted": "9,500원",
|
|
"is_default": true
|
|
},
|
|
"USD": {
|
|
"price": 6.9,
|
|
"formatted": "$6.90",
|
|
"is_default": false
|
|
}
|
|
},
|
|
"mc_total_shipping_amount": {
|
|
"KRW": {
|
|
"price": 3000,
|
|
"formatted": "3,000원",
|
|
"is_default": true
|
|
},
|
|
"USD": {
|
|
"price": 2.2,
|
|
"formatted": "$2.20",
|
|
"is_default": false
|
|
}
|
|
},
|
|
"mc_total_amount": {
|
|
"KRW": {
|
|
"price": 69500,
|
|
"formatted": "69,500원",
|
|
"is_default": true
|
|
},
|
|
"USD": {
|
|
"price": 50.7,
|
|
"formatted": "$50.70",
|
|
"is_default": false
|
|
}
|
|
},
|
|
"ordered_at_formatted": "2026-06-01 19:30",
|
|
"paid_at_formatted": "2026-06-01 19:31",
|
|
"delivered_at": null,
|
|
"user_id": "u-1001",
|
|
"user_login_id": "gildong",
|
|
"orderer_name": "홍길동",
|
|
"orderer_phone": "010-1234-5678",
|
|
"orderer_tel": "02-555-1234",
|
|
"orderer_email": "gildong@example.com",
|
|
"recipient_name": "홍길동",
|
|
"recipient_phone": "010-1234-5678",
|
|
"recipient_zipcode": "06234",
|
|
"recipient_address": "서울특별시 강남구 테헤란로 123",
|
|
"recipient_detail_address": "4층 401호",
|
|
"delivery_memo": "부재 시 경비실에 맡겨주세요",
|
|
"shipping_address": {
|
|
"recipient_name": "홍길동",
|
|
"recipient_phone": "010-1234-5678",
|
|
"zipcode": "06234",
|
|
"address": "서울특별시 강남구 테헤란로 123",
|
|
"address_detail": "4층 401호",
|
|
"full_address": "서울특별시 강남구 테헤란로 123 4층 401호",
|
|
"delivery_memo": "부재 시 경비실에 맡겨주세요"
|
|
},
|
|
"options": [
|
|
{
|
|
"id": 9101,
|
|
"option_status": "preparing",
|
|
"option_status_label": "배송준비중",
|
|
"option_status_variant": "info",
|
|
"product_id": 1,
|
|
"product_option_id": 101,
|
|
"sku": "EARBUDS-PRO-BLK",
|
|
"product_name": "프리미엄 무선 이어버드 프로",
|
|
"product_option_name": "미드나잇 블랙 / 기본",
|
|
"option_name": "미드나잇 블랙 / 기본",
|
|
"quantity": 2,
|
|
"shipped_quantity": 0,
|
|
"unit_price": 29000,
|
|
"unit_price_formatted": "29,000원",
|
|
"subtotal_price": 58000,
|
|
"subtotal_price_formatted": "58,000원",
|
|
"subtotal_discount_amount": 7500,
|
|
"subtotal_discount_amount_formatted": "7,500원",
|
|
"list_price": 32000,
|
|
"list_price_formatted": "32,000원",
|
|
"final_amount": 50500,
|
|
"final_amount_formatted": "50,500원",
|
|
"product_coupon_discount_amount": 5000,
|
|
"product_coupon_discount_amount_formatted": "5,000원",
|
|
"order_coupon_discount_amount": 2500,
|
|
"order_coupon_discount_amount_formatted": "2,500원",
|
|
"coupon_discount_amount": 7500,
|
|
"coupon_discount_amount_formatted": "7,500원",
|
|
"code_discount_amount": 0,
|
|
"code_discount_amount_formatted": "0원",
|
|
"referral_discount_amount": 0,
|
|
"referral_discount_amount_formatted": "0원",
|
|
"subtotal_points_used_amount": 500,
|
|
"subtotal_points_used_amount_formatted": "500원",
|
|
"subtotal_deposit_used_amount": 0,
|
|
"subtotal_deposit_used_amount_formatted": "0원",
|
|
"subtotal_earned_points_amount": 530,
|
|
"subtotal_earned_points_amount_formatted": "530원",
|
|
"subtotal_tax_amount": 4818,
|
|
"subtotal_tax_amount_formatted": "4,818원",
|
|
"subtotal_vat_amount": 4818,
|
|
"subtotal_vat_amount_formatted": "4,818원",
|
|
"shipping_policy_name": "기본 배송 정책",
|
|
"shipping_type_label": "택배",
|
|
"shipping_amount": 3000,
|
|
"shipping_amount_formatted": "3,000원",
|
|
"carrier_name": "CJ대한통운",
|
|
"tracking_number": "6123456789012",
|
|
"thumbnail_url": null,
|
|
"product_snapshot": {
|
|
"product_code": "EARBUDS-PRO"
|
|
},
|
|
"mc_unit_price": {
|
|
"KRW": {
|
|
"price": 29000,
|
|
"formatted": "29,000원",
|
|
"is_default": true
|
|
},
|
|
"USD": {
|
|
"price": 21.3,
|
|
"formatted": "$21.30",
|
|
"is_default": false
|
|
}
|
|
},
|
|
"mc_subtotal_price": {
|
|
"KRW": {
|
|
"price": 58000,
|
|
"formatted": "58,000원",
|
|
"is_default": true
|
|
},
|
|
"USD": {
|
|
"price": 42.6,
|
|
"formatted": "$42.60",
|
|
"is_default": false
|
|
}
|
|
},
|
|
"confirmed_at": null,
|
|
"promotions_applied_snapshot": {
|
|
"coupons": [
|
|
{
|
|
"name": "이어버드 단독 10% 할인",
|
|
"total_discount_formatted": "5,000원"
|
|
}
|
|
],
|
|
"discount_codes": [
|
|
{
|
|
"code": "WELCOME2000",
|
|
"name": "신규가입 2,000원 할인코드",
|
|
"total_discount_formatted": "2,000원"
|
|
}
|
|
],
|
|
"events": []
|
|
}
|
|
},
|
|
{
|
|
"id": 9102,
|
|
"option_status": "preparing",
|
|
"option_status_label": "배송준비중",
|
|
"option_status_variant": "info",
|
|
"product_id": 2,
|
|
"product_option_id": 102,
|
|
"sku": "CABLE-15M-WHT",
|
|
"product_name": "고속 충전 케이블 1.5m",
|
|
"product_option_name": "1.5m",
|
|
"option_name": "1.5m",
|
|
"quantity": 1,
|
|
"shipped_quantity": 0,
|
|
"unit_price": 18000,
|
|
"unit_price_formatted": "18,000원",
|
|
"subtotal_price": 18000,
|
|
"subtotal_price_formatted": "18,000원",
|
|
"subtotal_discount_amount": 0,
|
|
"subtotal_discount_amount_formatted": "0원",
|
|
"list_price": 18000,
|
|
"list_price_formatted": "18,000원",
|
|
"final_amount": 18000,
|
|
"final_amount_formatted": "18,000원",
|
|
"product_coupon_discount_amount": 0,
|
|
"product_coupon_discount_amount_formatted": "0원",
|
|
"order_coupon_discount_amount": 0,
|
|
"order_coupon_discount_amount_formatted": "0원",
|
|
"coupon_discount_amount": 0,
|
|
"coupon_discount_amount_formatted": "0원",
|
|
"code_discount_amount": 0,
|
|
"code_discount_amount_formatted": "0원",
|
|
"referral_discount_amount": 0,
|
|
"referral_discount_amount_formatted": "0원",
|
|
"subtotal_points_used_amount": 0,
|
|
"subtotal_points_used_amount_formatted": "0원",
|
|
"subtotal_deposit_used_amount": 0,
|
|
"subtotal_deposit_used_amount_formatted": "0원",
|
|
"subtotal_earned_points_amount": 180,
|
|
"subtotal_earned_points_amount_formatted": "180원",
|
|
"subtotal_tax_amount": 1500,
|
|
"subtotal_tax_amount_formatted": "1,500원",
|
|
"subtotal_vat_amount": 1500,
|
|
"subtotal_vat_amount_formatted": "1,500원",
|
|
"shipping_policy_name": "무료 배송 정책",
|
|
"shipping_type_label": "택배",
|
|
"shipping_amount": 0,
|
|
"shipping_amount_formatted": "0원",
|
|
"carrier_name": "CJ대한통운",
|
|
"tracking_number": "6123456789013",
|
|
"thumbnail_url": null,
|
|
"product_snapshot": {
|
|
"product_code": "CABLE-15M"
|
|
},
|
|
"mc_unit_price": {
|
|
"KRW": {
|
|
"price": 18000,
|
|
"formatted": "18,000원",
|
|
"is_default": true
|
|
},
|
|
"USD": {
|
|
"price": 13.2,
|
|
"formatted": "$13.20",
|
|
"is_default": false
|
|
}
|
|
},
|
|
"mc_subtotal_price": {
|
|
"KRW": {
|
|
"price": 18000,
|
|
"formatted": "18,000원",
|
|
"is_default": true
|
|
},
|
|
"USD": {
|
|
"price": 13.2,
|
|
"formatted": "$13.20",
|
|
"is_default": false
|
|
}
|
|
},
|
|
"confirmed_at": null,
|
|
"promotions_applied_snapshot": {
|
|
"coupons": [],
|
|
"discount_codes": [],
|
|
"events": []
|
|
}
|
|
}
|
|
],
|
|
"payment": {
|
|
"payment_method_label": "신용카드"
|
|
},
|
|
"payments": [
|
|
{
|
|
"id": 8101,
|
|
"payment_status": "paid",
|
|
"payment_status_label": "결제완료",
|
|
"payment_status_variant": "success",
|
|
"payment_method": "card",
|
|
"payment_method_label": "신용카드",
|
|
"payment_type_label": "일반결제",
|
|
"payment_number": "PAY-20260601-0042",
|
|
"paid_amount_formatted": "69,500원",
|
|
"account_info": null,
|
|
"requested_at_formatted": "2026-06-01 19:30",
|
|
"paid_at_formatted": "2026-06-01 19:31",
|
|
"due_date_formatted": null,
|
|
"cancelled_amount": 0,
|
|
"cancelled_amount_formatted": "0원",
|
|
"refunded_amount": 0,
|
|
"refunded_amount_formatted": "0원",
|
|
"refund_status_label": null,
|
|
"refund_status_variant": null,
|
|
"refund_points_amount": 0,
|
|
"refund_points_amount_formatted": "0원",
|
|
"event_discount_amount": 0,
|
|
"event_discount_amount_formatted": "0원",
|
|
"referral_discount_amount": 0,
|
|
"referral_discount_amount_formatted": "0원"
|
|
}
|
|
],
|
|
"shippings": [],
|
|
"promotions_applied_snapshot": {
|
|
"product_promotions": {
|
|
"coupons": [
|
|
{
|
|
"coupon_id": 5001,
|
|
"name": "이어버드 단독 10% 할인",
|
|
"target_type": "product_amount",
|
|
"total_discount": 5000,
|
|
"total_discount_formatted": "5,000원"
|
|
}
|
|
],
|
|
"discount_codes": [
|
|
{
|
|
"code_id": 7001,
|
|
"code": "WELCOME2000",
|
|
"name": "신규가입 2,000원 할인코드",
|
|
"total_discount": 2000,
|
|
"total_discount_formatted": "2,000원"
|
|
}
|
|
],
|
|
"events": []
|
|
},
|
|
"order_promotions": {
|
|
"coupons": [
|
|
{
|
|
"coupon_id": 6001,
|
|
"name": "5만원 이상 5,000원 할인",
|
|
"target_type": "order_amount",
|
|
"total_discount": 5000,
|
|
"total_discount_formatted": "5,000원"
|
|
}
|
|
],
|
|
"discount_codes": [],
|
|
"events": []
|
|
}
|
|
},
|
|
"shipping_policy_applied_snapshot": {
|
|
"items": [
|
|
{
|
|
"product_option_id": 9001,
|
|
"policy": {
|
|
"policy_name": "기본 배송 정책",
|
|
"standalone_shipping_amount": 3000,
|
|
"standalone_shipping_amount_formatted": "3,000원"
|
|
}
|
|
}
|
|
],
|
|
"address": {
|
|
"country_code": "KR",
|
|
"zipcode": "06234"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"reviews": {
|
|
"data": {
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
},
|
|
"data": [
|
|
{
|
|
"id": 9101,
|
|
"product_id": 101,
|
|
"user": {
|
|
"uuid": "u-aaa",
|
|
"name": "김민지",
|
|
"email": "minji@example.com"
|
|
},
|
|
"product": {
|
|
"id": 101,
|
|
"name": "베이직 오버핏 코튼 티셔츠",
|
|
"thumbnail_url": "/images/placeholder.png"
|
|
},
|
|
"option_snapshot_label": "블랙 / M",
|
|
"rating": 5,
|
|
"content": "핏이 정말 예쁘고 원단도 도톰해서 만족스러워요.",
|
|
"content_mode": "text",
|
|
"status": "visible",
|
|
"status_label": "노출",
|
|
"status_badge_color": "green",
|
|
"image_count": 2,
|
|
"has_reply": true,
|
|
"has_reply_label": "답변완료",
|
|
"has_reply_badge_color": "green",
|
|
"reply_content": "소중한 후기 감사합니다!",
|
|
"replied_at": "2026-05-27 09:10:00",
|
|
"created_at": "2026-05-26 11:20:00",
|
|
"updated_at": "2026-05-26 11:20:00",
|
|
"is_owner": false,
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
},
|
|
{
|
|
"id": 9102,
|
|
"product_id": 101,
|
|
"user": {
|
|
"uuid": "u-bbb",
|
|
"name": "이서준",
|
|
"email": "seojun@example.com"
|
|
},
|
|
"product": {
|
|
"id": 101,
|
|
"name": "베이직 오버핏 코튼 티셔츠",
|
|
"thumbnail_url": "/images/placeholder.png"
|
|
},
|
|
"option_snapshot_label": "화이트 / L",
|
|
"rating": 4,
|
|
"content": "색감 예쁘고 좋아요.",
|
|
"content_mode": "text",
|
|
"status": "visible",
|
|
"status_label": "노출",
|
|
"status_badge_color": "green",
|
|
"image_count": 0,
|
|
"has_reply": false,
|
|
"has_reply_label": "미답변",
|
|
"has_reply_badge_color": "gray",
|
|
"reply_content": null,
|
|
"replied_at": null,
|
|
"created_at": "2026-05-24 16:42:00",
|
|
"updated_at": "2026-05-24 16:42:00",
|
|
"is_owner": false,
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
},
|
|
{
|
|
"id": 9103,
|
|
"product_id": 102,
|
|
"user": {
|
|
"uuid": "u-ccc",
|
|
"name": "박도윤",
|
|
"email": "doyun@example.com"
|
|
},
|
|
"product": {
|
|
"id": 102,
|
|
"name": "데일리 와이드 슬랙스",
|
|
"thumbnail_url": "/images/placeholder.png"
|
|
},
|
|
"option_snapshot_label": "",
|
|
"rating": 2,
|
|
"content": "기대보다 별로였어요.",
|
|
"content_mode": "text",
|
|
"status": "hidden",
|
|
"status_label": "숨김",
|
|
"status_badge_color": "gray",
|
|
"image_count": 0,
|
|
"has_reply": false,
|
|
"has_reply_label": "미답변",
|
|
"has_reply_badge_color": "gray",
|
|
"reply_content": null,
|
|
"replied_at": null,
|
|
"created_at": "2026-05-22 10:05:00",
|
|
"updated_at": "2026-05-22 10:05:00",
|
|
"is_owner": false,
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
}
|
|
],
|
|
"meta": {
|
|
"current_page": 1,
|
|
"last_page": 2,
|
|
"per_page": 15,
|
|
"total": 21
|
|
}
|
|
}
|
|
},
|
|
"brands": {
|
|
"data": {
|
|
"abilities": {
|
|
"can_create": true,
|
|
"can_update": true
|
|
},
|
|
"data": [
|
|
{
|
|
"id": 1,
|
|
"name": {
|
|
"ko": "코지홈"
|
|
},
|
|
"localized_name": "코지홈",
|
|
"slug": "cozyhome",
|
|
"url": "cozyhome",
|
|
"website": "https://cozyhome.example.com",
|
|
"sort_order": 1,
|
|
"is_active": true,
|
|
"icon": "tag",
|
|
"description": {
|
|
"ko": "데일리 베이직 의류 브랜드"
|
|
},
|
|
"products_count": 42,
|
|
"created_at": "2026-03-01 10:00:00",
|
|
"updated_at": "2026-05-01 10:00:00",
|
|
"is_owner": false,
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
},
|
|
{
|
|
"id": 2,
|
|
"name": {
|
|
"ko": "어반핏"
|
|
},
|
|
"localized_name": "어반핏",
|
|
"slug": "urbanfit",
|
|
"url": "urbanfit",
|
|
"website": null,
|
|
"sort_order": 2,
|
|
"is_active": true,
|
|
"icon": "tag",
|
|
"description": {
|
|
"ko": "모던 시티 캐주얼"
|
|
},
|
|
"products_count": 18,
|
|
"created_at": "2026-03-05 10:00:00",
|
|
"updated_at": "2026-05-02 10:00:00",
|
|
"is_owner": false,
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
},
|
|
{
|
|
"id": 3,
|
|
"name": {
|
|
"ko": "노스벨리"
|
|
},
|
|
"localized_name": "노스벨리",
|
|
"slug": "northvalley",
|
|
"url": "northvalley",
|
|
"website": "https://northvalley.example.com",
|
|
"sort_order": 3,
|
|
"is_active": false,
|
|
"icon": "tag",
|
|
"description": null,
|
|
"products_count": 7,
|
|
"created_at": "2026-03-10 10:00:00",
|
|
"updated_at": "2026-05-03 10:00:00",
|
|
"is_owner": false,
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"carriers": {
|
|
"data": [
|
|
{
|
|
"id": 1,
|
|
"name": "샘플 택배",
|
|
"code": "sample",
|
|
"enabled": true
|
|
},
|
|
{
|
|
"id": 2,
|
|
"name": "샘플 퀵",
|
|
"code": "quick",
|
|
"enabled": false
|
|
}
|
|
]
|
|
},
|
|
"active_carriers": {
|
|
"data": [
|
|
{
|
|
"id": 1,
|
|
"name": "샘플 택배",
|
|
"code": "sample"
|
|
}
|
|
]
|
|
},
|
|
"coupons": {
|
|
"data": {
|
|
"abilities": {
|
|
"can_create": true,
|
|
"can_update": true
|
|
},
|
|
"data": [
|
|
{
|
|
"id": 3001,
|
|
"name": {
|
|
"ko": "신규회원 10% 할인"
|
|
},
|
|
"localized_name": "신규회원 10% 할인",
|
|
"code": "WELCOME10",
|
|
"target_type": "order_amount",
|
|
"target_type_label": "주문금액",
|
|
"discount_type": "rate",
|
|
"discount_value": 10,
|
|
"benefit_formatted": "10% 할인",
|
|
"min_order_amount": 20000,
|
|
"max_discount_amount": 5000,
|
|
"is_active": true,
|
|
"issued_count": 1240,
|
|
"used_count": 318,
|
|
"valid_from": "2026-05-01 00:00:00",
|
|
"valid_to": "2026-06-30 23:59:59",
|
|
"created_at": "2026-04-25 10:00:00",
|
|
"is_owner": false,
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
},
|
|
{
|
|
"id": 3002,
|
|
"name": {
|
|
"ko": "5,000원 즉시할인"
|
|
},
|
|
"localized_name": "5,000원 즉시할인",
|
|
"code": "SAVE5000",
|
|
"target_type": "order_amount",
|
|
"target_type_label": "주문금액",
|
|
"discount_type": "fixed",
|
|
"discount_value": 5000,
|
|
"benefit_formatted": "5,000원 할인",
|
|
"min_order_amount": 30000,
|
|
"max_discount_amount": null,
|
|
"is_active": true,
|
|
"issued_count": 800,
|
|
"used_count": 145,
|
|
"valid_from": "2026-05-10 00:00:00",
|
|
"valid_to": "2026-06-15 23:59:59",
|
|
"created_at": "2026-05-08 10:00:00",
|
|
"is_owner": false,
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
},
|
|
{
|
|
"id": 3003,
|
|
"name": {
|
|
"ko": "무료배송 쿠폰"
|
|
},
|
|
"localized_name": "무료배송 쿠폰",
|
|
"code": "FREESHIP",
|
|
"target_type": "shipping_fee",
|
|
"target_type_label": "배송비",
|
|
"discount_type": "fixed",
|
|
"discount_value": 3000,
|
|
"benefit_formatted": "배송비 3,000원 할인",
|
|
"min_order_amount": 0,
|
|
"max_discount_amount": 3000,
|
|
"is_active": false,
|
|
"issued_count": 0,
|
|
"used_count": 0,
|
|
"valid_from": "2026-06-01 00:00:00",
|
|
"valid_to": "2026-07-31 23:59:59",
|
|
"created_at": "2026-05-20 10:00:00",
|
|
"is_owner": false,
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
}
|
|
],
|
|
"pagination": {
|
|
"current_page": 1,
|
|
"last_page": 3,
|
|
"per_page": 15,
|
|
"total": 38
|
|
}
|
|
}
|
|
},
|
|
"coupon": {
|
|
"data": {
|
|
"id": 1,
|
|
"name": {
|
|
"ko": "신규회원 10% 할인",
|
|
"en": "New Member 10% Off"
|
|
},
|
|
"localized_name": "신규회원 10% 할인",
|
|
"description": {
|
|
"ko": "신규 가입 회원 대상 주문금액 10% 할인 쿠폰",
|
|
"en": "10% off for new members"
|
|
},
|
|
"localized_description": "신규 가입 회원 대상 주문금액 10% 할인 쿠폰",
|
|
"target_type": "order_amount",
|
|
"target_type_label": "주문금액",
|
|
"target_type_badge_color": "blue",
|
|
"discount_type": "rate",
|
|
"discount_type_label": "정률",
|
|
"discount_value": 10,
|
|
"discount_max_amount": 20000,
|
|
"min_order_amount": 30000,
|
|
"benefit_formatted": "10% 할인 (최대 20,000원)",
|
|
"issue_method": "download",
|
|
"issue_method_label": "다운로드",
|
|
"issue_method_badge_color": "green",
|
|
"issue_condition": "manual",
|
|
"issue_condition_label": "수동발급",
|
|
"issue_condition_badge_color": "gray",
|
|
"issue_status": "active",
|
|
"issue_status_label": "발급중",
|
|
"issue_status_badge_color": "green",
|
|
"total_quantity": 1000,
|
|
"issued_count": 342,
|
|
"per_user_limit": 1,
|
|
"issue_count_formatted": "342 / 1,000",
|
|
"valid_type": "days",
|
|
"valid_days": 30,
|
|
"valid_from": null,
|
|
"valid_to": null,
|
|
"valid_period_formatted": "발급일로부터 30일",
|
|
"issue_from": "2026-05-01T00:00",
|
|
"issue_to": "2026-06-30T23:59",
|
|
"issue_period_formatted": "2026-05-01 ~ 2026-06-30",
|
|
"is_combinable": false,
|
|
"target_scope": "all",
|
|
"target_scope_label": "제한 없음",
|
|
"is_issuable": true,
|
|
"created_at": "2026-04-25 10:00",
|
|
"updated_at": "2026-05-08 14:20",
|
|
"created_by_name": "관리자",
|
|
"included_products": [],
|
|
"excluded_products": [],
|
|
"included_categories": [],
|
|
"excluded_categories": [],
|
|
"issues_count": 342,
|
|
"abilities": {
|
|
"can_create": true,
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
}
|
|
},
|
|
"couponIssues": {
|
|
"data": {
|
|
"data": [
|
|
{
|
|
"id": 9001,
|
|
"coupon_id": 1,
|
|
"user_id": "u-1001",
|
|
"user_name": "홍길동",
|
|
"coupon_code": "WELCOME-A1B2",
|
|
"status": "used",
|
|
"status_label": "사용완료",
|
|
"status_badge_color": "gray",
|
|
"issued_at": "2026-05-02 10:15",
|
|
"expired_at": "2026-06-01 23:59",
|
|
"used_at": "2026-05-10 14:20",
|
|
"order_id": 5101,
|
|
"discount_amount": 7000,
|
|
"is_expired": false,
|
|
"is_usable": false
|
|
},
|
|
{
|
|
"id": 9002,
|
|
"coupon_id": 1,
|
|
"user_id": "u-1002",
|
|
"user_name": "김영희",
|
|
"coupon_code": "WELCOME-C3D4",
|
|
"status": "issued",
|
|
"status_label": "발급완료",
|
|
"status_badge_color": "green",
|
|
"issued_at": "2026-05-15 09:40",
|
|
"expired_at": "2026-06-14 23:59",
|
|
"used_at": null,
|
|
"order_id": null,
|
|
"discount_amount": 0,
|
|
"is_expired": false,
|
|
"is_usable": true
|
|
},
|
|
{
|
|
"id": 9003,
|
|
"coupon_id": 1,
|
|
"user_id": "u-1003",
|
|
"user_name": "이철수",
|
|
"coupon_code": "WELCOME-E5F6",
|
|
"status": "expired",
|
|
"status_label": "기간만료",
|
|
"status_badge_color": "red",
|
|
"issued_at": "2026-04-01 11:00",
|
|
"expired_at": "2026-05-01 23:59",
|
|
"used_at": null,
|
|
"order_id": null,
|
|
"discount_amount": 0,
|
|
"is_expired": true,
|
|
"is_usable": false
|
|
}
|
|
],
|
|
"pagination": {
|
|
"current_page": 1,
|
|
"last_page": 1,
|
|
"per_page": 10,
|
|
"total": 3
|
|
}
|
|
}
|
|
},
|
|
"policy": {
|
|
"data": {
|
|
"id": 1,
|
|
"name": {
|
|
"ko": "기본 배송정책",
|
|
"en": "Standard Shipping"
|
|
},
|
|
"name_localized": "기본 배송정책",
|
|
"is_active": true,
|
|
"is_default": true,
|
|
"sort_order": 0,
|
|
"created_at": "2026-05-01 09:00",
|
|
"updated_at": "2026-05-20 11:30",
|
|
"fee_summary": "3,000원 (50,000원 이상 무료배송)",
|
|
"countries_display": [
|
|
{
|
|
"country_code": "KR",
|
|
"country_name": "대한민국",
|
|
"flag": "🇰🇷"
|
|
},
|
|
{
|
|
"country_code": "US",
|
|
"country_name": "미국",
|
|
"flag": "🇺🇸"
|
|
}
|
|
],
|
|
"country_settings": [
|
|
{
|
|
"id": 11,
|
|
"country_code": "KR",
|
|
"shipping_method": "parcel",
|
|
"shipping_method_label": "택배",
|
|
"custom_shipping_name": null,
|
|
"currency_code": "KRW",
|
|
"charge_policy": "conditional_free",
|
|
"charge_policy_label": "조건부 무료",
|
|
"base_fee": 3000,
|
|
"free_threshold": 50000,
|
|
"ranges": null,
|
|
"api_endpoint": null,
|
|
"api_request_fields": null,
|
|
"api_response_fee_field": null,
|
|
"extra_fee_enabled": true,
|
|
"extra_fee_settings": [
|
|
{
|
|
"region": "제주특별자치도",
|
|
"zipcode": "63000-63644",
|
|
"fee": 3000
|
|
},
|
|
{
|
|
"region": "도서산간",
|
|
"zipcode": "",
|
|
"fee": 4000
|
|
}
|
|
],
|
|
"extra_fee_multiply": false,
|
|
"is_active": true
|
|
},
|
|
{
|
|
"id": 12,
|
|
"country_code": "US",
|
|
"shipping_method": "express",
|
|
"shipping_method_label": "특송",
|
|
"custom_shipping_name": null,
|
|
"currency_code": "USD",
|
|
"charge_policy": "range_amount",
|
|
"charge_policy_label": "구간별(금액)",
|
|
"base_fee": 0,
|
|
"free_threshold": null,
|
|
"ranges": [
|
|
{
|
|
"min": 0,
|
|
"max": 100000,
|
|
"fee": 25000
|
|
},
|
|
{
|
|
"min": 100000,
|
|
"max": null,
|
|
"fee": 15000
|
|
}
|
|
],
|
|
"api_endpoint": null,
|
|
"api_request_fields": null,
|
|
"api_response_fee_field": null,
|
|
"extra_fee_enabled": false,
|
|
"extra_fee_settings": null,
|
|
"extra_fee_multiply": false,
|
|
"is_active": true
|
|
}
|
|
],
|
|
"abilities": {
|
|
"can_create": true,
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
}
|
|
},
|
|
"shipping_policies": {
|
|
"data": {
|
|
"abilities": {
|
|
"can_create": true,
|
|
"can_update": true,
|
|
"can_delete": true
|
|
},
|
|
"data": [
|
|
{
|
|
"id": 1,
|
|
"name": {
|
|
"ko": "기본 배송정책"
|
|
},
|
|
"name_localized": "기본 배송정책",
|
|
"is_active": true,
|
|
"is_default": true,
|
|
"sort_order": 1,
|
|
"fee_summary": "3,000원 (50,000원 이상 무료배송)",
|
|
"countries_display": "🇰🇷 대한민국",
|
|
"country_settings": [
|
|
{
|
|
"id": 1,
|
|
"country_code": "KR",
|
|
"country_name": "대한민국",
|
|
"shipping_method": "parcel",
|
|
"charge_policy": "conditional_free",
|
|
"base_fee": 3000,
|
|
"base_fee_formatted": "3,000원",
|
|
"currency_code": "KRW",
|
|
"free_threshold": 50000,
|
|
"free_threshold_formatted": "50,000원",
|
|
"carrier_label": "CJ대한통운"
|
|
}
|
|
],
|
|
"created_at": "2026-03-01 10:00:00",
|
|
"updated_at": "2026-05-01 10:00:00",
|
|
"is_owner": false,
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
},
|
|
{
|
|
"id": 2,
|
|
"name": {
|
|
"ko": "해외 배송정책"
|
|
},
|
|
"name_localized": "해외 배송정책",
|
|
"is_active": true,
|
|
"is_default": false,
|
|
"sort_order": 2,
|
|
"fee_summary": "국가별 차등 (25,000원~)",
|
|
"countries_display": "🇰🇷 🇺🇸 외 3개국",
|
|
"country_settings": [
|
|
{
|
|
"id": 1,
|
|
"country_code": "KR",
|
|
"country_name": "대한민국",
|
|
"shipping_method": "parcel",
|
|
"charge_policy": "conditional_free",
|
|
"base_fee": 3000,
|
|
"base_fee_formatted": "3,000원",
|
|
"currency_code": "KRW",
|
|
"free_threshold": 50000,
|
|
"free_threshold_formatted": "50,000원",
|
|
"carrier_label": "CJ대한통운"
|
|
},
|
|
{
|
|
"id": 2,
|
|
"country_code": "US",
|
|
"country_name": "미국",
|
|
"shipping_method": "express",
|
|
"charge_policy": "paid",
|
|
"base_fee": 25000,
|
|
"base_fee_formatted": "25,000원",
|
|
"currency_code": "KRW",
|
|
"free_threshold": null,
|
|
"free_threshold_formatted": null,
|
|
"carrier_label": "EMS"
|
|
}
|
|
],
|
|
"created_at": "2026-03-02 10:00:00",
|
|
"updated_at": "2026-05-02 10:00:00",
|
|
"is_owner": false,
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
},
|
|
{
|
|
"id": 3,
|
|
"name": {
|
|
"ko": "무료배송 정책"
|
|
},
|
|
"name_localized": "무료배송 정책",
|
|
"is_active": false,
|
|
"is_default": false,
|
|
"sort_order": 3,
|
|
"fee_summary": "전 상품 무료배송",
|
|
"countries_display": "🇰🇷 대한민국",
|
|
"country_settings": [
|
|
{
|
|
"id": 1,
|
|
"country_code": "KR",
|
|
"country_name": "대한민국",
|
|
"shipping_method": "parcel",
|
|
"charge_policy": "free",
|
|
"base_fee": 0,
|
|
"base_fee_formatted": "0원",
|
|
"currency_code": "KRW",
|
|
"free_threshold": 0,
|
|
"free_threshold_formatted": "0원",
|
|
"carrier_label": "CJ대한통운"
|
|
}
|
|
],
|
|
"created_at": "2026-03-03 10:00:00",
|
|
"updated_at": "2026-05-03 10:00:00",
|
|
"is_owner": false,
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
}
|
|
],
|
|
"pagination": {
|
|
"current_page": 1,
|
|
"last_page": 1,
|
|
"per_page": 20,
|
|
"total": 3
|
|
}
|
|
}
|
|
},
|
|
"extra_fee_templates": {
|
|
"data": {
|
|
"data": [
|
|
{
|
|
"id": 1,
|
|
"description": "제주 도서산간 추가배송비",
|
|
"region": "제주특별자치도",
|
|
"zipcode": "63000-63644",
|
|
"fee": 3000,
|
|
"fee_formatted": "3,000원",
|
|
"is_active": true
|
|
},
|
|
{
|
|
"id": 2,
|
|
"description": "울릉도/독도 추가배송비",
|
|
"region": "경상북도 울릉군",
|
|
"zipcode": "40200-40240",
|
|
"fee": 5000,
|
|
"fee_formatted": "5,000원",
|
|
"is_active": true
|
|
},
|
|
{
|
|
"id": 3,
|
|
"description": "기타 도서산간 추가배송비",
|
|
"region": "전국 도서산간",
|
|
"zipcode": "",
|
|
"fee": 4000,
|
|
"fee_formatted": "4,000원",
|
|
"is_active": false
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"presets": {
|
|
"data": [
|
|
{
|
|
"id": 1,
|
|
"name": "기본 프리셋",
|
|
"config": {}
|
|
}
|
|
]
|
|
},
|
|
"product_labels": {
|
|
"data": {
|
|
"abilities": {
|
|
"can_create": true,
|
|
"can_update": true
|
|
},
|
|
"data": [
|
|
{
|
|
"id": 1,
|
|
"name": {
|
|
"ko": "BEST"
|
|
},
|
|
"color": "#ef4444",
|
|
"is_active": true,
|
|
"sort_order": 1,
|
|
"assignments_count": 12,
|
|
"created_at": "2026-03-01 10:00:00",
|
|
"updated_at": "2026-05-01 10:00:00",
|
|
"is_owner": false,
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
},
|
|
{
|
|
"id": 2,
|
|
"name": {
|
|
"ko": "NEW"
|
|
},
|
|
"color": "#3b82f6",
|
|
"is_active": true,
|
|
"sort_order": 2,
|
|
"assignments_count": 8,
|
|
"created_at": "2026-03-02 10:00:00",
|
|
"updated_at": "2026-05-02 10:00:00",
|
|
"is_owner": false,
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
},
|
|
{
|
|
"id": 3,
|
|
"name": {
|
|
"ko": "한정특가"
|
|
},
|
|
"color": "#f59e0b",
|
|
"is_active": false,
|
|
"sort_order": 3,
|
|
"assignments_count": 0,
|
|
"created_at": "2026-03-03 10:00:00",
|
|
"updated_at": "2026-05-03 10:00:00",
|
|
"is_owner": false,
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"notice_templates": {
|
|
"data": {
|
|
"abilities": {
|
|
"can_create": true,
|
|
"can_update": true
|
|
},
|
|
"data": [
|
|
{
|
|
"id": 1,
|
|
"name": {
|
|
"ko": "의류 상품정보제공고시"
|
|
},
|
|
"localized_name": "의류 상품정보제공고시",
|
|
"category": "clothing",
|
|
"fields": [
|
|
{
|
|
"key": "material",
|
|
"label": {
|
|
"ko": "제품 소재"
|
|
}
|
|
},
|
|
{
|
|
"key": "size",
|
|
"label": {
|
|
"ko": "치수"
|
|
}
|
|
},
|
|
{
|
|
"key": "manufacturer",
|
|
"label": {
|
|
"ko": "제조자"
|
|
}
|
|
}
|
|
],
|
|
"fields_count": 3,
|
|
"is_active": true,
|
|
"sort_order": 1,
|
|
"icon": "file-alt",
|
|
"created_at": "2026-03-01 10:00:00",
|
|
"updated_at": "2026-05-01 10:00:00",
|
|
"is_owner": false,
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
},
|
|
{
|
|
"id": 2,
|
|
"name": {
|
|
"ko": "가공식품 상품정보제공고시"
|
|
},
|
|
"localized_name": "가공식품 상품정보제공고시",
|
|
"category": "food",
|
|
"fields": [
|
|
{
|
|
"key": "name",
|
|
"label": {
|
|
"ko": "제품명"
|
|
}
|
|
},
|
|
{
|
|
"key": "expiry",
|
|
"label": {
|
|
"ko": "소비기한"
|
|
}
|
|
}
|
|
],
|
|
"fields_count": 2,
|
|
"is_active": true,
|
|
"sort_order": 2,
|
|
"icon": "file-alt",
|
|
"created_at": "2026-03-02 10:00:00",
|
|
"updated_at": "2026-05-02 10:00:00",
|
|
"is_owner": false,
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
},
|
|
{
|
|
"id": 3,
|
|
"name": {
|
|
"ko": "전자제품 상품정보제공고시"
|
|
},
|
|
"localized_name": "전자제품 상품정보제공고시",
|
|
"category": "electronics",
|
|
"fields": [
|
|
{
|
|
"key": "model",
|
|
"label": {
|
|
"ko": "모델명"
|
|
}
|
|
}
|
|
],
|
|
"fields_count": 1,
|
|
"is_active": false,
|
|
"sort_order": 3,
|
|
"icon": "file-alt",
|
|
"created_at": "2026-03-03 10:00:00",
|
|
"updated_at": "2026-05-03 10:00:00",
|
|
"is_owner": false,
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"templates": {
|
|
"data": {
|
|
"data": [
|
|
{
|
|
"id": 1,
|
|
"name": "기본 안내문",
|
|
"body_html": "<p>샘플 상품 안내 템플릿</p>"
|
|
}
|
|
],
|
|
"meta": {
|
|
"total": 1,
|
|
"per_page": 20,
|
|
"current_page": 1
|
|
},
|
|
"abilities": {
|
|
"can_create": true
|
|
}
|
|
}
|
|
},
|
|
"common_infos": {
|
|
"data": {
|
|
"abilities": {
|
|
"can_create": true,
|
|
"can_update": true
|
|
},
|
|
"data": [
|
|
{
|
|
"id": 1,
|
|
"name": {
|
|
"ko": "기본 배송/교환/환불 안내"
|
|
},
|
|
"localized_name": "기본 배송/교환/환불 안내",
|
|
"content": {
|
|
"ko": "<p>주문 후 영업일 기준 1~2일 내 출고됩니다. 단순 변심 교환·반품은 수령 후 7일 이내 가능합니다.</p>"
|
|
},
|
|
"localized_content": "<p>주문 후 영업일 기준 1~2일 내 출고됩니다. 단순 변심 교환·반품은 수령 후 7일 이내 가능합니다.</p>",
|
|
"content_mode": "html",
|
|
"is_default": true,
|
|
"is_active": true,
|
|
"sort_order": 1,
|
|
"icon": "info-circle",
|
|
"products_count": 30,
|
|
"language_count": 1,
|
|
"created_at": "2026-03-01 10:00:00",
|
|
"updated_at": "2026-05-01 10:00:00",
|
|
"is_owner": false,
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
},
|
|
{
|
|
"id": 2,
|
|
"name": {
|
|
"ko": "식품 보관 안내"
|
|
},
|
|
"localized_name": "식품 보관 안내",
|
|
"content": {
|
|
"ko": "직사광선을 피해 서늘한 곳에 보관하세요."
|
|
},
|
|
"localized_content": "직사광선을 피해 서늘한 곳에 보관하세요.",
|
|
"content_mode": "text",
|
|
"is_default": false,
|
|
"is_active": true,
|
|
"sort_order": 2,
|
|
"icon": "info-circle",
|
|
"products_count": 5,
|
|
"language_count": 1,
|
|
"created_at": "2026-03-02 10:00:00",
|
|
"updated_at": "2026-05-02 10:00:00",
|
|
"is_owner": false,
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
},
|
|
{
|
|
"id": 3,
|
|
"name": {
|
|
"ko": "대형가전 설치 안내"
|
|
},
|
|
"localized_name": "대형가전 설치 안내",
|
|
"content": {
|
|
"ko": "<p>설치 기사 방문 일정은 별도 안내됩니다.</p>"
|
|
},
|
|
"localized_content": "<p>설치 기사 방문 일정은 별도 안내됩니다.</p>",
|
|
"content_mode": "html",
|
|
"is_default": false,
|
|
"is_active": true,
|
|
"sort_order": 3,
|
|
"icon": "info-circle",
|
|
"products_count": 2,
|
|
"language_count": 1,
|
|
"created_at": "2026-03-03 10:00:00",
|
|
"updated_at": "2026-05-03 10:00:00",
|
|
"is_owner": false,
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"commonInfos": {
|
|
"data": {
|
|
"abilities": {
|
|
"can_create": true,
|
|
"can_update": true
|
|
},
|
|
"data": [
|
|
{
|
|
"id": 1,
|
|
"name": {
|
|
"ko": "기본 배송/교환/환불 안내"
|
|
},
|
|
"localized_name": "기본 배송/교환/환불 안내",
|
|
"content": {
|
|
"ko": "<p>주문 후 영업일 기준 1~2일 내 출고됩니다. 단순 변심 교환·반품은 수령 후 7일 이내 가능합니다.</p>"
|
|
},
|
|
"localized_content": "<p>주문 후 영업일 기준 1~2일 내 출고됩니다. 단순 변심 교환·반품은 수령 후 7일 이내 가능합니다.</p>",
|
|
"content_mode": "html",
|
|
"is_default": true,
|
|
"is_active": true,
|
|
"sort_order": 1,
|
|
"icon": "info-circle",
|
|
"products_count": 30,
|
|
"language_count": 1,
|
|
"created_at": "2026-03-01 10:00:00",
|
|
"updated_at": "2026-05-01 10:00:00",
|
|
"is_owner": false,
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
},
|
|
{
|
|
"id": 2,
|
|
"name": {
|
|
"ko": "식품 보관 안내"
|
|
},
|
|
"localized_name": "식품 보관 안내",
|
|
"content": {
|
|
"ko": "직사광선을 피해 서늘한 곳에 보관하세요."
|
|
},
|
|
"localized_content": "직사광선을 피해 서늘한 곳에 보관하세요.",
|
|
"content_mode": "text",
|
|
"is_default": false,
|
|
"is_active": true,
|
|
"sort_order": 2,
|
|
"icon": "info-circle",
|
|
"products_count": 5,
|
|
"language_count": 1,
|
|
"created_at": "2026-03-02 10:00:00",
|
|
"updated_at": "2026-05-02 10:00:00",
|
|
"is_owner": false,
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
},
|
|
{
|
|
"id": 3,
|
|
"name": {
|
|
"ko": "대형가전 설치 안내"
|
|
},
|
|
"localized_name": "대형가전 설치 안내",
|
|
"content": {
|
|
"ko": "<p>설치 기사 방문 일정은 별도 안내됩니다.</p>"
|
|
},
|
|
"localized_content": "<p>설치 기사 방문 일정은 별도 안내됩니다.</p>",
|
|
"content_mode": "html",
|
|
"is_default": false,
|
|
"is_active": true,
|
|
"sort_order": 3,
|
|
"icon": "info-circle",
|
|
"products_count": 2,
|
|
"language_count": 1,
|
|
"created_at": "2026-03-03 10:00:00",
|
|
"updated_at": "2026-05-03 10:00:00",
|
|
"is_owner": false,
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"order_logs": {
|
|
"data": {
|
|
"data": [
|
|
{
|
|
"id": 3001,
|
|
"created_at": "2026-06-03 09:12",
|
|
"localized_description": "주문 상태를 결제완료에서 배송준비중으로 변경했습니다",
|
|
"user": {
|
|
"uuid": "admin-1",
|
|
"name": "관리자"
|
|
},
|
|
"changes": [
|
|
{
|
|
"field": "order_status",
|
|
"label": "주문상태",
|
|
"old": "payment_complete",
|
|
"old_label": "결제완료",
|
|
"new": "preparing",
|
|
"new_label": "배송준비중"
|
|
}
|
|
],
|
|
"bulk_changes": []
|
|
},
|
|
{
|
|
"id": 3002,
|
|
"created_at": "2026-06-01 19:31",
|
|
"localized_description": "결제가 완료되었습니다",
|
|
"user": null,
|
|
"changes": [
|
|
{
|
|
"field": "payment_status",
|
|
"label": "결제상태",
|
|
"old": "pending",
|
|
"old_label": "결제대기",
|
|
"new": "paid",
|
|
"new_label": "결제완료"
|
|
}
|
|
],
|
|
"bulk_changes": []
|
|
},
|
|
{
|
|
"id": 3003,
|
|
"created_at": "2026-06-01 19:30",
|
|
"localized_description": "관리자 메모를 수정했습니다",
|
|
"user": {
|
|
"uuid": "admin-1",
|
|
"name": "관리자"
|
|
},
|
|
"changes": [
|
|
{
|
|
"field": "admin_memo",
|
|
"label": "관리자 메모",
|
|
"old": "",
|
|
"old_label": "(없음)",
|
|
"new": "VIP 고객 — 빠른 배송 요청",
|
|
"new_label": "VIP 고객 — 빠른 배송 요청"
|
|
},
|
|
{
|
|
"field": "delivery_memo",
|
|
"label": "배송 메모",
|
|
"old": "",
|
|
"old_label": "(없음)",
|
|
"new": "부재 시 경비실",
|
|
"new_label": "부재 시 경비실"
|
|
}
|
|
],
|
|
"bulk_changes": []
|
|
}
|
|
],
|
|
"meta": {
|
|
"current_page": 1,
|
|
"last_page": 1,
|
|
"per_page": 20,
|
|
"total": 3
|
|
}
|
|
}
|
|
},
|
|
"activity_logs": {
|
|
"data": {
|
|
"data": [
|
|
{
|
|
"id": 1,
|
|
"log_type": "admin",
|
|
"log_type_label": "관리자",
|
|
"loggable_type": "Product",
|
|
"loggable_type_display": "상품",
|
|
"loggable_id": 101,
|
|
"action": "product.updated",
|
|
"action_label": "상품 수정",
|
|
"localized_description": "'베이직 오버핏 코튼 티셔츠' 상품을 수정했습니다.",
|
|
"description_key": "product.updated",
|
|
"properties": null,
|
|
"changes": [
|
|
{
|
|
"field": "selling_price",
|
|
"label": "판매가",
|
|
"old": 29000,
|
|
"new": 23200,
|
|
"old_label": "29,000원",
|
|
"new_label": "23,200원"
|
|
},
|
|
{
|
|
"field": "sales_status",
|
|
"label": "판매상태",
|
|
"old": "sold_out",
|
|
"new": "on_sale",
|
|
"old_label": "품절",
|
|
"new_label": "판매중"
|
|
}
|
|
],
|
|
"bulk_changes": null,
|
|
"has_changes": true,
|
|
"actor_name": "관리자",
|
|
"user": {
|
|
"uuid": "admin-uuid-1",
|
|
"name": "관리자",
|
|
"email": "admin@example.com"
|
|
},
|
|
"ip_address": "127.0.0.1",
|
|
"created_at": "2026-05-28 09:15:00",
|
|
"is_owner": false
|
|
},
|
|
{
|
|
"id": 2,
|
|
"log_type": "admin",
|
|
"log_type_label": "관리자",
|
|
"loggable_type": "Product",
|
|
"loggable_type_display": "상품",
|
|
"loggable_id": 101,
|
|
"action": "product.created",
|
|
"action_label": "상품 등록",
|
|
"localized_description": "'베이직 오버핏 코튼 티셔츠' 상품을 등록했습니다.",
|
|
"description_key": "product.created",
|
|
"properties": null,
|
|
"changes": null,
|
|
"bulk_changes": null,
|
|
"has_changes": false,
|
|
"actor_name": "운영자",
|
|
"user": {
|
|
"uuid": "admin-uuid-2",
|
|
"name": "운영자",
|
|
"email": "manager@example.com"
|
|
},
|
|
"ip_address": "127.0.0.1",
|
|
"created_at": "2026-05-20 14:30:00",
|
|
"is_owner": false
|
|
},
|
|
{
|
|
"id": 3,
|
|
"log_type": "admin",
|
|
"log_type_label": "관리자",
|
|
"loggable_type": "Product",
|
|
"loggable_type_display": "상품",
|
|
"loggable_id": 101,
|
|
"action": "product.stock_adjusted",
|
|
"action_label": "재고 조정",
|
|
"localized_description": "재고를 조정했습니다.",
|
|
"description_key": "product.stock_adjusted",
|
|
"properties": null,
|
|
"changes": [
|
|
{
|
|
"field": "stock_quantity",
|
|
"label": "재고수량",
|
|
"old": 200,
|
|
"new": 320,
|
|
"old_label": "200",
|
|
"new_label": "320"
|
|
}
|
|
],
|
|
"bulk_changes": null,
|
|
"has_changes": true,
|
|
"actor_name": "시스템",
|
|
"user": {
|
|
"name": "시스템"
|
|
},
|
|
"ip_address": null,
|
|
"created_at": "2026-05-25 03:00:00",
|
|
"is_owner": false
|
|
}
|
|
],
|
|
"meta": {
|
|
"current_page": 1,
|
|
"last_page": 1,
|
|
"per_page": 10,
|
|
"total": 3
|
|
}
|
|
}
|
|
},
|
|
"settings": {
|
|
"data": {
|
|
"general": {
|
|
"shop_name": "샘플 쇼핑몰",
|
|
"currency": "KRW"
|
|
},
|
|
"shipping": {
|
|
"default_fee": 3000,
|
|
"free_threshold": 50000
|
|
},
|
|
"inquiry": {
|
|
"board_slug": "product-inquiry"
|
|
},
|
|
"abilities": {
|
|
"can_update": true
|
|
}
|
|
}
|
|
},
|
|
"ecommerce_settings": {
|
|
"data": {
|
|
"basic_info": {
|
|
"shop_name": "",
|
|
"route_path": "shop",
|
|
"no_route": false,
|
|
"company_name": "",
|
|
"business_number": "",
|
|
"ceo_name": "",
|
|
"business_type": "",
|
|
"business_category": "",
|
|
"zipcode": "",
|
|
"base_address": "",
|
|
"detail_address": "",
|
|
"phone": "",
|
|
"fax": "",
|
|
"email": "",
|
|
"privacy_officer": "",
|
|
"privacy_officer_email": "",
|
|
"mail_order_number": "",
|
|
"telecom_number": ""
|
|
},
|
|
"language_currency": {
|
|
"default_language": "ko",
|
|
"default_currency": "KRW",
|
|
"currencies": [
|
|
{
|
|
"code": "KRW",
|
|
"name": {
|
|
"ko": "KRW (원)",
|
|
"en": "KRW (Won)",
|
|
"ja": "KRW (ウォン)"
|
|
},
|
|
"exchange_rate": null,
|
|
"rounding_unit": "1",
|
|
"rounding_method": "floor",
|
|
"decimal_places": 0,
|
|
"is_default": true
|
|
},
|
|
{
|
|
"code": "USD",
|
|
"name": {
|
|
"ko": "USD (달러)",
|
|
"en": "USD (Dollar)",
|
|
"ja": "USD (ドル)"
|
|
},
|
|
"exchange_rate": 0.85,
|
|
"rounding_unit": "0.01",
|
|
"rounding_method": "round",
|
|
"decimal_places": 2,
|
|
"is_default": false
|
|
},
|
|
{
|
|
"code": "JPY",
|
|
"name": {
|
|
"ko": "JPY (엔)",
|
|
"en": "JPY (Yen)",
|
|
"ja": "JPY (円)"
|
|
},
|
|
"exchange_rate": 115,
|
|
"rounding_unit": "1",
|
|
"rounding_method": "floor",
|
|
"decimal_places": 0,
|
|
"is_default": false
|
|
},
|
|
{
|
|
"code": "CNY",
|
|
"name": {
|
|
"ko": "CNY (위안)",
|
|
"en": "CNY (Yuan)",
|
|
"ja": "CNY (人民元)"
|
|
},
|
|
"exchange_rate": 5.8,
|
|
"rounding_unit": "0.01",
|
|
"rounding_method": "round",
|
|
"decimal_places": 2,
|
|
"is_default": false
|
|
},
|
|
{
|
|
"code": "EUR",
|
|
"name": {
|
|
"ko": "EUR (유로)",
|
|
"en": "EUR (Euro)",
|
|
"ja": "EUR (ユーロ)"
|
|
},
|
|
"exchange_rate": 0.78,
|
|
"rounding_unit": "0.01",
|
|
"rounding_method": "round",
|
|
"decimal_places": 2,
|
|
"is_default": false
|
|
}
|
|
]
|
|
},
|
|
"order_settings": {
|
|
"default_pg_provider": null,
|
|
"payment_methods": [
|
|
{
|
|
"id": "card",
|
|
"pg_provider": null,
|
|
"sort_order": 1,
|
|
"is_active": false,
|
|
"min_order_amount": 0,
|
|
"stock_deduction_timing": "payment_complete",
|
|
"_cached_name": {
|
|
"ko": "신용카드",
|
|
"en": "Credit Card",
|
|
"ja": "クレジットカード"
|
|
},
|
|
"_cached_description": {
|
|
"ko": "신용카드로 안전하게 결제",
|
|
"en": "Pay securely with credit card",
|
|
"ja": "クレジットカードで安全に決済"
|
|
},
|
|
"_cached_icon": "credit-card",
|
|
"_cached_source": "builtin"
|
|
},
|
|
{
|
|
"id": "vbank",
|
|
"pg_provider": null,
|
|
"sort_order": 2,
|
|
"is_active": false,
|
|
"min_order_amount": 0,
|
|
"stock_deduction_timing": "payment_complete",
|
|
"_cached_name": {
|
|
"ko": "가상계좌",
|
|
"en": "Virtual Account",
|
|
"ja": "バーチャル口座"
|
|
},
|
|
"_cached_description": {
|
|
"ko": "가상계좌로 입금",
|
|
"en": "Pay via virtual account",
|
|
"ja": "バーチャル口座に入金"
|
|
},
|
|
"_cached_icon": "money-check",
|
|
"_cached_source": "builtin"
|
|
},
|
|
{
|
|
"id": "dbank",
|
|
"pg_provider": null,
|
|
"sort_order": 3,
|
|
"is_active": true,
|
|
"min_order_amount": 0,
|
|
"stock_deduction_timing": "order_placed",
|
|
"_cached_name": {
|
|
"ko": "무통장입금",
|
|
"en": "Bank Transfer",
|
|
"ja": "銀行振込"
|
|
},
|
|
"_cached_description": {
|
|
"ko": "지정 계좌로 직접 입금",
|
|
"en": "Direct bank transfer",
|
|
"ja": "指定口座に直接入金"
|
|
},
|
|
"_cached_icon": "building-columns",
|
|
"_cached_source": "builtin"
|
|
},
|
|
{
|
|
"id": "bank",
|
|
"pg_provider": null,
|
|
"sort_order": 4,
|
|
"is_active": false,
|
|
"min_order_amount": 0,
|
|
"stock_deduction_timing": "payment_complete",
|
|
"_cached_name": {
|
|
"ko": "계좌이체",
|
|
"en": "Account Transfer",
|
|
"ja": "口座振替"
|
|
},
|
|
"_cached_description": {
|
|
"ko": "실시간 계좌이체",
|
|
"en": "Real-time bank transfer",
|
|
"ja": "リアルタイム口座振替"
|
|
},
|
|
"_cached_icon": "building-columns",
|
|
"_cached_source": "builtin"
|
|
},
|
|
{
|
|
"id": "phone",
|
|
"pg_provider": null,
|
|
"sort_order": 5,
|
|
"is_active": false,
|
|
"min_order_amount": 0,
|
|
"stock_deduction_timing": "payment_complete",
|
|
"_cached_name": {
|
|
"ko": "휴대폰결제",
|
|
"en": "Mobile Payment",
|
|
"ja": "携帯電話決済"
|
|
},
|
|
"_cached_description": {
|
|
"ko": "휴대폰 소액결제",
|
|
"en": "Mobile phone payment",
|
|
"ja": "携帯電話小額決済"
|
|
},
|
|
"_cached_icon": "mobile-screen-button",
|
|
"_cached_source": "builtin"
|
|
},
|
|
{
|
|
"id": "kginicis_samsung_pay",
|
|
"pg_provider": null,
|
|
"sort_order": 6,
|
|
"is_active": false,
|
|
"min_order_amount": 0,
|
|
"stock_deduction_timing": "payment_complete",
|
|
"_cached_name": {
|
|
"ko": "삼성페이 (KG이니시스)",
|
|
"en": "Samsung Pay (KG Inicis)"
|
|
},
|
|
"_cached_description": {
|
|
"ko": "삼성페이로 결제 — KG 이니시스를 통해 처리",
|
|
"en": "Pay with Samsung Pay via KG Inicis"
|
|
},
|
|
"_cached_icon": "mobile-screen-button",
|
|
"_cached_source": "plugin:sirsoft-pay_kginicis"
|
|
},
|
|
{
|
|
"id": "kginicis_naverpay",
|
|
"pg_provider": null,
|
|
"sort_order": 7,
|
|
"is_active": false,
|
|
"min_order_amount": 0,
|
|
"stock_deduction_timing": "payment_complete",
|
|
"_cached_name": {
|
|
"ko": "네이버페이 (KG이니시스)",
|
|
"en": "Naver Pay (KG Inicis)"
|
|
},
|
|
"_cached_description": {
|
|
"ko": "네이버페이로 결제 — KG 이니시스를 통해 처리",
|
|
"en": "Pay with Naver Pay via KG Inicis"
|
|
},
|
|
"_cached_icon": "wallet",
|
|
"_cached_source": "plugin:sirsoft-pay_kginicis"
|
|
},
|
|
{
|
|
"id": "kginicis_lpay",
|
|
"pg_provider": null,
|
|
"sort_order": 8,
|
|
"is_active": false,
|
|
"min_order_amount": 0,
|
|
"stock_deduction_timing": "payment_complete",
|
|
"_cached_name": {
|
|
"ko": "L.pay (KG이니시스)",
|
|
"en": "L.pay (KG Inicis)"
|
|
},
|
|
"_cached_description": {
|
|
"ko": "L.pay 로 결제 — KG 이니시스를 통해 처리",
|
|
"en": "Pay with L.pay via KG Inicis"
|
|
},
|
|
"_cached_icon": "mobile-screen-button",
|
|
"_cached_source": "plugin:sirsoft-pay_kginicis"
|
|
},
|
|
{
|
|
"id": "kginicis_kakaopay",
|
|
"pg_provider": null,
|
|
"sort_order": 9,
|
|
"is_active": false,
|
|
"min_order_amount": 0,
|
|
"stock_deduction_timing": "payment_complete",
|
|
"_cached_name": {
|
|
"ko": "카카오페이 (KG이니시스)",
|
|
"en": "Kakao Pay (KG Inicis)"
|
|
},
|
|
"_cached_description": {
|
|
"ko": "카카오페이로 결제 — KG 이니시스를 통해 처리",
|
|
"en": "Pay with Kakao Pay via KG Inicis"
|
|
},
|
|
"_cached_icon": "mobile-screen-button",
|
|
"_cached_source": "plugin:sirsoft-pay_kginicis"
|
|
},
|
|
{
|
|
"id": "kginicis_japan_paypay",
|
|
"pg_provider": null,
|
|
"sort_order": 10,
|
|
"is_active": false,
|
|
"min_order_amount": 0,
|
|
"stock_deduction_timing": "payment_complete",
|
|
"_cached_name": {
|
|
"ko": "PayPay (일본 KG이니시스)",
|
|
"en": "PayPay (KG Inicis Japan)"
|
|
},
|
|
"_cached_description": {
|
|
"ko": "일본 엔(JPY) 주문을 KG 이니시스 CBT PayPay로 결제",
|
|
"en": "Pay JPY orders with KG Inicis CBT PayPay"
|
|
},
|
|
"_cached_icon": "wallet",
|
|
"_cached_source": "plugin:sirsoft-pay_kginicis"
|
|
},
|
|
{
|
|
"id": "point",
|
|
"pg_provider": null,
|
|
"sort_order": 10,
|
|
"is_active": false,
|
|
"min_order_amount": 0,
|
|
"stock_deduction_timing": "order_placed",
|
|
"_cached_name": {
|
|
"ko": "포인트결제",
|
|
"en": "Points",
|
|
"ja": "ポイント決済"
|
|
},
|
|
"_cached_description": {
|
|
"ko": "적립 포인트로 결제",
|
|
"en": "Pay with points",
|
|
"ja": "積立ポイントで決済"
|
|
},
|
|
"_cached_icon": "coins",
|
|
"_cached_source": "builtin"
|
|
},
|
|
{
|
|
"id": "kginicis_japan_cvs",
|
|
"pg_provider": null,
|
|
"sort_order": 11,
|
|
"is_active": false,
|
|
"min_order_amount": 0,
|
|
"stock_deduction_timing": "payment_complete",
|
|
"_cached_name": {
|
|
"ko": "일본 편의점결제 (KG이니시스)",
|
|
"en": "Japan Convenience Store (KG Inicis)"
|
|
},
|
|
"_cached_description": {
|
|
"ko": "일본 엔(JPY) 주문을 KG 이니시스 CBT 편의점 결제로 접수",
|
|
"en": "Accept JPY orders with KG Inicis CBT convenience store payment"
|
|
},
|
|
"_cached_icon": "store",
|
|
"_cached_source": "plugin:sirsoft-pay_kginicis"
|
|
},
|
|
{
|
|
"id": "deposit",
|
|
"pg_provider": null,
|
|
"sort_order": 11,
|
|
"is_active": false,
|
|
"min_order_amount": 0,
|
|
"stock_deduction_timing": "order_placed",
|
|
"_cached_name": {
|
|
"ko": "예치금결제",
|
|
"en": "Store Credit",
|
|
"ja": "預金決済"
|
|
},
|
|
"_cached_description": {
|
|
"ko": "예치금으로 결제",
|
|
"en": "Pay with store credit",
|
|
"ja": "預金で決済"
|
|
},
|
|
"_cached_icon": "wallet",
|
|
"_cached_source": "builtin"
|
|
},
|
|
{
|
|
"id": "free",
|
|
"pg_provider": null,
|
|
"sort_order": 12,
|
|
"is_active": false,
|
|
"min_order_amount": 0,
|
|
"stock_deduction_timing": "order_placed",
|
|
"_cached_name": {
|
|
"ko": "무료",
|
|
"en": "Free",
|
|
"ja": "無料"
|
|
},
|
|
"_cached_description": {
|
|
"ko": "결제 없이 주문 완료",
|
|
"en": "Order without payment",
|
|
"ja": "決済なしで注文完了"
|
|
},
|
|
"_cached_icon": "gift",
|
|
"_cached_source": "builtin"
|
|
}
|
|
],
|
|
"banks": [
|
|
{
|
|
"code": "004",
|
|
"name": {
|
|
"ko": "국민은행",
|
|
"en": "Kookmin Bank"
|
|
}
|
|
},
|
|
{
|
|
"code": "088",
|
|
"name": {
|
|
"ko": "신한은행",
|
|
"en": "Shinhan Bank"
|
|
}
|
|
},
|
|
{
|
|
"code": "020",
|
|
"name": {
|
|
"ko": "우리은행",
|
|
"en": "Woori Bank"
|
|
}
|
|
},
|
|
{
|
|
"code": "081",
|
|
"name": {
|
|
"ko": "하나은행",
|
|
"en": "Hana Bank"
|
|
}
|
|
},
|
|
{
|
|
"code": "003",
|
|
"name": {
|
|
"ko": "IBK기업은행",
|
|
"en": "IBK Industrial Bank"
|
|
}
|
|
},
|
|
{
|
|
"code": "011",
|
|
"name": {
|
|
"ko": "NH농협은행",
|
|
"en": "NH Nonghyup Bank"
|
|
}
|
|
},
|
|
{
|
|
"code": "071",
|
|
"name": {
|
|
"ko": "우체국",
|
|
"en": "Korea Post"
|
|
}
|
|
},
|
|
{
|
|
"code": "031",
|
|
"name": {
|
|
"ko": "DGB대구은행",
|
|
"en": "DGB Daegu Bank"
|
|
}
|
|
},
|
|
{
|
|
"code": "032",
|
|
"name": {
|
|
"ko": "BNK부산은행",
|
|
"en": "BNK Busan Bank"
|
|
}
|
|
},
|
|
{
|
|
"code": "034",
|
|
"name": {
|
|
"ko": "광주은행",
|
|
"en": "Kwangju Bank"
|
|
}
|
|
},
|
|
{
|
|
"code": "035",
|
|
"name": {
|
|
"ko": "제주은행",
|
|
"en": "Jeju Bank"
|
|
}
|
|
},
|
|
{
|
|
"code": "037",
|
|
"name": {
|
|
"ko": "전북은행",
|
|
"en": "Jeonbuk Bank"
|
|
}
|
|
},
|
|
{
|
|
"code": "039",
|
|
"name": {
|
|
"ko": "BNK경남은행",
|
|
"en": "BNK Kyongnam Bank"
|
|
}
|
|
},
|
|
{
|
|
"code": "045",
|
|
"name": {
|
|
"ko": "새마을금고",
|
|
"en": "MG Community Credit Cooperatives"
|
|
}
|
|
},
|
|
{
|
|
"code": "048",
|
|
"name": {
|
|
"ko": "신협",
|
|
"en": "KFCC"
|
|
}
|
|
},
|
|
{
|
|
"code": "090",
|
|
"name": {
|
|
"ko": "카카오뱅크",
|
|
"en": "Kakao Bank"
|
|
}
|
|
},
|
|
{
|
|
"code": "092",
|
|
"name": {
|
|
"ko": "토스뱅크",
|
|
"en": "Toss Bank"
|
|
}
|
|
}
|
|
],
|
|
"bank_accounts": [
|
|
{
|
|
"bank_code": "004",
|
|
"account_number": "",
|
|
"account_holder": "",
|
|
"is_active": false,
|
|
"is_default": false
|
|
}
|
|
],
|
|
"auto_cancel_expired": true,
|
|
"auto_cancel_days": 3,
|
|
"vbank_due_days": 3,
|
|
"dbank_due_days": 7,
|
|
"cart_expiry_days": 30,
|
|
"stock_restore_on_cancel": true,
|
|
"cancellable_statuses": [
|
|
"payment_complete"
|
|
],
|
|
"confirmable_statuses": [
|
|
"shipping",
|
|
"delivered"
|
|
]
|
|
},
|
|
"shipping": {
|
|
"default_country": "KR",
|
|
"available_countries": [
|
|
{
|
|
"code": "KR",
|
|
"name": {
|
|
"ko": "대한민국",
|
|
"en": "South Korea",
|
|
"ja": "大韓民国"
|
|
},
|
|
"is_active": true
|
|
},
|
|
{
|
|
"code": "US",
|
|
"name": {
|
|
"ko": "미국",
|
|
"en": "United States",
|
|
"ja": "アメリカ"
|
|
},
|
|
"is_active": false
|
|
},
|
|
{
|
|
"code": "JP",
|
|
"name": {
|
|
"ko": "일본",
|
|
"en": "Japan",
|
|
"ja": "日本"
|
|
},
|
|
"is_active": false
|
|
},
|
|
{
|
|
"code": "CN",
|
|
"name": {
|
|
"ko": "중국",
|
|
"en": "China",
|
|
"ja": "中国"
|
|
},
|
|
"is_active": false
|
|
},
|
|
{
|
|
"code": "SG",
|
|
"name": {
|
|
"ko": "싱가포르",
|
|
"en": "Singapore",
|
|
"ja": "シンガポール"
|
|
},
|
|
"is_active": false
|
|
},
|
|
{
|
|
"code": "HK",
|
|
"name": {
|
|
"ko": "홍콩",
|
|
"en": "Hong Kong",
|
|
"ja": "香港"
|
|
},
|
|
"is_active": false
|
|
},
|
|
{
|
|
"code": "TW",
|
|
"name": {
|
|
"ko": "대만",
|
|
"en": "Taiwan",
|
|
"ja": "台湾"
|
|
},
|
|
"is_active": false
|
|
},
|
|
{
|
|
"code": "VN",
|
|
"name": {
|
|
"ko": "베트남",
|
|
"en": "Vietnam",
|
|
"ja": "ベトナム"
|
|
},
|
|
"is_active": false
|
|
},
|
|
{
|
|
"code": "TH",
|
|
"name": {
|
|
"ko": "태국",
|
|
"en": "Thailand",
|
|
"ja": "タイ"
|
|
},
|
|
"is_active": false
|
|
},
|
|
{
|
|
"code": "MY",
|
|
"name": {
|
|
"ko": "말레이시아",
|
|
"en": "Malaysia",
|
|
"ja": "マレーシア"
|
|
},
|
|
"is_active": false
|
|
}
|
|
],
|
|
"international_shipping_enabled": false,
|
|
"free_shipping_threshold": 50000,
|
|
"free_shipping_enabled": true,
|
|
"address_validation_enabled": false,
|
|
"address_api_provider": "kakao",
|
|
"carriers": [
|
|
{
|
|
"id": 1,
|
|
"code": "cj",
|
|
"name": {
|
|
"ko": "CJ대한통운",
|
|
"en": "CJ Logistics",
|
|
"ja": "CJ大韓通運"
|
|
},
|
|
"type": "domestic",
|
|
"tracking_url": "https://trace.cjlogistics.com/next/tracking.html?wblNo={tracking_number}",
|
|
"is_active": true,
|
|
"sort_order": 1
|
|
},
|
|
{
|
|
"id": 2,
|
|
"code": "hanjin",
|
|
"name": {
|
|
"ko": "한진택배",
|
|
"en": "Hanjin Express",
|
|
"ja": "韓進택배"
|
|
},
|
|
"type": "domestic",
|
|
"tracking_url": "https://www.hanjin.com/kor/CMS/DeliveryMgr/WaybillResult.do?wblnb={tracking_number}",
|
|
"is_active": true,
|
|
"sort_order": 2
|
|
},
|
|
{
|
|
"id": 3,
|
|
"code": "lotte",
|
|
"name": {
|
|
"ko": "롯데택배",
|
|
"en": "Lotte Global Logistics",
|
|
"ja": "ロッテ택배"
|
|
},
|
|
"type": "domestic",
|
|
"tracking_url": "https://www.lotteglogis.com/home/reservation/tracking/link498?InvNo={tracking_number}",
|
|
"is_active": true,
|
|
"sort_order": 3
|
|
},
|
|
{
|
|
"id": 4,
|
|
"code": "logen",
|
|
"name": {
|
|
"ko": "로젠택배",
|
|
"en": "Logen Logistics",
|
|
"ja": "ロジェン택배"
|
|
},
|
|
"type": "domestic",
|
|
"tracking_url": "https://www.ilogen.com/web/personal/trace/{tracking_number}",
|
|
"is_active": true,
|
|
"sort_order": 4
|
|
},
|
|
{
|
|
"id": 5,
|
|
"code": "ups",
|
|
"name": {
|
|
"ko": "UPS",
|
|
"en": "UPS",
|
|
"ja": "UPS"
|
|
},
|
|
"type": "international",
|
|
"tracking_url": "https://www.ups.com/track?tracknum={tracking_number}",
|
|
"is_active": true,
|
|
"sort_order": 5
|
|
},
|
|
{
|
|
"id": 6,
|
|
"code": "ems",
|
|
"name": {
|
|
"ko": "EMS",
|
|
"en": "EMS",
|
|
"ja": "EMS"
|
|
},
|
|
"type": "international",
|
|
"tracking_url": "https://service.epost.go.kr/trace.RetrieveEmsRi498.postal?POST_CODE={tracking_number}",
|
|
"is_active": true,
|
|
"sort_order": 6
|
|
},
|
|
{
|
|
"id": 7,
|
|
"code": "dhl",
|
|
"name": {
|
|
"ko": "DHL",
|
|
"en": "DHL",
|
|
"ja": "DHL"
|
|
},
|
|
"type": "international",
|
|
"tracking_url": "https://www.dhl.com/kr-ko/home/tracking/tracking-express.html?submit=1&tracking-id={tracking_number}",
|
|
"is_active": true,
|
|
"sort_order": 7
|
|
},
|
|
{
|
|
"id": 8,
|
|
"code": "fedex",
|
|
"name": {
|
|
"ko": "FedEx",
|
|
"en": "FedEx",
|
|
"ja": "FedEx"
|
|
},
|
|
"type": "international",
|
|
"tracking_url": "https://www.fedex.com/fedextrack/?tracknumbers={tracking_number}",
|
|
"is_active": true,
|
|
"sort_order": 8
|
|
},
|
|
{
|
|
"id": 9,
|
|
"code": "sf",
|
|
"name": {
|
|
"ko": "SF Express",
|
|
"en": "SF Express",
|
|
"ja": "SF Express"
|
|
},
|
|
"type": "international",
|
|
"tracking_url": null,
|
|
"is_active": true,
|
|
"sort_order": 9
|
|
},
|
|
{
|
|
"id": 10,
|
|
"code": "yamato",
|
|
"name": {
|
|
"ko": "야마토운수",
|
|
"en": "Yamato Transport",
|
|
"ja": "ヤマト運輸"
|
|
},
|
|
"type": "international",
|
|
"tracking_url": null,
|
|
"is_active": true,
|
|
"sort_order": 10
|
|
},
|
|
{
|
|
"id": 11,
|
|
"code": "sagawa",
|
|
"name": {
|
|
"ko": "사가와익스프레스",
|
|
"en": "Sagawa Express",
|
|
"ja": "佐川急便"
|
|
},
|
|
"type": "international",
|
|
"tracking_url": null,
|
|
"is_active": true,
|
|
"sort_order": 11
|
|
},
|
|
{
|
|
"id": 12,
|
|
"code": "other",
|
|
"name": {
|
|
"ko": "기타",
|
|
"en": "Other",
|
|
"ja": "その他"
|
|
},
|
|
"type": "domestic",
|
|
"tracking_url": null,
|
|
"is_active": true,
|
|
"sort_order": 99
|
|
}
|
|
],
|
|
"types": [
|
|
{
|
|
"id": 1,
|
|
"code": "parcel",
|
|
"name": {
|
|
"ko": "택배",
|
|
"en": "Parcel",
|
|
"ja": "宅配便"
|
|
},
|
|
"category": "domestic",
|
|
"is_active": true,
|
|
"sort_order": 1
|
|
},
|
|
{
|
|
"id": 2,
|
|
"code": "direct",
|
|
"name": {
|
|
"ko": "직접배송",
|
|
"en": "Direct Delivery",
|
|
"ja": "直送"
|
|
},
|
|
"category": "domestic",
|
|
"is_active": true,
|
|
"sort_order": 2
|
|
},
|
|
{
|
|
"id": 3,
|
|
"code": "quick",
|
|
"name": {
|
|
"ko": "퀵서비스",
|
|
"en": "Quick Service",
|
|
"ja": "クイックサービス"
|
|
},
|
|
"category": "domestic",
|
|
"is_active": true,
|
|
"sort_order": 3
|
|
},
|
|
{
|
|
"id": 4,
|
|
"code": "freight",
|
|
"name": {
|
|
"ko": "화물배송",
|
|
"en": "Freight",
|
|
"ja": "貨物配送"
|
|
},
|
|
"category": "domestic",
|
|
"is_active": true,
|
|
"sort_order": 4
|
|
},
|
|
{
|
|
"id": 5,
|
|
"code": "pickup",
|
|
"name": {
|
|
"ko": "매장수령",
|
|
"en": "Store Pickup",
|
|
"ja": "店舗受取"
|
|
},
|
|
"category": "domestic",
|
|
"is_active": true,
|
|
"sort_order": 5
|
|
},
|
|
{
|
|
"id": 6,
|
|
"code": "express",
|
|
"name": {
|
|
"ko": "국내특급",
|
|
"en": "Express",
|
|
"ja": "国内特急"
|
|
},
|
|
"category": "domestic",
|
|
"is_active": false,
|
|
"sort_order": 6
|
|
},
|
|
{
|
|
"id": 7,
|
|
"code": "international_ems",
|
|
"name": {
|
|
"ko": "국제EMS",
|
|
"en": "International EMS",
|
|
"ja": "国際EMS"
|
|
},
|
|
"category": "international",
|
|
"is_active": false,
|
|
"sort_order": 7
|
|
},
|
|
{
|
|
"id": 8,
|
|
"code": "international_standard",
|
|
"name": {
|
|
"ko": "국제일반",
|
|
"en": "International Standard",
|
|
"ja": "国際通常"
|
|
},
|
|
"category": "international",
|
|
"is_active": false,
|
|
"sort_order": 8
|
|
},
|
|
{
|
|
"id": 9,
|
|
"code": "cvs",
|
|
"name": {
|
|
"ko": "편의점택배",
|
|
"en": "Convenience Store",
|
|
"ja": "コンビニ宅配便"
|
|
},
|
|
"category": "other",
|
|
"is_active": false,
|
|
"sort_order": 9
|
|
},
|
|
{
|
|
"id": 10,
|
|
"code": "digital",
|
|
"name": {
|
|
"ko": "디지털상품",
|
|
"en": "Digital",
|
|
"ja": "デジタル商品"
|
|
},
|
|
"category": "other",
|
|
"is_active": false,
|
|
"sort_order": 10
|
|
},
|
|
{
|
|
"id": 11,
|
|
"code": "custom",
|
|
"name": {
|
|
"ko": "직접입력",
|
|
"en": "Custom",
|
|
"ja": "直接入力"
|
|
},
|
|
"category": "domestic",
|
|
"is_active": true,
|
|
"sort_order": 99
|
|
}
|
|
]
|
|
},
|
|
"seo": {
|
|
"meta_category_title": "{commerce_name} - {category_name}",
|
|
"meta_category_description": "",
|
|
"meta_search_title": "{commerce_name} - {keyword_name}",
|
|
"meta_search_description": "",
|
|
"meta_product_title": "{commerce_name} - {product_name}",
|
|
"meta_product_description": "",
|
|
"meta_shop_index_title": "{commerce_name}",
|
|
"meta_shop_index_description": "",
|
|
"seo_category": true,
|
|
"seo_search_result": true,
|
|
"seo_product_detail": true,
|
|
"seo_shop_index": true
|
|
},
|
|
"review_settings": {
|
|
"write_deadline_days": 90,
|
|
"max_images": 5,
|
|
"max_image_size_mb": 10
|
|
},
|
|
"inquiry": {
|
|
"board_slug": null
|
|
},
|
|
"notifications": {
|
|
"channels": [
|
|
{
|
|
"id": "mail",
|
|
"is_active": true,
|
|
"sort_order": 1
|
|
},
|
|
{
|
|
"id": "database",
|
|
"is_active": true,
|
|
"sort_order": 2
|
|
}
|
|
]
|
|
},
|
|
"claim": {
|
|
"refund_reasons": [
|
|
{
|
|
"id": 1,
|
|
"type": "refund",
|
|
"code": "order_mistake",
|
|
"name": {
|
|
"ko": "주문 실수",
|
|
"en": "Order Mistake",
|
|
"ja": "注文ミス"
|
|
},
|
|
"localized_name": "주문 실수",
|
|
"fault_type": "customer",
|
|
"is_user_selectable": true,
|
|
"is_active": true,
|
|
"sort_order": 0
|
|
},
|
|
{
|
|
"id": 2,
|
|
"type": "refund",
|
|
"code": "changed_mind",
|
|
"name": {
|
|
"ko": "단순 변심",
|
|
"en": "Changed Mind",
|
|
"ja": "単純な心変わり"
|
|
},
|
|
"localized_name": "단순 변심",
|
|
"fault_type": "customer",
|
|
"is_user_selectable": true,
|
|
"is_active": true,
|
|
"sort_order": 1
|
|
},
|
|
{
|
|
"id": 3,
|
|
"type": "refund",
|
|
"code": "reorder_other",
|
|
"name": {
|
|
"ko": "다른 상품으로 재주문",
|
|
"en": "Reorder with Different Product",
|
|
"ja": "別の商品で再注文"
|
|
},
|
|
"localized_name": "다른 상품으로 재주문",
|
|
"fault_type": "customer",
|
|
"is_user_selectable": true,
|
|
"is_active": true,
|
|
"sort_order": 2
|
|
},
|
|
{
|
|
"id": 4,
|
|
"type": "refund",
|
|
"code": "delayed_delivery",
|
|
"name": {
|
|
"ko": "배송 지연",
|
|
"en": "Delayed Delivery",
|
|
"ja": "配送遅延"
|
|
},
|
|
"localized_name": "배송 지연",
|
|
"fault_type": "seller",
|
|
"is_user_selectable": true,
|
|
"is_active": true,
|
|
"sort_order": 3
|
|
},
|
|
{
|
|
"id": 5,
|
|
"type": "refund",
|
|
"code": "product_info_different",
|
|
"name": {
|
|
"ko": "상품 정보 상이",
|
|
"en": "Product Info Different",
|
|
"ja": "商品情報の相違"
|
|
},
|
|
"localized_name": "상품 정보 상이",
|
|
"fault_type": "seller",
|
|
"is_user_selectable": true,
|
|
"is_active": true,
|
|
"sort_order": 4
|
|
},
|
|
{
|
|
"id": 6,
|
|
"type": "refund",
|
|
"code": "admin_cancel",
|
|
"name": {
|
|
"ko": "관리자 취소",
|
|
"en": "Admin Cancel",
|
|
"ja": "管理者キャンセル"
|
|
},
|
|
"localized_name": "관리자 취소",
|
|
"fault_type": "seller",
|
|
"is_user_selectable": false,
|
|
"is_active": true,
|
|
"sort_order": 5
|
|
},
|
|
{
|
|
"id": 7,
|
|
"type": "refund",
|
|
"code": "etc",
|
|
"name": {
|
|
"ko": "기타",
|
|
"en": "Etc",
|
|
"ja": "その他"
|
|
},
|
|
"localized_name": "기타",
|
|
"fault_type": "customer",
|
|
"is_user_selectable": true,
|
|
"is_active": true,
|
|
"sort_order": 6
|
|
}
|
|
]
|
|
},
|
|
"available_pg_providers": [
|
|
{
|
|
"id": "kginicis",
|
|
"name": "KG 이니시스",
|
|
"icon": "credit-card",
|
|
"supported_methods": [
|
|
"card",
|
|
"bank_transfer",
|
|
"virtual_account",
|
|
"mobile"
|
|
]
|
|
},
|
|
{
|
|
"id": "tosspayments",
|
|
"name_key": "sirsoft-tosspayments::provider.name",
|
|
"name": "토스페이먼츠",
|
|
"icon": "credit-card",
|
|
"supported_methods": [
|
|
"card"
|
|
]
|
|
}
|
|
],
|
|
"abilities": {
|
|
"can_update": true
|
|
}
|
|
}
|
|
},
|
|
"seoStats": {
|
|
"data": {
|
|
"count": 0,
|
|
"size_bytes": 0,
|
|
"size_formatted": "0 B"
|
|
}
|
|
},
|
|
"copy_source": {
|
|
"data": {
|
|
"id": 102,
|
|
"name": {
|
|
"ko": "데일리 와이드 슬랙스",
|
|
"en": "Daily Wide Slacks"
|
|
},
|
|
"product_code": "PT-2042",
|
|
"selling_price": 39000,
|
|
"thumbnail_url": "/images/placeholder.png",
|
|
"images": [
|
|
{
|
|
"id": 5101,
|
|
"hash": "img5101",
|
|
"original_filename": "slacks_main.jpg",
|
|
"download_url": "/images/placeholder.png",
|
|
"alt_text": "정면",
|
|
"is_thumbnail": true,
|
|
"sort_order": 0,
|
|
"order": 0,
|
|
"width": 1000,
|
|
"height": 1000,
|
|
"file_size": 172000,
|
|
"size": 172000,
|
|
"size_formatted": "168 KB",
|
|
"mime_type": "image/jpeg",
|
|
"is_image": true
|
|
},
|
|
{
|
|
"id": 5102,
|
|
"hash": "img5102",
|
|
"original_filename": "slacks_detail.jpg",
|
|
"download_url": "/images/placeholder.png",
|
|
"alt_text": "디테일",
|
|
"is_thumbnail": false,
|
|
"sort_order": 1,
|
|
"order": 1,
|
|
"width": 1000,
|
|
"height": 1000,
|
|
"file_size": 165000,
|
|
"size": 165000,
|
|
"size_formatted": "161 KB",
|
|
"mime_type": "image/jpeg",
|
|
"is_image": true
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"refundReasons": {
|
|
"data": [
|
|
{
|
|
"id": 1,
|
|
"reason": "단순 변심",
|
|
"code": "change_mind"
|
|
},
|
|
{
|
|
"id": 2,
|
|
"reason": "상품 불량",
|
|
"code": "defective"
|
|
}
|
|
]
|
|
},
|
|
"availableChannels": {
|
|
"data": {
|
|
"channels": [
|
|
{
|
|
"id": "mail",
|
|
"name": "이메일",
|
|
"icon": "fas fa-envelope",
|
|
"source": "core",
|
|
"source_label": "코어"
|
|
},
|
|
{
|
|
"id": "sms",
|
|
"name": "SMS",
|
|
"icon": "fas fa-comment-sms",
|
|
"source": "core",
|
|
"source_label": "코어"
|
|
},
|
|
{
|
|
"id": "push",
|
|
"name": "푸시",
|
|
"icon": "fas fa-bell",
|
|
"source": "core",
|
|
"source_label": "코어"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"identityProviders": {
|
|
"data": [
|
|
{
|
|
"id": "kginicis",
|
|
"label": "KG이니시스"
|
|
},
|
|
{
|
|
"id": "nice",
|
|
"label": "나이스"
|
|
}
|
|
]
|
|
},
|
|
"ecommerceIdentityPurposes": {
|
|
"data": [
|
|
{
|
|
"id": "signup",
|
|
"label": "회원가입",
|
|
"source_identifier": "sirsoft-ecommerce",
|
|
"description": "회원가입 시 본인인증",
|
|
"allowed_channels": [
|
|
"mobile"
|
|
]
|
|
},
|
|
{
|
|
"id": "sensitive_action",
|
|
"label": "민감 작업",
|
|
"source_identifier": "core",
|
|
"description": "민감 작업 시 본인인증",
|
|
"allowed_channels": [
|
|
"mobile",
|
|
"ipin"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"ecommerceIdentityPolicies": {
|
|
"data": {
|
|
"data": [
|
|
{
|
|
"id": 1,
|
|
"key": "shop.signup",
|
|
"scope": "route",
|
|
"target": "/shop/signup",
|
|
"purpose": "signup",
|
|
"provider_id": "kginicis",
|
|
"grace_minutes": 0,
|
|
"enabled": true,
|
|
"source_type": "admin",
|
|
"abilities": {
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
}
|
|
],
|
|
"meta": {
|
|
"total": 1,
|
|
"current_page": 1,
|
|
"last_page": 1,
|
|
"per_page": 20
|
|
},
|
|
"abilities": {
|
|
"can_create": true
|
|
}
|
|
}
|
|
},
|
|
"ecommerceNotificationDefinitions": {
|
|
"data": {
|
|
"data": [
|
|
{
|
|
"id": 1,
|
|
"type": "order.paid",
|
|
"is_active": true,
|
|
"is_default": true,
|
|
"variables": [
|
|
{
|
|
"key": "order_no"
|
|
}
|
|
],
|
|
"templates": [
|
|
{
|
|
"id": 11,
|
|
"channel": "mail",
|
|
"is_active": true,
|
|
"is_default": true,
|
|
"subject": {
|
|
"ko": "결제 완료 안내",
|
|
"en": "Payment completed"
|
|
},
|
|
"body": {
|
|
"ko": "<p>결제가 완료되었습니다.</p>",
|
|
"en": "<p>Payment completed.</p>"
|
|
},
|
|
"recipients": [
|
|
{
|
|
"type": "trigger_user"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"pagination": {
|
|
"total": 1,
|
|
"current_page": 1,
|
|
"last_page": 1
|
|
},
|
|
"abilities": {
|
|
"can_update": true
|
|
}
|
|
}
|
|
},
|
|
"roles": {
|
|
"data": {
|
|
"data": [
|
|
{
|
|
"id": 1,
|
|
"identifier": "super_admin",
|
|
"name": "최고 관리자",
|
|
"display_name": "최고 관리자",
|
|
"description": "전체 권한",
|
|
"is_system": true
|
|
},
|
|
{
|
|
"id": 2,
|
|
"identifier": "manager",
|
|
"name": "운영자",
|
|
"display_name": "운영자",
|
|
"description": "운영 권한",
|
|
"is_system": false
|
|
},
|
|
{
|
|
"id": 3,
|
|
"identifier": "member",
|
|
"name": "일반 회원",
|
|
"display_name": "일반 회원",
|
|
"description": "기본 회원",
|
|
"is_system": true
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"category": {
|
|
"data": {
|
|
"breadcrumb": [
|
|
"샘플"
|
|
],
|
|
"children": [
|
|
"샘플"
|
|
],
|
|
"description": "<p>샘플 설명입니다.</p>",
|
|
"description_localized": "샘플 description_localized",
|
|
"images": [
|
|
"샘플"
|
|
],
|
|
"name": "샘플 name",
|
|
"name_localized": "샘플 name_localized"
|
|
}
|
|
},
|
|
"qna": {
|
|
"data": {
|
|
"items": [
|
|
"샘플"
|
|
],
|
|
"meta": {
|
|
"abilities": {
|
|
"can_delete": true,
|
|
"can_update": true
|
|
},
|
|
"board_settings": "샘플",
|
|
"current_page": 3,
|
|
"last_page": 3,
|
|
"total": 10000
|
|
}
|
|
}
|
|
},
|
|
"productDownloadableCoupons": {
|
|
"data": {
|
|
"data": "샘플"
|
|
}
|
|
},
|
|
"cartItems": {
|
|
"data": {
|
|
"calculation": {
|
|
"items": [
|
|
"샘플"
|
|
],
|
|
"summary": {
|
|
"base_shipping_total": 10000,
|
|
"code_discount": 10000,
|
|
"discount_formatted": "10,000원",
|
|
"extra_shipping_total": 10000,
|
|
"final_amount_formatted": "10,000원",
|
|
"mileage_formatted": "10,000원",
|
|
"multi_currency": "샘플",
|
|
"order_coupon_discount": 10000,
|
|
"payment_amount_formatted": "10,000원",
|
|
"points_earning": 10000,
|
|
"product_coupon_discount": 10000,
|
|
"shipping_discount": 10000,
|
|
"shipping_fee_formatted": "10,000원",
|
|
"subtotal_formatted": "10,000원",
|
|
"tax_free_amount": 10000,
|
|
"taxable_amount": 10000,
|
|
"total_discount": 10000,
|
|
"total_shipping": 10000
|
|
}
|
|
},
|
|
"item_count": 3,
|
|
"items": [
|
|
"샘플"
|
|
]
|
|
}
|
|
},
|
|
"checkoutData": {
|
|
"data": {
|
|
"available_coupons": [
|
|
"샘플"
|
|
],
|
|
"calculation": {
|
|
"items": [
|
|
"샘플"
|
|
],
|
|
"promotions": {
|
|
"order_promotions": {
|
|
"coupons": [
|
|
"샘플"
|
|
]
|
|
},
|
|
"product_promotions": {
|
|
"coupons": [
|
|
"샘플"
|
|
]
|
|
}
|
|
},
|
|
"summary": {
|
|
"base_shipping_total": 10000,
|
|
"code_discount": 10000,
|
|
"code_discount_formatted": "10,000원",
|
|
"extra_shipping_total": 10000,
|
|
"final_amount": 10000,
|
|
"final_amount_formatted": "10,000원",
|
|
"mileage_formatted": "10,000원",
|
|
"multi_currency": "샘플",
|
|
"order_coupon_discount": 10000,
|
|
"order_coupon_discount_formatted": "10,000원",
|
|
"payment_amount_formatted": "10,000원",
|
|
"points_earning": 10000,
|
|
"points_used": 10000,
|
|
"points_used_formatted": "10,000원",
|
|
"product_coupon_discount": 10000,
|
|
"shipping_discount": 10000,
|
|
"shipping_discount_formatted": "10,000원",
|
|
"subtotal_formatted": "10,000원",
|
|
"tax_free_amount": 10000,
|
|
"taxable_amount": 10000,
|
|
"total_discount": 10000,
|
|
"total_discount_formatted": "10,000원",
|
|
"total_shipping": 10000,
|
|
"total_shipping_formatted": "10,000원"
|
|
}
|
|
},
|
|
"items": [
|
|
"샘플"
|
|
],
|
|
"mileage": {
|
|
"balance": 10000,
|
|
"balance_formatted": "10,000원",
|
|
"max_usable": "샘플",
|
|
"max_usable_formatted": "10,000원"
|
|
},
|
|
"temp_order_id": 1
|
|
}
|
|
},
|
|
"userAddresses": {
|
|
"data": {
|
|
"addresses": {
|
|
"data": "샘플"
|
|
}
|
|
}
|
|
},
|
|
"paymentSettings": {
|
|
"data": {
|
|
"order_settings": {
|
|
"bank_accounts": [
|
|
"샘플"
|
|
],
|
|
"dbank_due_days": 3,
|
|
"payment_methods": "샘플",
|
|
"vbank_due_days": 3
|
|
}
|
|
}
|
|
},
|
|
"orderData": {
|
|
"data": {
|
|
"mc_subtotal_amount": 10000,
|
|
"mc_total_amount": 10000,
|
|
"mc_total_discount_amount": 10000,
|
|
"mc_total_shipping_amount": 10000,
|
|
"options": [
|
|
"샘플"
|
|
],
|
|
"order_number": 3,
|
|
"payment": {
|
|
"dbank_account": "샘플",
|
|
"dbank_holder": "샘플 dbank_holder",
|
|
"dbank_name": "샘플 dbank_name",
|
|
"deposit_due_at_formatted": "10,000원",
|
|
"depositor_name": "샘플 depositor_name",
|
|
"payment_method": "card",
|
|
"vbank_due_at": "2026-05-24 09:32:38",
|
|
"vbank_holder": "샘플 vbank_holder",
|
|
"vbank_name": "샘플 vbank_name",
|
|
"vbank_number": 3
|
|
},
|
|
"shipping_address": {
|
|
"address": "샘플 address",
|
|
"address_detail": "샘플 address_detail",
|
|
"city": "샘플",
|
|
"recipient_country_code": "KR",
|
|
"recipient_name": "샘플 recipient_name",
|
|
"recipient_phone": "010-1234-5678",
|
|
"state": "sample",
|
|
"zipcode": "sample"
|
|
},
|
|
"subtotal_amount_formatted": "10,000원",
|
|
"total_amount_formatted": "10,000원",
|
|
"total_discount_amount": 10000,
|
|
"total_discount_amount_formatted": "10,000원",
|
|
"total_shipping_amount": 10000,
|
|
"total_shipping_amount_formatted": "10,000원"
|
|
}
|
|
},
|
|
"wishlist": {
|
|
"data": {
|
|
"data": [
|
|
"샘플"
|
|
],
|
|
"pagination": {
|
|
"current_page": 3,
|
|
"last_page": 3,
|
|
"total": 10000
|
|
}
|
|
}
|
|
},
|
|
"addresses": {
|
|
"data": {
|
|
"addresses": {
|
|
"data": "샘플"
|
|
}
|
|
}
|
|
},
|
|
"myInquiries": {
|
|
"data": {
|
|
"items": [
|
|
"샘플"
|
|
],
|
|
"meta": {
|
|
"board_settings": "샘플",
|
|
"current_page": 3,
|
|
"last_page": 3,
|
|
"total": 10000
|
|
}
|
|
}
|
|
},
|
|
"board_list_for_inquiry": {
|
|
"data": {
|
|
"data": [
|
|
{
|
|
"id": 1,
|
|
"name": "공지사항",
|
|
"slug": "notice",
|
|
"is_active": true,
|
|
"type": "basic",
|
|
"description": "공지사항 게시판입니다.",
|
|
"per_page": 20,
|
|
"per_page_mobile": 15,
|
|
"order_by": "created_at",
|
|
"order_direction": "DESC",
|
|
"categories": [],
|
|
"show_view_count": true,
|
|
"secret_mode": "disabled",
|
|
"use_comment": true,
|
|
"use_reply": true,
|
|
"max_reply_depth": 5,
|
|
"use_report": false,
|
|
"comment_order": "ASC",
|
|
"max_comment_depth": 10,
|
|
"min_title_length": 2,
|
|
"max_title_length": 200,
|
|
"min_content_length": 2,
|
|
"max_content_length": 10000,
|
|
"min_comment_length": 2,
|
|
"max_comment_length": 1000,
|
|
"blocked_keywords": [],
|
|
"use_file_upload": false,
|
|
"max_file_size": 10,
|
|
"max_file_count": 5,
|
|
"allowed_extensions": [
|
|
"jpg",
|
|
"jpeg",
|
|
"png",
|
|
"gif",
|
|
"webp",
|
|
"pdf",
|
|
"doc",
|
|
"docx",
|
|
"xls",
|
|
"xlsx",
|
|
"ppt",
|
|
"pptx",
|
|
"hwp",
|
|
"txt",
|
|
"zip"
|
|
],
|
|
"new_display_hours": 24,
|
|
"board_managers": [
|
|
{
|
|
"uuid": "00000000-0000-4000-8000-000000000001",
|
|
"name": "관리자",
|
|
"email": "admin@example.com"
|
|
}
|
|
],
|
|
"board_steps": [],
|
|
"board_manager_ids": [
|
|
"00000000-0000-4000-8000-000000000001"
|
|
],
|
|
"board_step_ids": [],
|
|
"notify_author": true,
|
|
"notify_admin_on_post": true,
|
|
"created_at": "2026-05-26 02:41:23",
|
|
"updated_at": "2026-05-26 02:41:23",
|
|
"permissions": null,
|
|
"category_post_counts": null,
|
|
"posts_count": 0,
|
|
"user_abilities": null,
|
|
"abilities": {
|
|
"can_create": true,
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
}
|
|
],
|
|
"pagination": {
|
|
"current_page": 1,
|
|
"last_page": 1,
|
|
"per_page": 20,
|
|
"total": 1,
|
|
"from": 1,
|
|
"to": 1,
|
|
"has_more_pages": false
|
|
},
|
|
"abilities": {
|
|
"can_create": true,
|
|
"can_update": true,
|
|
"can_delete": true
|
|
}
|
|
}
|
|
},
|
|
"notifications": {
|
|
"channels": [
|
|
{
|
|
"key": "email",
|
|
"label": "이메일",
|
|
"enabled": true
|
|
},
|
|
{
|
|
"key": "push",
|
|
"label": "푸시",
|
|
"enabled": true
|
|
}
|
|
],
|
|
"data": {
|
|
"data": [
|
|
{
|
|
"id": 1,
|
|
"type": "comment",
|
|
"title": "샘플 알림",
|
|
"message": "샘플 알림 내용입니다.",
|
|
"is_read": false,
|
|
"created_at": "2026-05-24 09:32:38",
|
|
"link": "/"
|
|
}
|
|
],
|
|
"pagination": {
|
|
"current_page": 1,
|
|
"last_page": 1,
|
|
"total": 1,
|
|
"has_more_pages": false
|
|
},
|
|
"unread_count": 2
|
|
}
|
|
},
|
|
"mileage_balance": {
|
|
"data": {
|
|
"mileage": {
|
|
"available": 50000,
|
|
"pending": 10000,
|
|
"total_earned": 150000,
|
|
"expiring_soon": 5000,
|
|
"enabled": true
|
|
}
|
|
}
|
|
},
|
|
"mileage_history": {
|
|
"data": {
|
|
"data": [
|
|
{
|
|
"id": 1001,
|
|
"user_id": 100,
|
|
"currency": "KRW",
|
|
"type": "earn",
|
|
"type_label": "적립",
|
|
"admin_badge_group": null,
|
|
"user_display_category": "주문 완료",
|
|
"amount": 5000.0,
|
|
"amount_formatted": "5,000",
|
|
"remaining_amount": 5000.0,
|
|
"remaining_amount_formatted": "5,000",
|
|
"balance_after": 55000.0,
|
|
"order_id": null,
|
|
"order_option_id": null,
|
|
"order_cancel_id": null,
|
|
"source_transaction_id": null,
|
|
"granted_by": null,
|
|
"granted_by_name": null,
|
|
"granted_by_uuid": null,
|
|
"user_name": "홍길동",
|
|
"user_uuid": "u-1001",
|
|
"order_number": "20260601-0042",
|
|
"description": "Order reward",
|
|
"memo": null,
|
|
"expires_at": "2027-06-01T00:00:00+09:00",
|
|
"expires_at_formatted": "Jun 1, 2027 12:00 AM",
|
|
"expires_at_date": "2027-06-01",
|
|
"expired_at": null,
|
|
"expired_at_formatted": null,
|
|
"created_at": "2026-06-01T14:30:00+09:00",
|
|
"created_at_formatted": "Jun 1, 2026 2:30 PM",
|
|
"created_at_date": "2026-06-01",
|
|
"is_earning": true,
|
|
"can_edit_expiry": true,
|
|
"expired_amount": 0.0,
|
|
"expired_amount_formatted": "0",
|
|
"expiry_state": "active",
|
|
"abilities": {
|
|
"can_manage": false
|
|
}
|
|
},
|
|
{
|
|
"id": 1002,
|
|
"user_id": 100,
|
|
"currency": "KRW",
|
|
"type": "use",
|
|
"type_label": "사용",
|
|
"admin_badge_group": null,
|
|
"user_display_category": "주문",
|
|
"amount": -3000.0,
|
|
"amount_formatted": "-3,000",
|
|
"remaining_amount": 0.0,
|
|
"remaining_amount_formatted": "0",
|
|
"balance_after": 52000.0,
|
|
"order_id": null,
|
|
"order_option_id": null,
|
|
"order_cancel_id": null,
|
|
"source_transaction_id": null,
|
|
"granted_by": null,
|
|
"granted_by_name": null,
|
|
"granted_by_uuid": null,
|
|
"user_name": "홍길동",
|
|
"user_uuid": "u-1001",
|
|
"order_number": "20260530-0118",
|
|
"description": null,
|
|
"memo": null,
|
|
"expires_at": null,
|
|
"expires_at_formatted": null,
|
|
"expires_at_date": null,
|
|
"expired_at": null,
|
|
"expired_at_formatted": null,
|
|
"created_at": "2026-05-30T13:05:00+09:00",
|
|
"created_at_formatted": "May 30, 2026 1:05 PM",
|
|
"created_at_date": "2026-05-30",
|
|
"is_earning": false,
|
|
"can_edit_expiry": false,
|
|
"expired_amount": 0.0,
|
|
"expired_amount_formatted": "0",
|
|
"expiry_state": "active",
|
|
"abilities": {
|
|
"can_manage": false
|
|
}
|
|
}
|
|
],
|
|
"abilities": {
|
|
"can_manage": false
|
|
},
|
|
"currencies": [
|
|
"KRW"
|
|
],
|
|
"pagination": {
|
|
"current_page": 1,
|
|
"last_page": 1,
|
|
"per_page": 20,
|
|
"total": 2,
|
|
"from": 1,
|
|
"to": 2,
|
|
"has_more_pages": false
|
|
}
|
|
}
|
|
},
|
|
"reviewSettings": {
|
|
"data": {
|
|
"review_settings": {
|
|
"max_images": 5,
|
|
"max_image_size_mb": 10,
|
|
"write_deadline_days": 30
|
|
}
|
|
}
|
|
},
|
|
"transactions": {
|
|
"data": {
|
|
"data": [
|
|
{
|
|
"id": 2001,
|
|
"user_id": 100,
|
|
"currency": "KRW",
|
|
"type": "earn",
|
|
"type_label": "적립",
|
|
"admin_badge_group": null,
|
|
"user_display_category": "수동 지급",
|
|
"amount": 10000.0,
|
|
"amount_formatted": "10,000",
|
|
"remaining_amount": 10000.0,
|
|
"remaining_amount_formatted": "10,000",
|
|
"balance_after": 65000.0,
|
|
"order_id": null,
|
|
"order_option_id": null,
|
|
"order_cancel_id": null,
|
|
"source_transaction_id": null,
|
|
"granted_by": 1,
|
|
"granted_by_name": "관리자",
|
|
"granted_by_uuid": "admin-uuid-1",
|
|
"user_name": "홍길동",
|
|
"user_uuid": "u-1001",
|
|
"order_number": null,
|
|
"description": "Admin earn",
|
|
"memo": "이벤트 보상",
|
|
"expires_at": "2027-06-21T00:00:00+09:00",
|
|
"expires_at_formatted": "Jun 21, 2027 12:00 AM",
|
|
"expires_at_date": "2027-06-21",
|
|
"expired_at": null,
|
|
"expired_at_formatted": null,
|
|
"created_at": "2026-06-20T10:00:00+09:00",
|
|
"created_at_formatted": "Jun 20, 2026 10:00 AM",
|
|
"created_at_date": "2026-06-20",
|
|
"is_earning": true,
|
|
"can_edit_expiry": true,
|
|
"expired_amount": 0.0,
|
|
"expired_amount_formatted": "0",
|
|
"expiry_state": "active",
|
|
"abilities": {
|
|
"can_manage": true
|
|
}
|
|
},
|
|
{
|
|
"id": 2002,
|
|
"user_id": 101,
|
|
"currency": "KRW",
|
|
"type": "deduct",
|
|
"type_label": "차감",
|
|
"admin_badge_group": null,
|
|
"user_display_category": "수동 차감",
|
|
"amount": -5000.0,
|
|
"amount_formatted": "-5,000",
|
|
"remaining_amount": 0.0,
|
|
"remaining_amount_formatted": "0",
|
|
"balance_after": 45000.0,
|
|
"order_id": null,
|
|
"order_option_id": null,
|
|
"order_cancel_id": null,
|
|
"source_transaction_id": null,
|
|
"granted_by": 1,
|
|
"granted_by_name": "관리자",
|
|
"granted_by_uuid": "admin-uuid-1",
|
|
"user_name": "김영희",
|
|
"user_uuid": "u-1002",
|
|
"order_number": null,
|
|
"description": null,
|
|
"memo": "잘못된 적립 차감",
|
|
"expires_at": null,
|
|
"expires_at_formatted": null,
|
|
"expires_at_date": null,
|
|
"expired_at": null,
|
|
"expired_at_formatted": null,
|
|
"created_at": "2026-06-19T15:30:00+09:00",
|
|
"created_at_formatted": "Jun 19, 2026 3:30 PM",
|
|
"created_at_date": "2026-06-19",
|
|
"is_earning": false,
|
|
"can_edit_expiry": false,
|
|
"expired_amount": 0.0,
|
|
"expired_amount_formatted": "0",
|
|
"expiry_state": "active",
|
|
"abilities": {
|
|
"can_manage": true
|
|
}
|
|
}
|
|
],
|
|
"abilities": {
|
|
"can_manage": true
|
|
},
|
|
"currencies": [
|
|
"KRW"
|
|
],
|
|
"pagination": {
|
|
"current_page": 1,
|
|
"last_page": 1,
|
|
"per_page": 20,
|
|
"total": 2,
|
|
"from": 1,
|
|
"to": 2,
|
|
"has_more_pages": false
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"byEndpointPattern": {
|
|
"/api/modules/sirsoft-ecommerce/products*": {
|
|
"data": {
|
|
"data": [
|
|
{
|
|
"id": 1,
|
|
"name": "샘플 상품 1",
|
|
"price": 29000,
|
|
"sale_price": 24000,
|
|
"thumbnail": null,
|
|
"stock_status": "in_stock",
|
|
"rating": 4.5
|
|
},
|
|
{
|
|
"id": 2,
|
|
"name": "샘플 상품 2",
|
|
"price": 15000,
|
|
"sale_price": null,
|
|
"thumbnail": null,
|
|
"stock_status": "in_stock",
|
|
"rating": 4
|
|
},
|
|
{
|
|
"id": 3,
|
|
"name": "샘플 상품 3 (품절)",
|
|
"price": 42000,
|
|
"sale_price": null,
|
|
"thumbnail": null,
|
|
"stock_status": "out_of_stock",
|
|
"rating": 3.5
|
|
}
|
|
],
|
|
"meta": {
|
|
"total": 3,
|
|
"per_page": 20,
|
|
"current_page": 1
|
|
}
|
|
}
|
|
},
|
|
"/api/modules/sirsoft-ecommerce/cart*": {
|
|
"data": {
|
|
"items": [
|
|
{
|
|
"product_id": 1,
|
|
"name": "샘플 상품 1",
|
|
"thumbnail": null,
|
|
"price": 24000,
|
|
"quantity": 2,
|
|
"options": "블랙"
|
|
},
|
|
{
|
|
"product_id": 2,
|
|
"name": "샘플 상품 2",
|
|
"thumbnail": null,
|
|
"price": 15000,
|
|
"quantity": 1,
|
|
"options": null
|
|
}
|
|
],
|
|
"total": 63000,
|
|
"discount": 0,
|
|
"shipping_fee": 3000
|
|
}
|
|
},
|
|
"/api/modules/sirsoft-ecommerce/checkout*": {
|
|
"data": {
|
|
"items": [
|
|
{
|
|
"product_id": 1,
|
|
"name": "샘플 상품 1",
|
|
"price": 24000,
|
|
"quantity": 2
|
|
}
|
|
],
|
|
"addresses": [
|
|
{
|
|
"id": 1,
|
|
"recipient": "샘플 수령인",
|
|
"address": "서울시 샘플구 샘플로 1",
|
|
"is_default": true
|
|
}
|
|
],
|
|
"payment_methods": [
|
|
{
|
|
"code": "card",
|
|
"name": "신용카드"
|
|
},
|
|
{
|
|
"code": "vbank",
|
|
"name": "무통장입금"
|
|
}
|
|
],
|
|
"coupons": [],
|
|
"points": 1250
|
|
}
|
|
},
|
|
"/api/modules/sirsoft-ecommerce/wishlist*": {
|
|
"data": {
|
|
"data": [
|
|
{
|
|
"id": 1,
|
|
"name": "샘플 찜 상품 1",
|
|
"price": 29000,
|
|
"thumbnail": null,
|
|
"stock_status": "in_stock"
|
|
},
|
|
{
|
|
"id": 2,
|
|
"name": "샘플 찜 상품 2",
|
|
"price": 15000,
|
|
"thumbnail": null,
|
|
"stock_status": "in_stock"
|
|
}
|
|
],
|
|
"meta": {
|
|
"total": 2,
|
|
"per_page": 20,
|
|
"current_page": 1
|
|
}
|
|
}
|
|
},
|
|
"/api/modules/sirsoft-ecommerce/user/orders*": {
|
|
"data": {
|
|
"data": [
|
|
{
|
|
"id": 1,
|
|
"order_no": "20260529-0001",
|
|
"created_at": "2026-05-29",
|
|
"status": "paid",
|
|
"total": 48000,
|
|
"first_item_name": "샘플 상품 1",
|
|
"item_count": 2
|
|
}
|
|
],
|
|
"meta": {
|
|
"total": 1,
|
|
"per_page": 20,
|
|
"current_page": 1
|
|
}
|
|
}
|
|
},
|
|
"/api/modules/sirsoft-ecommerce/user/addresses*": {
|
|
"data": [
|
|
{
|
|
"id": 1,
|
|
"recipient": "샘플 수령인",
|
|
"phone": "010-0000-0000",
|
|
"zip": "00000",
|
|
"address": "서울시 샘플구 샘플로 1",
|
|
"detail": "101동 101호",
|
|
"is_default": true,
|
|
"label": "집"
|
|
}
|
|
]
|
|
},
|
|
"/api/modules/sirsoft-ecommerce/user/inquiries*": {
|
|
"data": {
|
|
"data": [
|
|
{
|
|
"id": 1,
|
|
"product": {
|
|
"id": 1,
|
|
"name": "샘플 상품 1"
|
|
},
|
|
"title": "배송 문의",
|
|
"body": "언제 배송되나요?",
|
|
"answer": "내일 발송 예정입니다.",
|
|
"created_at": "2026-05-25",
|
|
"status": "answered"
|
|
}
|
|
],
|
|
"meta": {
|
|
"total": 1,
|
|
"per_page": 20,
|
|
"current_page": 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"states": {
|
|
"comment": "이커머스 도메인 변종. 사용자 상점 라우트(템플릿 sirsoft-basic 소속이나 코어 concat 으로 일원화)와 관리자 라우트(*/admin/ecommerce/*) 변종을 모두 포함한다. 상점 주소는 운영자 설정이라 편집기가 평가한 selectedRoute.path 의 첫 세그먼트가 사이트마다 다르다 — 기본 'shop', basic_info.route_path 로 바꾸면 그 값, basic_info.no_route 를 켜면 세그먼트가 아예 없다(`/products`). 그래서 scope.match 는 선택 세그먼트 토큰 '/*?'(0개 또는 1개, engine-v1.58.0)를 써 세 경우를 모두 매칭한다. '/*' 로 쓰면 no_route 상점에서만 매칭이 실패해 상태 토글이 조용히 사라진다. 파라미터 토큰(:id 등)은 리터럴로 대조되므로 routes.json 이 쓴 이름을 그대로 적어야 한다 — 이름이 다르면 세그먼트 토큰과 무관하게 세 축 모두에서 매칭되지 않는다.",
|
|
"groups": [
|
|
{
|
|
"comment": "shop/show — product.data.sales_status 값(on_sale/sold_out/suspended/coming_soon)으로 판매 상태 배지·버튼을 if 분기한다(본문 line 388/406). 재고는 stock 으로 분기. 파라미터 토큰은 routes.json 의 ':product_code' 를 그대로 쓴다 — ':id' 로 적으면 리터럴 대조라 어떤 상점 주소에서도 매칭되지 않는다.",
|
|
"scope": {
|
|
"kind": "route",
|
|
"match": "/*?/products/:product_code"
|
|
},
|
|
"items": [
|
|
{
|
|
"id": "in_stock",
|
|
"label": "$t:editor.state.in_stock",
|
|
"default": true
|
|
},
|
|
{
|
|
"id": "out_of_stock",
|
|
"label": "$t:editor.state.out_of_stock",
|
|
"sampleDataOverrides": {
|
|
"byEndpointPattern": {
|
|
"/api/modules/sirsoft-ecommerce/products/*": {
|
|
"data": {
|
|
"id": 101,
|
|
"name": {
|
|
"ko": "베이직 오버핏 코튼 티셔츠",
|
|
"en": "Basic Overfit Cotton T-Shirt"
|
|
},
|
|
"name_localized": "베이직 오버핏 코튼 티셔츠",
|
|
"product_code": "TS-1001",
|
|
"sku": "TS-1001-BLK",
|
|
"categories": [
|
|
{
|
|
"id": 1,
|
|
"name": {
|
|
"ko": "패션의류",
|
|
"en": "Fashion"
|
|
},
|
|
"name_localized": "패션의류",
|
|
"breadcrumb": "패션의류",
|
|
"path": "1",
|
|
"is_primary": false
|
|
},
|
|
{
|
|
"id": 11,
|
|
"name": {
|
|
"ko": "상의",
|
|
"en": "Tops"
|
|
},
|
|
"name_localized": "상의",
|
|
"breadcrumb": "패션의류 > 상의",
|
|
"path": "1/11",
|
|
"is_primary": true
|
|
}
|
|
],
|
|
"category_name": "상의",
|
|
"list_price": 29000,
|
|
"list_price_formatted": "29,000원",
|
|
"selling_price": 23200,
|
|
"selling_price_formatted": "23,200원",
|
|
"discount_rate": 20,
|
|
"multi_currency_list_price": {
|
|
"KRW": {
|
|
"price": 29000,
|
|
"formatted": "29,000원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 22.31,
|
|
"formatted": "$22.31",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"multi_currency_selling_price": {
|
|
"KRW": {
|
|
"price": 23200,
|
|
"formatted": "23,200원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 17.85,
|
|
"formatted": "$17.85",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"stock_quantity": 0,
|
|
"min_purchase_qty": 1,
|
|
"max_purchase_qty": 10,
|
|
"sales_status": "on_sale",
|
|
"sales_status_label": "판매중",
|
|
"brand_name": "코지홈",
|
|
"labels": [
|
|
{
|
|
"name": "BEST",
|
|
"color": "#ef4444"
|
|
},
|
|
{
|
|
"name": "한정특가",
|
|
"color": "#f59e0b"
|
|
}
|
|
],
|
|
"additional_options": [
|
|
{
|
|
"id": 9001,
|
|
"name": "이니셜 자수 추가",
|
|
"is_required": false
|
|
},
|
|
{
|
|
"id": 9002,
|
|
"name": "선물 포장",
|
|
"is_required": false
|
|
}
|
|
],
|
|
"shipping_policy_id": 1,
|
|
"free_shipping": false,
|
|
"shipping_fee_formatted": "3,000원 (50,000원 이상 무료)",
|
|
"shipping_policy": {
|
|
"name": "기본 배송정책",
|
|
"charge_policy": "conditional_free",
|
|
"charge_policy_label": "조건부 무료",
|
|
"base_fee": 3000,
|
|
"base_fee_formatted": "3,000원",
|
|
"free_threshold": 50000,
|
|
"free_threshold_formatted": "50,000원",
|
|
"fee_summary": "3,000원 (50,000원 이상 무료배송)"
|
|
},
|
|
"short_description": "사계절 입기 좋은 오버핏 기본 티셔츠",
|
|
"short_description_localized": "사계절 입기 좋은 오버핏 기본 티셔츠",
|
|
"description": {
|
|
"ko": "<p>부드러운 30수 코튼 소재로 제작된 데일리 오버핏 티셔츠입니다.</p>"
|
|
},
|
|
"description_localized": "<h3>제품 특징</h3><p>부드러운 30수 코튼 100% 소재로 제작되어 사계절 내내 편안하게 착용할 수 있습니다. 오버핏 실루엣으로 체형 커버에 탁월하며, 어떤 하의와도 자연스럽게 매치됩니다.</p><ul><li>소재: 코튼 100%</li><li>핏: 오버핏</li><li>제조국: 대한민국</li></ul><p><img src=\"/images/placeholder.png\" alt=\"상세 이미지\" /></p>",
|
|
"description_mode": "html",
|
|
"images": [
|
|
{
|
|
"id": 5001,
|
|
"hash": "img5001",
|
|
"original_filename": "tshirt_main.jpg",
|
|
"download_url": "/images/placeholder.png",
|
|
"alt_text": "정면",
|
|
"alt_text_current": "베이직 오버핏 티셔츠 정면",
|
|
"is_thumbnail": true,
|
|
"sort_order": 0,
|
|
"order": 0,
|
|
"width": 1000,
|
|
"height": 1000,
|
|
"file_size": 184320,
|
|
"size": 184320,
|
|
"size_formatted": "180 KB",
|
|
"mime_type": "image/jpeg",
|
|
"is_image": true
|
|
},
|
|
{
|
|
"id": 5002,
|
|
"hash": "img5002",
|
|
"original_filename": "tshirt_back.jpg",
|
|
"download_url": "/images/placeholder.png",
|
|
"alt_text": "후면",
|
|
"alt_text_current": "베이직 오버핏 티셔츠 후면",
|
|
"is_thumbnail": false,
|
|
"sort_order": 1,
|
|
"order": 1,
|
|
"width": 1000,
|
|
"height": 1000,
|
|
"file_size": 176128,
|
|
"size": 176128,
|
|
"size_formatted": "172 KB",
|
|
"mime_type": "image/jpeg",
|
|
"is_image": true
|
|
},
|
|
{
|
|
"id": 5003,
|
|
"hash": "img5003",
|
|
"original_filename": "tshirt_detail.jpg",
|
|
"download_url": "/images/placeholder.png",
|
|
"alt_text": "디테일",
|
|
"alt_text_current": "소매 디테일 컷",
|
|
"is_thumbnail": false,
|
|
"sort_order": 2,
|
|
"order": 2,
|
|
"width": 1000,
|
|
"height": 1000,
|
|
"file_size": 158720,
|
|
"size": 158720,
|
|
"size_formatted": "155 KB",
|
|
"mime_type": "image/jpeg",
|
|
"is_image": true
|
|
}
|
|
],
|
|
"thumbnail_url": "/images/placeholder.png",
|
|
"meta_title": "베이직 오버핏 코튼 티셔츠 | 코지홈",
|
|
"meta_description": "사계절 입기 좋은 오버핏 기본 티셔츠",
|
|
"meta_keywords": [
|
|
"티셔츠",
|
|
"오버핏",
|
|
"코튼"
|
|
],
|
|
"has_options": true,
|
|
"option_groups": [
|
|
{
|
|
"name": {
|
|
"ko": "색상",
|
|
"en": "Color"
|
|
},
|
|
"name_localized": "색상",
|
|
"values": [
|
|
{
|
|
"ko": "블랙",
|
|
"en": "Black"
|
|
},
|
|
{
|
|
"ko": "화이트",
|
|
"en": "White"
|
|
},
|
|
{
|
|
"ko": "네이비",
|
|
"en": "Navy"
|
|
}
|
|
],
|
|
"values_localized": [
|
|
"블랙",
|
|
"화이트",
|
|
"네이비"
|
|
]
|
|
},
|
|
{
|
|
"name": {
|
|
"ko": "사이즈",
|
|
"en": "Size"
|
|
},
|
|
"name_localized": "사이즈",
|
|
"values": [
|
|
{
|
|
"ko": "S",
|
|
"en": "S"
|
|
},
|
|
{
|
|
"ko": "M",
|
|
"en": "M"
|
|
},
|
|
{
|
|
"ko": "L",
|
|
"en": "L"
|
|
}
|
|
],
|
|
"values_localized": [
|
|
"S",
|
|
"M",
|
|
"L"
|
|
]
|
|
}
|
|
],
|
|
"options": [
|
|
{
|
|
"id": 7001,
|
|
"option_code": "OPT-BLK-S",
|
|
"option_values": [
|
|
{
|
|
"key": {
|
|
"ko": "색상"
|
|
},
|
|
"value": {
|
|
"ko": "블랙"
|
|
}
|
|
},
|
|
{
|
|
"key": {
|
|
"ko": "사이즈"
|
|
},
|
|
"value": {
|
|
"ko": "S"
|
|
}
|
|
}
|
|
],
|
|
"option_values_localized": [
|
|
"블랙",
|
|
"S"
|
|
],
|
|
"option_name": {
|
|
"ko": "블랙 / S"
|
|
},
|
|
"option_name_localized": "블랙 / S",
|
|
"price_adjustment": 0,
|
|
"price_adjustment_formatted": "+0원",
|
|
"price_adjustment_type": "increase",
|
|
"list_price": 29000,
|
|
"list_price_formatted": "29,000원",
|
|
"selling_price": 23200,
|
|
"selling_price_formatted": "23,200원",
|
|
"final_price": 23200,
|
|
"final_price_formatted": "23,200원",
|
|
"multi_currency_list_price": {
|
|
"KRW": {
|
|
"price": 29000,
|
|
"formatted": "29,000원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 22.31,
|
|
"formatted": "$22.31",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"multi_currency_selling_price": {
|
|
"KRW": {
|
|
"price": 23200,
|
|
"formatted": "23,200원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 17.85,
|
|
"formatted": "$17.85",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"stock_quantity": 0,
|
|
"safe_stock_quantity": 10,
|
|
"is_below_safe_stock": true,
|
|
"is_default": true,
|
|
"is_active": true,
|
|
"sku": "TS-1001-BLK-S",
|
|
"sort_order": 0
|
|
},
|
|
{
|
|
"id": 7002,
|
|
"option_code": "OPT-BLK-M",
|
|
"option_values": [
|
|
{
|
|
"key": {
|
|
"ko": "색상"
|
|
},
|
|
"value": {
|
|
"ko": "블랙"
|
|
}
|
|
},
|
|
{
|
|
"key": {
|
|
"ko": "사이즈"
|
|
},
|
|
"value": {
|
|
"ko": "M"
|
|
}
|
|
}
|
|
],
|
|
"option_values_localized": [
|
|
"블랙",
|
|
"M"
|
|
],
|
|
"option_name": {
|
|
"ko": "블랙 / M"
|
|
},
|
|
"option_name_localized": "블랙 / M",
|
|
"price_adjustment": 0,
|
|
"price_adjustment_formatted": "+0원",
|
|
"price_adjustment_type": "increase",
|
|
"list_price": 29000,
|
|
"list_price_formatted": "29,000원",
|
|
"selling_price": 23200,
|
|
"selling_price_formatted": "23,200원",
|
|
"final_price": 23200,
|
|
"final_price_formatted": "23,200원",
|
|
"multi_currency_list_price": {
|
|
"KRW": {
|
|
"price": 29000,
|
|
"formatted": "29,000원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 22.31,
|
|
"formatted": "$22.31",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"multi_currency_selling_price": {
|
|
"KRW": {
|
|
"price": 23200,
|
|
"formatted": "23,200원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 17.85,
|
|
"formatted": "$17.85",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"stock_quantity": 0,
|
|
"safe_stock_quantity": 10,
|
|
"is_below_safe_stock": true,
|
|
"is_default": false,
|
|
"is_active": true,
|
|
"sku": "TS-1001-BLK-M",
|
|
"sort_order": 1
|
|
},
|
|
{
|
|
"id": 7003,
|
|
"option_code": "OPT-WHT-L",
|
|
"option_values": [
|
|
{
|
|
"key": {
|
|
"ko": "색상"
|
|
},
|
|
"value": {
|
|
"ko": "화이트"
|
|
}
|
|
},
|
|
{
|
|
"key": {
|
|
"ko": "사이즈"
|
|
},
|
|
"value": {
|
|
"ko": "L"
|
|
}
|
|
}
|
|
],
|
|
"option_values_localized": [
|
|
"화이트",
|
|
"L"
|
|
],
|
|
"option_name": {
|
|
"ko": "화이트 / L"
|
|
},
|
|
"option_name_localized": "화이트 / L",
|
|
"price_adjustment": 2000,
|
|
"price_adjustment_formatted": "+2,000원",
|
|
"price_adjustment_type": "increase",
|
|
"list_price": 31000,
|
|
"list_price_formatted": "31,000원",
|
|
"selling_price": 25200,
|
|
"selling_price_formatted": "25,200원",
|
|
"final_price": 25200,
|
|
"final_price_formatted": "25,200원",
|
|
"multi_currency_list_price": {
|
|
"KRW": {
|
|
"price": 31000,
|
|
"formatted": "31,000원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 23.85,
|
|
"formatted": "$23.85",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"multi_currency_selling_price": {
|
|
"KRW": {
|
|
"price": 25200,
|
|
"formatted": "25,200원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 19.38,
|
|
"formatted": "$19.38",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"stock_quantity": 0,
|
|
"safe_stock_quantity": 10,
|
|
"is_below_safe_stock": true,
|
|
"is_default": false,
|
|
"is_active": true,
|
|
"sku": "TS-1001-WHT-L",
|
|
"sort_order": 2
|
|
}
|
|
],
|
|
"notice": {
|
|
"template_name": "의류 상품정보제공고시",
|
|
"values": [
|
|
{
|
|
"label": "제품 소재",
|
|
"value": "면 100%"
|
|
},
|
|
{
|
|
"label": "색상",
|
|
"value": "블랙, 화이트, 네이비"
|
|
},
|
|
{
|
|
"label": "치수",
|
|
"value": "S, M, L (상세 사이즈표 참고)"
|
|
},
|
|
{
|
|
"label": "제조자",
|
|
"value": "코지홈"
|
|
},
|
|
{
|
|
"label": "제조국",
|
|
"value": "대한민국"
|
|
},
|
|
{
|
|
"label": "취급 시 주의사항",
|
|
"value": "찬물 단독 손세탁 권장"
|
|
},
|
|
{
|
|
"label": "품질보증기준",
|
|
"value": "관련 법 및 소비자분쟁해결기준에 따름"
|
|
},
|
|
{
|
|
"label": "A/S 책임자와 전화번호",
|
|
"value": "코지홈 고객센터 1588-0000"
|
|
}
|
|
]
|
|
},
|
|
"common_info": {
|
|
"name": "배송/교환/환불 안내",
|
|
"content": "<p>주문 후 영업일 기준 1~2일 내 출고됩니다. 단순 변심 교환·반품은 수령 후 7일 이내 가능하며, 왕복 배송비가 부과됩니다.</p>",
|
|
"content_mode": "html"
|
|
},
|
|
"is_wishlisted": false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "sold_out",
|
|
"label": "$t:editor.state.sold_out",
|
|
"sampleDataOverrides": {
|
|
"byEndpointPattern": {
|
|
"/api/modules/sirsoft-ecommerce/products/*": {
|
|
"data": {
|
|
"id": 101,
|
|
"name": {
|
|
"ko": "베이직 오버핏 코튼 티셔츠",
|
|
"en": "Basic Overfit Cotton T-Shirt"
|
|
},
|
|
"name_localized": "베이직 오버핏 코튼 티셔츠",
|
|
"product_code": "TS-1001",
|
|
"sku": "TS-1001-BLK",
|
|
"categories": [
|
|
{
|
|
"id": 1,
|
|
"name": {
|
|
"ko": "패션의류",
|
|
"en": "Fashion"
|
|
},
|
|
"name_localized": "패션의류",
|
|
"breadcrumb": "패션의류",
|
|
"path": "1",
|
|
"is_primary": false
|
|
},
|
|
{
|
|
"id": 11,
|
|
"name": {
|
|
"ko": "상의",
|
|
"en": "Tops"
|
|
},
|
|
"name_localized": "상의",
|
|
"breadcrumb": "패션의류 > 상의",
|
|
"path": "1/11",
|
|
"is_primary": true
|
|
}
|
|
],
|
|
"category_name": "상의",
|
|
"list_price": 29000,
|
|
"list_price_formatted": "29,000원",
|
|
"selling_price": 23200,
|
|
"selling_price_formatted": "23,200원",
|
|
"discount_rate": 20,
|
|
"multi_currency_list_price": {
|
|
"KRW": {
|
|
"price": 29000,
|
|
"formatted": "29,000원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 22.31,
|
|
"formatted": "$22.31",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"multi_currency_selling_price": {
|
|
"KRW": {
|
|
"price": 23200,
|
|
"formatted": "23,200원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 17.85,
|
|
"formatted": "$17.85",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"stock_quantity": 0,
|
|
"min_purchase_qty": 1,
|
|
"max_purchase_qty": 10,
|
|
"sales_status": "sold_out",
|
|
"sales_status_label": "품절",
|
|
"brand_name": "코지홈",
|
|
"labels": [
|
|
{
|
|
"name": "BEST",
|
|
"color": "#ef4444"
|
|
},
|
|
{
|
|
"name": "한정특가",
|
|
"color": "#f59e0b"
|
|
}
|
|
],
|
|
"additional_options": [
|
|
{
|
|
"id": 9001,
|
|
"name": "이니셜 자수 추가",
|
|
"is_required": false
|
|
},
|
|
{
|
|
"id": 9002,
|
|
"name": "선물 포장",
|
|
"is_required": false
|
|
}
|
|
],
|
|
"shipping_policy_id": 1,
|
|
"free_shipping": false,
|
|
"shipping_fee_formatted": "3,000원 (50,000원 이상 무료)",
|
|
"shipping_policy": {
|
|
"name": "기본 배송정책",
|
|
"charge_policy": "conditional_free",
|
|
"charge_policy_label": "조건부 무료",
|
|
"base_fee": 3000,
|
|
"base_fee_formatted": "3,000원",
|
|
"free_threshold": 50000,
|
|
"free_threshold_formatted": "50,000원",
|
|
"fee_summary": "3,000원 (50,000원 이상 무료배송)"
|
|
},
|
|
"short_description": "사계절 입기 좋은 오버핏 기본 티셔츠",
|
|
"short_description_localized": "사계절 입기 좋은 오버핏 기본 티셔츠",
|
|
"description": {
|
|
"ko": "<p>부드러운 30수 코튼 소재로 제작된 데일리 오버핏 티셔츠입니다.</p>"
|
|
},
|
|
"description_localized": "<h3>제품 특징</h3><p>부드러운 30수 코튼 100% 소재로 제작되어 사계절 내내 편안하게 착용할 수 있습니다. 오버핏 실루엣으로 체형 커버에 탁월하며, 어떤 하의와도 자연스럽게 매치됩니다.</p><ul><li>소재: 코튼 100%</li><li>핏: 오버핏</li><li>제조국: 대한민국</li></ul><p><img src=\"/images/placeholder.png\" alt=\"상세 이미지\" /></p>",
|
|
"description_mode": "html",
|
|
"images": [
|
|
{
|
|
"id": 5001,
|
|
"hash": "img5001",
|
|
"original_filename": "tshirt_main.jpg",
|
|
"download_url": "/images/placeholder.png",
|
|
"alt_text": "정면",
|
|
"alt_text_current": "베이직 오버핏 티셔츠 정면",
|
|
"is_thumbnail": true,
|
|
"sort_order": 0,
|
|
"order": 0,
|
|
"width": 1000,
|
|
"height": 1000,
|
|
"file_size": 184320,
|
|
"size": 184320,
|
|
"size_formatted": "180 KB",
|
|
"mime_type": "image/jpeg",
|
|
"is_image": true
|
|
},
|
|
{
|
|
"id": 5002,
|
|
"hash": "img5002",
|
|
"original_filename": "tshirt_back.jpg",
|
|
"download_url": "/images/placeholder.png",
|
|
"alt_text": "후면",
|
|
"alt_text_current": "베이직 오버핏 티셔츠 후면",
|
|
"is_thumbnail": false,
|
|
"sort_order": 1,
|
|
"order": 1,
|
|
"width": 1000,
|
|
"height": 1000,
|
|
"file_size": 176128,
|
|
"size": 176128,
|
|
"size_formatted": "172 KB",
|
|
"mime_type": "image/jpeg",
|
|
"is_image": true
|
|
},
|
|
{
|
|
"id": 5003,
|
|
"hash": "img5003",
|
|
"original_filename": "tshirt_detail.jpg",
|
|
"download_url": "/images/placeholder.png",
|
|
"alt_text": "디테일",
|
|
"alt_text_current": "소매 디테일 컷",
|
|
"is_thumbnail": false,
|
|
"sort_order": 2,
|
|
"order": 2,
|
|
"width": 1000,
|
|
"height": 1000,
|
|
"file_size": 158720,
|
|
"size": 158720,
|
|
"size_formatted": "155 KB",
|
|
"mime_type": "image/jpeg",
|
|
"is_image": true
|
|
}
|
|
],
|
|
"thumbnail_url": "/images/placeholder.png",
|
|
"meta_title": "베이직 오버핏 코튼 티셔츠 | 코지홈",
|
|
"meta_description": "사계절 입기 좋은 오버핏 기본 티셔츠",
|
|
"meta_keywords": [
|
|
"티셔츠",
|
|
"오버핏",
|
|
"코튼"
|
|
],
|
|
"has_options": true,
|
|
"option_groups": [
|
|
{
|
|
"name": {
|
|
"ko": "색상",
|
|
"en": "Color"
|
|
},
|
|
"name_localized": "색상",
|
|
"values": [
|
|
{
|
|
"ko": "블랙",
|
|
"en": "Black"
|
|
},
|
|
{
|
|
"ko": "화이트",
|
|
"en": "White"
|
|
},
|
|
{
|
|
"ko": "네이비",
|
|
"en": "Navy"
|
|
}
|
|
],
|
|
"values_localized": [
|
|
"블랙",
|
|
"화이트",
|
|
"네이비"
|
|
]
|
|
},
|
|
{
|
|
"name": {
|
|
"ko": "사이즈",
|
|
"en": "Size"
|
|
},
|
|
"name_localized": "사이즈",
|
|
"values": [
|
|
{
|
|
"ko": "S",
|
|
"en": "S"
|
|
},
|
|
{
|
|
"ko": "M",
|
|
"en": "M"
|
|
},
|
|
{
|
|
"ko": "L",
|
|
"en": "L"
|
|
}
|
|
],
|
|
"values_localized": [
|
|
"S",
|
|
"M",
|
|
"L"
|
|
]
|
|
}
|
|
],
|
|
"options": [
|
|
{
|
|
"id": 7001,
|
|
"option_code": "OPT-BLK-S",
|
|
"option_values": [
|
|
{
|
|
"key": {
|
|
"ko": "색상"
|
|
},
|
|
"value": {
|
|
"ko": "블랙"
|
|
}
|
|
},
|
|
{
|
|
"key": {
|
|
"ko": "사이즈"
|
|
},
|
|
"value": {
|
|
"ko": "S"
|
|
}
|
|
}
|
|
],
|
|
"option_values_localized": [
|
|
"블랙",
|
|
"S"
|
|
],
|
|
"option_name": {
|
|
"ko": "블랙 / S"
|
|
},
|
|
"option_name_localized": "블랙 / S",
|
|
"price_adjustment": 0,
|
|
"price_adjustment_formatted": "+0원",
|
|
"price_adjustment_type": "increase",
|
|
"list_price": 29000,
|
|
"list_price_formatted": "29,000원",
|
|
"selling_price": 23200,
|
|
"selling_price_formatted": "23,200원",
|
|
"final_price": 23200,
|
|
"final_price_formatted": "23,200원",
|
|
"multi_currency_list_price": {
|
|
"KRW": {
|
|
"price": 29000,
|
|
"formatted": "29,000원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 22.31,
|
|
"formatted": "$22.31",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"multi_currency_selling_price": {
|
|
"KRW": {
|
|
"price": 23200,
|
|
"formatted": "23,200원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 17.85,
|
|
"formatted": "$17.85",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"stock_quantity": 0,
|
|
"safe_stock_quantity": 10,
|
|
"is_below_safe_stock": true,
|
|
"is_default": true,
|
|
"is_active": true,
|
|
"sku": "TS-1001-BLK-S",
|
|
"sort_order": 0
|
|
},
|
|
{
|
|
"id": 7002,
|
|
"option_code": "OPT-BLK-M",
|
|
"option_values": [
|
|
{
|
|
"key": {
|
|
"ko": "색상"
|
|
},
|
|
"value": {
|
|
"ko": "블랙"
|
|
}
|
|
},
|
|
{
|
|
"key": {
|
|
"ko": "사이즈"
|
|
},
|
|
"value": {
|
|
"ko": "M"
|
|
}
|
|
}
|
|
],
|
|
"option_values_localized": [
|
|
"블랙",
|
|
"M"
|
|
],
|
|
"option_name": {
|
|
"ko": "블랙 / M"
|
|
},
|
|
"option_name_localized": "블랙 / M",
|
|
"price_adjustment": 0,
|
|
"price_adjustment_formatted": "+0원",
|
|
"price_adjustment_type": "increase",
|
|
"list_price": 29000,
|
|
"list_price_formatted": "29,000원",
|
|
"selling_price": 23200,
|
|
"selling_price_formatted": "23,200원",
|
|
"final_price": 23200,
|
|
"final_price_formatted": "23,200원",
|
|
"multi_currency_list_price": {
|
|
"KRW": {
|
|
"price": 29000,
|
|
"formatted": "29,000원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 22.31,
|
|
"formatted": "$22.31",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"multi_currency_selling_price": {
|
|
"KRW": {
|
|
"price": 23200,
|
|
"formatted": "23,200원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 17.85,
|
|
"formatted": "$17.85",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"stock_quantity": 0,
|
|
"safe_stock_quantity": 10,
|
|
"is_below_safe_stock": true,
|
|
"is_default": false,
|
|
"is_active": true,
|
|
"sku": "TS-1001-BLK-M",
|
|
"sort_order": 1
|
|
},
|
|
{
|
|
"id": 7003,
|
|
"option_code": "OPT-WHT-L",
|
|
"option_values": [
|
|
{
|
|
"key": {
|
|
"ko": "색상"
|
|
},
|
|
"value": {
|
|
"ko": "화이트"
|
|
}
|
|
},
|
|
{
|
|
"key": {
|
|
"ko": "사이즈"
|
|
},
|
|
"value": {
|
|
"ko": "L"
|
|
}
|
|
}
|
|
],
|
|
"option_values_localized": [
|
|
"화이트",
|
|
"L"
|
|
],
|
|
"option_name": {
|
|
"ko": "화이트 / L"
|
|
},
|
|
"option_name_localized": "화이트 / L",
|
|
"price_adjustment": 2000,
|
|
"price_adjustment_formatted": "+2,000원",
|
|
"price_adjustment_type": "increase",
|
|
"list_price": 31000,
|
|
"list_price_formatted": "31,000원",
|
|
"selling_price": 25200,
|
|
"selling_price_formatted": "25,200원",
|
|
"final_price": 25200,
|
|
"final_price_formatted": "25,200원",
|
|
"multi_currency_list_price": {
|
|
"KRW": {
|
|
"price": 31000,
|
|
"formatted": "31,000원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 23.85,
|
|
"formatted": "$23.85",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"multi_currency_selling_price": {
|
|
"KRW": {
|
|
"price": 25200,
|
|
"formatted": "25,200원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 19.38,
|
|
"formatted": "$19.38",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"stock_quantity": 0,
|
|
"safe_stock_quantity": 10,
|
|
"is_below_safe_stock": true,
|
|
"is_default": false,
|
|
"is_active": true,
|
|
"sku": "TS-1001-WHT-L",
|
|
"sort_order": 2
|
|
}
|
|
],
|
|
"notice": {
|
|
"template_name": "의류 상품정보제공고시",
|
|
"values": [
|
|
{
|
|
"label": "제품 소재",
|
|
"value": "면 100%"
|
|
},
|
|
{
|
|
"label": "색상",
|
|
"value": "블랙, 화이트, 네이비"
|
|
},
|
|
{
|
|
"label": "치수",
|
|
"value": "S, M, L (상세 사이즈표 참고)"
|
|
},
|
|
{
|
|
"label": "제조자",
|
|
"value": "코지홈"
|
|
},
|
|
{
|
|
"label": "제조국",
|
|
"value": "대한민국"
|
|
},
|
|
{
|
|
"label": "취급 시 주의사항",
|
|
"value": "찬물 단독 손세탁 권장"
|
|
},
|
|
{
|
|
"label": "품질보증기준",
|
|
"value": "관련 법 및 소비자분쟁해결기준에 따름"
|
|
},
|
|
{
|
|
"label": "A/S 책임자와 전화번호",
|
|
"value": "코지홈 고객센터 1588-0000"
|
|
}
|
|
]
|
|
},
|
|
"common_info": {
|
|
"name": "배송/교환/환불 안내",
|
|
"content": "<p>주문 후 영업일 기준 1~2일 내 출고됩니다. 단순 변심 교환·반품은 수령 후 7일 이내 가능하며, 왕복 배송비가 부과됩니다.</p>",
|
|
"content_mode": "html"
|
|
},
|
|
"is_wishlisted": false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "suspended",
|
|
"label": "$t:editor.state.suspended",
|
|
"sampleDataOverrides": {
|
|
"byEndpointPattern": {
|
|
"/api/modules/sirsoft-ecommerce/products/*": {
|
|
"data": {
|
|
"id": 101,
|
|
"name": {
|
|
"ko": "베이직 오버핏 코튼 티셔츠",
|
|
"en": "Basic Overfit Cotton T-Shirt"
|
|
},
|
|
"name_localized": "베이직 오버핏 코튼 티셔츠",
|
|
"product_code": "TS-1001",
|
|
"sku": "TS-1001-BLK",
|
|
"categories": [
|
|
{
|
|
"id": 1,
|
|
"name": {
|
|
"ko": "패션의류",
|
|
"en": "Fashion"
|
|
},
|
|
"name_localized": "패션의류",
|
|
"breadcrumb": "패션의류",
|
|
"path": "1",
|
|
"is_primary": false
|
|
},
|
|
{
|
|
"id": 11,
|
|
"name": {
|
|
"ko": "상의",
|
|
"en": "Tops"
|
|
},
|
|
"name_localized": "상의",
|
|
"breadcrumb": "패션의류 > 상의",
|
|
"path": "1/11",
|
|
"is_primary": true
|
|
}
|
|
],
|
|
"category_name": "상의",
|
|
"list_price": 29000,
|
|
"list_price_formatted": "29,000원",
|
|
"selling_price": 23200,
|
|
"selling_price_formatted": "23,200원",
|
|
"discount_rate": 20,
|
|
"multi_currency_list_price": {
|
|
"KRW": {
|
|
"price": 29000,
|
|
"formatted": "29,000원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 22.31,
|
|
"formatted": "$22.31",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"multi_currency_selling_price": {
|
|
"KRW": {
|
|
"price": 23200,
|
|
"formatted": "23,200원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 17.85,
|
|
"formatted": "$17.85",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"stock_quantity": 320,
|
|
"min_purchase_qty": 1,
|
|
"max_purchase_qty": 10,
|
|
"sales_status": "suspended",
|
|
"sales_status_label": "판매중지",
|
|
"brand_name": "코지홈",
|
|
"labels": [
|
|
{
|
|
"name": "BEST",
|
|
"color": "#ef4444"
|
|
},
|
|
{
|
|
"name": "한정특가",
|
|
"color": "#f59e0b"
|
|
}
|
|
],
|
|
"additional_options": [
|
|
{
|
|
"id": 9001,
|
|
"name": "이니셜 자수 추가",
|
|
"is_required": false
|
|
},
|
|
{
|
|
"id": 9002,
|
|
"name": "선물 포장",
|
|
"is_required": false
|
|
}
|
|
],
|
|
"shipping_policy_id": 1,
|
|
"free_shipping": false,
|
|
"shipping_fee_formatted": "3,000원 (50,000원 이상 무료)",
|
|
"shipping_policy": {
|
|
"name": "기본 배송정책",
|
|
"charge_policy": "conditional_free",
|
|
"charge_policy_label": "조건부 무료",
|
|
"base_fee": 3000,
|
|
"base_fee_formatted": "3,000원",
|
|
"free_threshold": 50000,
|
|
"free_threshold_formatted": "50,000원",
|
|
"fee_summary": "3,000원 (50,000원 이상 무료배송)"
|
|
},
|
|
"short_description": "사계절 입기 좋은 오버핏 기본 티셔츠",
|
|
"short_description_localized": "사계절 입기 좋은 오버핏 기본 티셔츠",
|
|
"description": {
|
|
"ko": "<p>부드러운 30수 코튼 소재로 제작된 데일리 오버핏 티셔츠입니다.</p>"
|
|
},
|
|
"description_localized": "<h3>제품 특징</h3><p>부드러운 30수 코튼 100% 소재로 제작되어 사계절 내내 편안하게 착용할 수 있습니다. 오버핏 실루엣으로 체형 커버에 탁월하며, 어떤 하의와도 자연스럽게 매치됩니다.</p><ul><li>소재: 코튼 100%</li><li>핏: 오버핏</li><li>제조국: 대한민국</li></ul><p><img src=\"/images/placeholder.png\" alt=\"상세 이미지\" /></p>",
|
|
"description_mode": "html",
|
|
"images": [
|
|
{
|
|
"id": 5001,
|
|
"hash": "img5001",
|
|
"original_filename": "tshirt_main.jpg",
|
|
"download_url": "/images/placeholder.png",
|
|
"alt_text": "정면",
|
|
"alt_text_current": "베이직 오버핏 티셔츠 정면",
|
|
"is_thumbnail": true,
|
|
"sort_order": 0,
|
|
"order": 0,
|
|
"width": 1000,
|
|
"height": 1000,
|
|
"file_size": 184320,
|
|
"size": 184320,
|
|
"size_formatted": "180 KB",
|
|
"mime_type": "image/jpeg",
|
|
"is_image": true
|
|
},
|
|
{
|
|
"id": 5002,
|
|
"hash": "img5002",
|
|
"original_filename": "tshirt_back.jpg",
|
|
"download_url": "/images/placeholder.png",
|
|
"alt_text": "후면",
|
|
"alt_text_current": "베이직 오버핏 티셔츠 후면",
|
|
"is_thumbnail": false,
|
|
"sort_order": 1,
|
|
"order": 1,
|
|
"width": 1000,
|
|
"height": 1000,
|
|
"file_size": 176128,
|
|
"size": 176128,
|
|
"size_formatted": "172 KB",
|
|
"mime_type": "image/jpeg",
|
|
"is_image": true
|
|
},
|
|
{
|
|
"id": 5003,
|
|
"hash": "img5003",
|
|
"original_filename": "tshirt_detail.jpg",
|
|
"download_url": "/images/placeholder.png",
|
|
"alt_text": "디테일",
|
|
"alt_text_current": "소매 디테일 컷",
|
|
"is_thumbnail": false,
|
|
"sort_order": 2,
|
|
"order": 2,
|
|
"width": 1000,
|
|
"height": 1000,
|
|
"file_size": 158720,
|
|
"size": 158720,
|
|
"size_formatted": "155 KB",
|
|
"mime_type": "image/jpeg",
|
|
"is_image": true
|
|
}
|
|
],
|
|
"thumbnail_url": "/images/placeholder.png",
|
|
"meta_title": "베이직 오버핏 코튼 티셔츠 | 코지홈",
|
|
"meta_description": "사계절 입기 좋은 오버핏 기본 티셔츠",
|
|
"meta_keywords": [
|
|
"티셔츠",
|
|
"오버핏",
|
|
"코튼"
|
|
],
|
|
"has_options": true,
|
|
"option_groups": [
|
|
{
|
|
"name": {
|
|
"ko": "색상",
|
|
"en": "Color"
|
|
},
|
|
"name_localized": "색상",
|
|
"values": [
|
|
{
|
|
"ko": "블랙",
|
|
"en": "Black"
|
|
},
|
|
{
|
|
"ko": "화이트",
|
|
"en": "White"
|
|
},
|
|
{
|
|
"ko": "네이비",
|
|
"en": "Navy"
|
|
}
|
|
],
|
|
"values_localized": [
|
|
"블랙",
|
|
"화이트",
|
|
"네이비"
|
|
]
|
|
},
|
|
{
|
|
"name": {
|
|
"ko": "사이즈",
|
|
"en": "Size"
|
|
},
|
|
"name_localized": "사이즈",
|
|
"values": [
|
|
{
|
|
"ko": "S",
|
|
"en": "S"
|
|
},
|
|
{
|
|
"ko": "M",
|
|
"en": "M"
|
|
},
|
|
{
|
|
"ko": "L",
|
|
"en": "L"
|
|
}
|
|
],
|
|
"values_localized": [
|
|
"S",
|
|
"M",
|
|
"L"
|
|
]
|
|
}
|
|
],
|
|
"options": [
|
|
{
|
|
"id": 7001,
|
|
"option_code": "OPT-BLK-S",
|
|
"option_values": [
|
|
{
|
|
"key": {
|
|
"ko": "색상"
|
|
},
|
|
"value": {
|
|
"ko": "블랙"
|
|
}
|
|
},
|
|
{
|
|
"key": {
|
|
"ko": "사이즈"
|
|
},
|
|
"value": {
|
|
"ko": "S"
|
|
}
|
|
}
|
|
],
|
|
"option_values_localized": [
|
|
"블랙",
|
|
"S"
|
|
],
|
|
"option_name": {
|
|
"ko": "블랙 / S"
|
|
},
|
|
"option_name_localized": "블랙 / S",
|
|
"price_adjustment": 0,
|
|
"price_adjustment_formatted": "+0원",
|
|
"price_adjustment_type": "increase",
|
|
"list_price": 29000,
|
|
"list_price_formatted": "29,000원",
|
|
"selling_price": 23200,
|
|
"selling_price_formatted": "23,200원",
|
|
"final_price": 23200,
|
|
"final_price_formatted": "23,200원",
|
|
"multi_currency_list_price": {
|
|
"KRW": {
|
|
"price": 29000,
|
|
"formatted": "29,000원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 22.31,
|
|
"formatted": "$22.31",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"multi_currency_selling_price": {
|
|
"KRW": {
|
|
"price": 23200,
|
|
"formatted": "23,200원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 17.85,
|
|
"formatted": "$17.85",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"stock_quantity": 80,
|
|
"safe_stock_quantity": 10,
|
|
"is_below_safe_stock": false,
|
|
"is_default": true,
|
|
"is_active": true,
|
|
"sku": "TS-1001-BLK-S",
|
|
"sort_order": 0
|
|
},
|
|
{
|
|
"id": 7002,
|
|
"option_code": "OPT-BLK-M",
|
|
"option_values": [
|
|
{
|
|
"key": {
|
|
"ko": "색상"
|
|
},
|
|
"value": {
|
|
"ko": "블랙"
|
|
}
|
|
},
|
|
{
|
|
"key": {
|
|
"ko": "사이즈"
|
|
},
|
|
"value": {
|
|
"ko": "M"
|
|
}
|
|
}
|
|
],
|
|
"option_values_localized": [
|
|
"블랙",
|
|
"M"
|
|
],
|
|
"option_name": {
|
|
"ko": "블랙 / M"
|
|
},
|
|
"option_name_localized": "블랙 / M",
|
|
"price_adjustment": 0,
|
|
"price_adjustment_formatted": "+0원",
|
|
"price_adjustment_type": "increase",
|
|
"list_price": 29000,
|
|
"list_price_formatted": "29,000원",
|
|
"selling_price": 23200,
|
|
"selling_price_formatted": "23,200원",
|
|
"final_price": 23200,
|
|
"final_price_formatted": "23,200원",
|
|
"multi_currency_list_price": {
|
|
"KRW": {
|
|
"price": 29000,
|
|
"formatted": "29,000원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 22.31,
|
|
"formatted": "$22.31",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"multi_currency_selling_price": {
|
|
"KRW": {
|
|
"price": 23200,
|
|
"formatted": "23,200원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 17.85,
|
|
"formatted": "$17.85",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"stock_quantity": 120,
|
|
"safe_stock_quantity": 10,
|
|
"is_below_safe_stock": false,
|
|
"is_default": false,
|
|
"is_active": true,
|
|
"sku": "TS-1001-BLK-M",
|
|
"sort_order": 1
|
|
},
|
|
{
|
|
"id": 7003,
|
|
"option_code": "OPT-WHT-L",
|
|
"option_values": [
|
|
{
|
|
"key": {
|
|
"ko": "색상"
|
|
},
|
|
"value": {
|
|
"ko": "화이트"
|
|
}
|
|
},
|
|
{
|
|
"key": {
|
|
"ko": "사이즈"
|
|
},
|
|
"value": {
|
|
"ko": "L"
|
|
}
|
|
}
|
|
],
|
|
"option_values_localized": [
|
|
"화이트",
|
|
"L"
|
|
],
|
|
"option_name": {
|
|
"ko": "화이트 / L"
|
|
},
|
|
"option_name_localized": "화이트 / L",
|
|
"price_adjustment": 2000,
|
|
"price_adjustment_formatted": "+2,000원",
|
|
"price_adjustment_type": "increase",
|
|
"list_price": 31000,
|
|
"list_price_formatted": "31,000원",
|
|
"selling_price": 25200,
|
|
"selling_price_formatted": "25,200원",
|
|
"final_price": 25200,
|
|
"final_price_formatted": "25,200원",
|
|
"multi_currency_list_price": {
|
|
"KRW": {
|
|
"price": 31000,
|
|
"formatted": "31,000원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 23.85,
|
|
"formatted": "$23.85",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"multi_currency_selling_price": {
|
|
"KRW": {
|
|
"price": 25200,
|
|
"formatted": "25,200원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 19.38,
|
|
"formatted": "$19.38",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"stock_quantity": 5,
|
|
"safe_stock_quantity": 10,
|
|
"is_below_safe_stock": true,
|
|
"is_default": false,
|
|
"is_active": true,
|
|
"sku": "TS-1001-WHT-L",
|
|
"sort_order": 2
|
|
}
|
|
],
|
|
"notice": {
|
|
"template_name": "의류 상품정보제공고시",
|
|
"values": [
|
|
{
|
|
"label": "제품 소재",
|
|
"value": "면 100%"
|
|
},
|
|
{
|
|
"label": "색상",
|
|
"value": "블랙, 화이트, 네이비"
|
|
},
|
|
{
|
|
"label": "치수",
|
|
"value": "S, M, L (상세 사이즈표 참고)"
|
|
},
|
|
{
|
|
"label": "제조자",
|
|
"value": "코지홈"
|
|
},
|
|
{
|
|
"label": "제조국",
|
|
"value": "대한민국"
|
|
},
|
|
{
|
|
"label": "취급 시 주의사항",
|
|
"value": "찬물 단독 손세탁 권장"
|
|
},
|
|
{
|
|
"label": "품질보증기준",
|
|
"value": "관련 법 및 소비자분쟁해결기준에 따름"
|
|
},
|
|
{
|
|
"label": "A/S 책임자와 전화번호",
|
|
"value": "코지홈 고객센터 1588-0000"
|
|
}
|
|
]
|
|
},
|
|
"common_info": {
|
|
"name": "배송/교환/환불 안내",
|
|
"content": "<p>주문 후 영업일 기준 1~2일 내 출고됩니다. 단순 변심 교환·반품은 수령 후 7일 이내 가능하며, 왕복 배송비가 부과됩니다.</p>",
|
|
"content_mode": "html"
|
|
},
|
|
"is_wishlisted": false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "coming_soon",
|
|
"label": "$t:editor.state.coming_soon",
|
|
"sampleDataOverrides": {
|
|
"byEndpointPattern": {
|
|
"/api/modules/sirsoft-ecommerce/products/*": {
|
|
"data": {
|
|
"id": 101,
|
|
"name": {
|
|
"ko": "베이직 오버핏 코튼 티셔츠",
|
|
"en": "Basic Overfit Cotton T-Shirt"
|
|
},
|
|
"name_localized": "베이직 오버핏 코튼 티셔츠",
|
|
"product_code": "TS-1001",
|
|
"sku": "TS-1001-BLK",
|
|
"categories": [
|
|
{
|
|
"id": 1,
|
|
"name": {
|
|
"ko": "패션의류",
|
|
"en": "Fashion"
|
|
},
|
|
"name_localized": "패션의류",
|
|
"breadcrumb": "패션의류",
|
|
"path": "1",
|
|
"is_primary": false
|
|
},
|
|
{
|
|
"id": 11,
|
|
"name": {
|
|
"ko": "상의",
|
|
"en": "Tops"
|
|
},
|
|
"name_localized": "상의",
|
|
"breadcrumb": "패션의류 > 상의",
|
|
"path": "1/11",
|
|
"is_primary": true
|
|
}
|
|
],
|
|
"category_name": "상의",
|
|
"list_price": 29000,
|
|
"list_price_formatted": "29,000원",
|
|
"selling_price": 23200,
|
|
"selling_price_formatted": "23,200원",
|
|
"discount_rate": 20,
|
|
"multi_currency_list_price": {
|
|
"KRW": {
|
|
"price": 29000,
|
|
"formatted": "29,000원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 22.31,
|
|
"formatted": "$22.31",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"multi_currency_selling_price": {
|
|
"KRW": {
|
|
"price": 23200,
|
|
"formatted": "23,200원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 17.85,
|
|
"formatted": "$17.85",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"stock_quantity": 320,
|
|
"min_purchase_qty": 1,
|
|
"max_purchase_qty": 10,
|
|
"sales_status": "coming_soon",
|
|
"sales_status_label": "판매예정",
|
|
"brand_name": "코지홈",
|
|
"labels": [
|
|
{
|
|
"name": "BEST",
|
|
"color": "#ef4444"
|
|
},
|
|
{
|
|
"name": "한정특가",
|
|
"color": "#f59e0b"
|
|
}
|
|
],
|
|
"additional_options": [
|
|
{
|
|
"id": 9001,
|
|
"name": "이니셜 자수 추가",
|
|
"is_required": false
|
|
},
|
|
{
|
|
"id": 9002,
|
|
"name": "선물 포장",
|
|
"is_required": false
|
|
}
|
|
],
|
|
"shipping_policy_id": 1,
|
|
"free_shipping": false,
|
|
"shipping_fee_formatted": "3,000원 (50,000원 이상 무료)",
|
|
"shipping_policy": {
|
|
"name": "기본 배송정책",
|
|
"charge_policy": "conditional_free",
|
|
"charge_policy_label": "조건부 무료",
|
|
"base_fee": 3000,
|
|
"base_fee_formatted": "3,000원",
|
|
"free_threshold": 50000,
|
|
"free_threshold_formatted": "50,000원",
|
|
"fee_summary": "3,000원 (50,000원 이상 무료배송)"
|
|
},
|
|
"short_description": "사계절 입기 좋은 오버핏 기본 티셔츠",
|
|
"short_description_localized": "사계절 입기 좋은 오버핏 기본 티셔츠",
|
|
"description": {
|
|
"ko": "<p>부드러운 30수 코튼 소재로 제작된 데일리 오버핏 티셔츠입니다.</p>"
|
|
},
|
|
"description_localized": "<h3>제품 특징</h3><p>부드러운 30수 코튼 100% 소재로 제작되어 사계절 내내 편안하게 착용할 수 있습니다. 오버핏 실루엣으로 체형 커버에 탁월하며, 어떤 하의와도 자연스럽게 매치됩니다.</p><ul><li>소재: 코튼 100%</li><li>핏: 오버핏</li><li>제조국: 대한민국</li></ul><p><img src=\"/images/placeholder.png\" alt=\"상세 이미지\" /></p>",
|
|
"description_mode": "html",
|
|
"images": [
|
|
{
|
|
"id": 5001,
|
|
"hash": "img5001",
|
|
"original_filename": "tshirt_main.jpg",
|
|
"download_url": "/images/placeholder.png",
|
|
"alt_text": "정면",
|
|
"alt_text_current": "베이직 오버핏 티셔츠 정면",
|
|
"is_thumbnail": true,
|
|
"sort_order": 0,
|
|
"order": 0,
|
|
"width": 1000,
|
|
"height": 1000,
|
|
"file_size": 184320,
|
|
"size": 184320,
|
|
"size_formatted": "180 KB",
|
|
"mime_type": "image/jpeg",
|
|
"is_image": true
|
|
},
|
|
{
|
|
"id": 5002,
|
|
"hash": "img5002",
|
|
"original_filename": "tshirt_back.jpg",
|
|
"download_url": "/images/placeholder.png",
|
|
"alt_text": "후면",
|
|
"alt_text_current": "베이직 오버핏 티셔츠 후면",
|
|
"is_thumbnail": false,
|
|
"sort_order": 1,
|
|
"order": 1,
|
|
"width": 1000,
|
|
"height": 1000,
|
|
"file_size": 176128,
|
|
"size": 176128,
|
|
"size_formatted": "172 KB",
|
|
"mime_type": "image/jpeg",
|
|
"is_image": true
|
|
},
|
|
{
|
|
"id": 5003,
|
|
"hash": "img5003",
|
|
"original_filename": "tshirt_detail.jpg",
|
|
"download_url": "/images/placeholder.png",
|
|
"alt_text": "디테일",
|
|
"alt_text_current": "소매 디테일 컷",
|
|
"is_thumbnail": false,
|
|
"sort_order": 2,
|
|
"order": 2,
|
|
"width": 1000,
|
|
"height": 1000,
|
|
"file_size": 158720,
|
|
"size": 158720,
|
|
"size_formatted": "155 KB",
|
|
"mime_type": "image/jpeg",
|
|
"is_image": true
|
|
}
|
|
],
|
|
"thumbnail_url": "/images/placeholder.png",
|
|
"meta_title": "베이직 오버핏 코튼 티셔츠 | 코지홈",
|
|
"meta_description": "사계절 입기 좋은 오버핏 기본 티셔츠",
|
|
"meta_keywords": [
|
|
"티셔츠",
|
|
"오버핏",
|
|
"코튼"
|
|
],
|
|
"has_options": true,
|
|
"option_groups": [
|
|
{
|
|
"name": {
|
|
"ko": "색상",
|
|
"en": "Color"
|
|
},
|
|
"name_localized": "색상",
|
|
"values": [
|
|
{
|
|
"ko": "블랙",
|
|
"en": "Black"
|
|
},
|
|
{
|
|
"ko": "화이트",
|
|
"en": "White"
|
|
},
|
|
{
|
|
"ko": "네이비",
|
|
"en": "Navy"
|
|
}
|
|
],
|
|
"values_localized": [
|
|
"블랙",
|
|
"화이트",
|
|
"네이비"
|
|
]
|
|
},
|
|
{
|
|
"name": {
|
|
"ko": "사이즈",
|
|
"en": "Size"
|
|
},
|
|
"name_localized": "사이즈",
|
|
"values": [
|
|
{
|
|
"ko": "S",
|
|
"en": "S"
|
|
},
|
|
{
|
|
"ko": "M",
|
|
"en": "M"
|
|
},
|
|
{
|
|
"ko": "L",
|
|
"en": "L"
|
|
}
|
|
],
|
|
"values_localized": [
|
|
"S",
|
|
"M",
|
|
"L"
|
|
]
|
|
}
|
|
],
|
|
"options": [
|
|
{
|
|
"id": 7001,
|
|
"option_code": "OPT-BLK-S",
|
|
"option_values": [
|
|
{
|
|
"key": {
|
|
"ko": "색상"
|
|
},
|
|
"value": {
|
|
"ko": "블랙"
|
|
}
|
|
},
|
|
{
|
|
"key": {
|
|
"ko": "사이즈"
|
|
},
|
|
"value": {
|
|
"ko": "S"
|
|
}
|
|
}
|
|
],
|
|
"option_values_localized": [
|
|
"블랙",
|
|
"S"
|
|
],
|
|
"option_name": {
|
|
"ko": "블랙 / S"
|
|
},
|
|
"option_name_localized": "블랙 / S",
|
|
"price_adjustment": 0,
|
|
"price_adjustment_formatted": "+0원",
|
|
"price_adjustment_type": "increase",
|
|
"list_price": 29000,
|
|
"list_price_formatted": "29,000원",
|
|
"selling_price": 23200,
|
|
"selling_price_formatted": "23,200원",
|
|
"final_price": 23200,
|
|
"final_price_formatted": "23,200원",
|
|
"multi_currency_list_price": {
|
|
"KRW": {
|
|
"price": 29000,
|
|
"formatted": "29,000원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 22.31,
|
|
"formatted": "$22.31",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"multi_currency_selling_price": {
|
|
"KRW": {
|
|
"price": 23200,
|
|
"formatted": "23,200원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 17.85,
|
|
"formatted": "$17.85",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"stock_quantity": 80,
|
|
"safe_stock_quantity": 10,
|
|
"is_below_safe_stock": false,
|
|
"is_default": true,
|
|
"is_active": true,
|
|
"sku": "TS-1001-BLK-S",
|
|
"sort_order": 0
|
|
},
|
|
{
|
|
"id": 7002,
|
|
"option_code": "OPT-BLK-M",
|
|
"option_values": [
|
|
{
|
|
"key": {
|
|
"ko": "색상"
|
|
},
|
|
"value": {
|
|
"ko": "블랙"
|
|
}
|
|
},
|
|
{
|
|
"key": {
|
|
"ko": "사이즈"
|
|
},
|
|
"value": {
|
|
"ko": "M"
|
|
}
|
|
}
|
|
],
|
|
"option_values_localized": [
|
|
"블랙",
|
|
"M"
|
|
],
|
|
"option_name": {
|
|
"ko": "블랙 / M"
|
|
},
|
|
"option_name_localized": "블랙 / M",
|
|
"price_adjustment": 0,
|
|
"price_adjustment_formatted": "+0원",
|
|
"price_adjustment_type": "increase",
|
|
"list_price": 29000,
|
|
"list_price_formatted": "29,000원",
|
|
"selling_price": 23200,
|
|
"selling_price_formatted": "23,200원",
|
|
"final_price": 23200,
|
|
"final_price_formatted": "23,200원",
|
|
"multi_currency_list_price": {
|
|
"KRW": {
|
|
"price": 29000,
|
|
"formatted": "29,000원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 22.31,
|
|
"formatted": "$22.31",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"multi_currency_selling_price": {
|
|
"KRW": {
|
|
"price": 23200,
|
|
"formatted": "23,200원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 17.85,
|
|
"formatted": "$17.85",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"stock_quantity": 120,
|
|
"safe_stock_quantity": 10,
|
|
"is_below_safe_stock": false,
|
|
"is_default": false,
|
|
"is_active": true,
|
|
"sku": "TS-1001-BLK-M",
|
|
"sort_order": 1
|
|
},
|
|
{
|
|
"id": 7003,
|
|
"option_code": "OPT-WHT-L",
|
|
"option_values": [
|
|
{
|
|
"key": {
|
|
"ko": "색상"
|
|
},
|
|
"value": {
|
|
"ko": "화이트"
|
|
}
|
|
},
|
|
{
|
|
"key": {
|
|
"ko": "사이즈"
|
|
},
|
|
"value": {
|
|
"ko": "L"
|
|
}
|
|
}
|
|
],
|
|
"option_values_localized": [
|
|
"화이트",
|
|
"L"
|
|
],
|
|
"option_name": {
|
|
"ko": "화이트 / L"
|
|
},
|
|
"option_name_localized": "화이트 / L",
|
|
"price_adjustment": 2000,
|
|
"price_adjustment_formatted": "+2,000원",
|
|
"price_adjustment_type": "increase",
|
|
"list_price": 31000,
|
|
"list_price_formatted": "31,000원",
|
|
"selling_price": 25200,
|
|
"selling_price_formatted": "25,200원",
|
|
"final_price": 25200,
|
|
"final_price_formatted": "25,200원",
|
|
"multi_currency_list_price": {
|
|
"KRW": {
|
|
"price": 31000,
|
|
"formatted": "31,000원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 23.85,
|
|
"formatted": "$23.85",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"multi_currency_selling_price": {
|
|
"KRW": {
|
|
"price": 25200,
|
|
"formatted": "25,200원",
|
|
"is_default": true,
|
|
"editable": true
|
|
},
|
|
"USD": {
|
|
"price": 19.38,
|
|
"formatted": "$19.38",
|
|
"is_default": false,
|
|
"editable": false,
|
|
"exchange_rate": 1300
|
|
}
|
|
},
|
|
"stock_quantity": 5,
|
|
"safe_stock_quantity": 10,
|
|
"is_below_safe_stock": true,
|
|
"is_default": false,
|
|
"is_active": true,
|
|
"sku": "TS-1001-WHT-L",
|
|
"sort_order": 2
|
|
}
|
|
],
|
|
"notice": {
|
|
"template_name": "의류 상품정보제공고시",
|
|
"values": [
|
|
{
|
|
"label": "제품 소재",
|
|
"value": "면 100%"
|
|
},
|
|
{
|
|
"label": "색상",
|
|
"value": "블랙, 화이트, 네이비"
|
|
},
|
|
{
|
|
"label": "치수",
|
|
"value": "S, M, L (상세 사이즈표 참고)"
|
|
},
|
|
{
|
|
"label": "제조자",
|
|
"value": "코지홈"
|
|
},
|
|
{
|
|
"label": "제조국",
|
|
"value": "대한민국"
|
|
},
|
|
{
|
|
"label": "취급 시 주의사항",
|
|
"value": "찬물 단독 손세탁 권장"
|
|
},
|
|
{
|
|
"label": "품질보증기준",
|
|
"value": "관련 법 및 소비자분쟁해결기준에 따름"
|
|
},
|
|
{
|
|
"label": "A/S 책임자와 전화번호",
|
|
"value": "코지홈 고객센터 1588-0000"
|
|
}
|
|
]
|
|
},
|
|
"common_info": {
|
|
"name": "배송/교환/환불 안내",
|
|
"content": "<p>주문 후 영업일 기준 1~2일 내 출고됩니다. 단순 변심 교환·반품은 수령 후 7일 이내 가능하며, 왕복 배송비가 부과됩니다.</p>",
|
|
"content_mode": "html"
|
|
},
|
|
"is_wishlisted": false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "reviews_tab",
|
|
"label": "$t:editor.state.product_reviews_tab",
|
|
"comment": "상품상세 리뷰 탭은 _local.activeTab === 'reviews' 게이트 뒤라 기본('info') 상태 캔버스에 미렌더. activeTab 시드 + reviews 를 유저 탭 shape(reviews.data.reviews.data + rating_stats + option_filters + total_count)로 override. base reviews 샘플은 admin 리뷰관리 shape(reviews.data.data[])라 SSoT 분리(copy_source 패턴).",
|
|
"initialState": {
|
|
"local": {
|
|
"activeTab": "reviews"
|
|
}
|
|
},
|
|
"sampleDataOverrides": {
|
|
"byDataSourceId": {
|
|
"reviews": {
|
|
"data": {
|
|
"total_count": 37,
|
|
"rating_stats": {
|
|
"1": {
|
|
"count": 1,
|
|
"percent": 3
|
|
},
|
|
"2": {
|
|
"count": 2,
|
|
"percent": 5
|
|
},
|
|
"3": {
|
|
"count": 4,
|
|
"percent": 11
|
|
},
|
|
"4": {
|
|
"count": 8,
|
|
"percent": 22
|
|
},
|
|
"5": {
|
|
"count": 22,
|
|
"percent": 59
|
|
},
|
|
"avg": 4.3
|
|
},
|
|
"option_filters": [
|
|
{
|
|
"key": "색상",
|
|
"values": [
|
|
{
|
|
"value": "블랙",
|
|
"count": 18
|
|
},
|
|
{
|
|
"value": "화이트",
|
|
"count": 12
|
|
},
|
|
{
|
|
"value": "네이비",
|
|
"count": 7
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"key": "사이즈",
|
|
"values": [
|
|
{
|
|
"value": "S",
|
|
"count": 6
|
|
},
|
|
{
|
|
"value": "M",
|
|
"count": 19
|
|
},
|
|
{
|
|
"value": "L",
|
|
"count": 12
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"reviews": {
|
|
"data": [
|
|
{
|
|
"id": 9101,
|
|
"user": {
|
|
"name": "김민지",
|
|
"avatar": null
|
|
},
|
|
"rating": 5,
|
|
"content": "핏이 정말 예쁘고 원단도 도톰해서 가을에 입기 딱 좋아요. 세탁 후에도 변형이 없어서 만족합니다.",
|
|
"option_snapshot": {
|
|
"option_values": [
|
|
{
|
|
"key": {
|
|
"ko": "색상"
|
|
},
|
|
"value": {
|
|
"ko": "블랙"
|
|
}
|
|
},
|
|
{
|
|
"key": {
|
|
"ko": "사이즈"
|
|
},
|
|
"value": {
|
|
"ko": "M"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"image_count": 2,
|
|
"images": [
|
|
{
|
|
"download_url": "/images/placeholder.png"
|
|
},
|
|
{
|
|
"download_url": "/images/placeholder.png"
|
|
}
|
|
],
|
|
"has_reply": true,
|
|
"reply_content": "소중한 후기 감사합니다! 앞으로도 좋은 상품으로 보답하겠습니다.",
|
|
"replied_at": "2026-05-27 09:10",
|
|
"created_at": "2026-05-26 11:20"
|
|
},
|
|
{
|
|
"id": 9102,
|
|
"user": {
|
|
"name": "이서준",
|
|
"avatar": null
|
|
},
|
|
"rating": 4,
|
|
"content": "색감 예쁘고 무난하게 입기 좋습니다. 다만 생각보다 살짝 얇은 느낌이에요.",
|
|
"option_snapshot": {
|
|
"option_values": [
|
|
{
|
|
"key": {
|
|
"ko": "색상"
|
|
},
|
|
"value": {
|
|
"ko": "화이트"
|
|
}
|
|
},
|
|
{
|
|
"key": {
|
|
"ko": "사이즈"
|
|
},
|
|
"value": {
|
|
"ko": "L"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"image_count": 0,
|
|
"images": [],
|
|
"has_reply": false,
|
|
"reply_content": null,
|
|
"replied_at": null,
|
|
"created_at": "2026-05-24 16:42"
|
|
},
|
|
{
|
|
"id": 9103,
|
|
"user": {
|
|
"name": "박도윤",
|
|
"avatar": null
|
|
},
|
|
"rating": 5,
|
|
"content": "재구매했어요. 데일리로 입기 좋고 색상별로 사고 싶네요. 배송도 빨랐습니다.",
|
|
"option_snapshot": {
|
|
"option_values": [
|
|
{
|
|
"key": {
|
|
"ko": "색상"
|
|
},
|
|
"value": {
|
|
"ko": "네이비"
|
|
}
|
|
},
|
|
{
|
|
"key": {
|
|
"ko": "사이즈"
|
|
},
|
|
"value": {
|
|
"ko": "S"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"image_count": 5,
|
|
"images": [
|
|
{
|
|
"download_url": "/images/placeholder.png"
|
|
},
|
|
{
|
|
"download_url": "/images/placeholder.png"
|
|
},
|
|
{
|
|
"download_url": "/images/placeholder.png"
|
|
},
|
|
{
|
|
"download_url": "/images/placeholder.png"
|
|
},
|
|
{
|
|
"download_url": "/images/placeholder.png"
|
|
}
|
|
],
|
|
"has_reply": true,
|
|
"reply_content": "재구매 감사합니다! 네이비 색상도 곧 재입고 예정입니다.",
|
|
"replied_at": "2026-05-21 10:00",
|
|
"created_at": "2026-05-20 19:05"
|
|
},
|
|
{
|
|
"id": 9104,
|
|
"user": {
|
|
"name": "최예린",
|
|
"avatar": null
|
|
},
|
|
"rating": 3,
|
|
"content": "무난해요. 기본템으로는 괜찮은데 특별하진 않네요.",
|
|
"option_snapshot": {
|
|
"option_values": [
|
|
{
|
|
"key": {
|
|
"ko": "색상"
|
|
},
|
|
"value": {
|
|
"ko": "블랙"
|
|
}
|
|
},
|
|
{
|
|
"key": {
|
|
"ko": "사이즈"
|
|
},
|
|
"value": {
|
|
"ko": "M"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"image_count": 0,
|
|
"images": [],
|
|
"has_reply": false,
|
|
"reply_content": null,
|
|
"replied_at": null,
|
|
"created_at": "2026-05-18 08:33"
|
|
}
|
|
],
|
|
"meta": {
|
|
"current_page": 1,
|
|
"last_page": 4,
|
|
"per_page": 10,
|
|
"total": 37
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "qna_tab",
|
|
"label": "$t:editor.state.product_qna_tab",
|
|
"comment": "상품상세 문의 탭은 _local.activeTab === 'qna' && _global.modules['sirsoft-ecommerce'].inquiry.board_slug 게이트 + 탭 hiddenTabIds 가 board_slug 없으면 qna 탭 숨김. activeTab + global modules.inquiry.board_slug 시드 + qna 를 유저 shape(items[] + meta)로 override(기존 stub items:['샘플'] 해소).",
|
|
"initialState": {
|
|
"local": {
|
|
"activeTab": "qna"
|
|
},
|
|
"global": {
|
|
"modules": {
|
|
"sirsoft-ecommerce": {
|
|
"inquiry": {
|
|
"board_slug": "product-qna"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"comment": "shop/index — 목록 유무 + 접근 제한. _local.productAccessDenied=true 시 접근 제한 화면을 if 분기한다(본문 line 192).",
|
|
"scope": {
|
|
"kind": "route",
|
|
"match": "/*?/products"
|
|
},
|
|
"items": [
|
|
{
|
|
"id": "with_data",
|
|
"label": "$t:editor.state.with_data",
|
|
"default": true
|
|
},
|
|
{
|
|
"id": "empty_data",
|
|
"label": "$t:editor.state.empty_data",
|
|
"sampleDataOverrides": {
|
|
"byEndpointPattern": {
|
|
"/api/modules/sirsoft-ecommerce/products*": {
|
|
"data": {
|
|
"data": [],
|
|
"meta": {
|
|
"total": 0,
|
|
"per_page": 20,
|
|
"current_page": 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "access_denied",
|
|
"label": "$t:editor.state.shop_access_denied",
|
|
"initialState": {
|
|
"local": {
|
|
"productAccessDenied": true
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"comment": "shop/cart — 담긴 상품 유무 + 주문 처리 중(_local.isOrdering 시 오버레이 잠금, 본문 line 115).",
|
|
"scope": {
|
|
"kind": "route",
|
|
"match": "/*?/cart"
|
|
},
|
|
"items": [
|
|
{
|
|
"id": "with_items",
|
|
"label": "$t:editor.state.cart_with_items",
|
|
"default": true
|
|
},
|
|
{
|
|
"id": "empty_cart",
|
|
"label": "$t:editor.state.cart_empty",
|
|
"sampleDataOverrides": {
|
|
"byDataSourceId": {
|
|
"cartItems": {
|
|
"data": {
|
|
"items": [],
|
|
"item_ids": [],
|
|
"item_count": 0,
|
|
"calculation": {
|
|
"items": [],
|
|
"promotions": {
|
|
"product_promotions": {
|
|
"coupons": [],
|
|
"discount_codes": [],
|
|
"events": []
|
|
},
|
|
"order_promotions": {
|
|
"coupons": [],
|
|
"discount_codes": [],
|
|
"events": []
|
|
}
|
|
},
|
|
"validation_errors": [],
|
|
"summary": {
|
|
"subtotal": 0,
|
|
"subtotal_formatted": "0원",
|
|
"total_discount": 0,
|
|
"discount_formatted": "0원",
|
|
"total_shipping": 0,
|
|
"shipping_fee_formatted": "0원",
|
|
"final_amount": 0,
|
|
"final_amount_formatted": "0원",
|
|
"payment_amount_formatted": "0원",
|
|
"points_earning": 0,
|
|
"multi_currency": {}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "ordering",
|
|
"label": "$t:editor.state.cart_ordering",
|
|
"initialState": {
|
|
"local": {
|
|
"isOrdering": true
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "summary_tax_expanded",
|
|
"label": "$t:editor.state.cart_summary_details",
|
|
"comment": "장바구니 요약의 세금 상세는 (1) 금액 영역이 _local.selectedItems.length>0 게이트(_cart_summary.json line 75), (2) 세금 상세가 _local.showTaxDetails 토글 게이트(line 128)로 이중 중첩. 둘 다 시드(selectedItems=[1,2,3] + showTaxDetails:true)해 과세/면세 금액(multi_currency) breakdown 을 노출. 편집기는 정적 시뮬레이션이라 체크박스 클릭·토글 클릭 불가.",
|
|
"initialState": {
|
|
"local": {
|
|
"showTaxDetails": true,
|
|
"selectedItems": [
|
|
1,
|
|
2,
|
|
3
|
|
]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"comment": "shop/checkout — 정상/결제오류(_local.orderError·query.error, 본문 line 45/194)/구매불가(_local.unavailableModal, line 102)/입력검증실패 분기. 검증 실패는 주문자/배송지 입력칸별 인라인 에러를 _local.errors 의 점 포함 flat 키(예 'orderer.name')로 읽는다(_checkout_orderer.json line 99/101, _checkout_shipping.json) — formErrors 키를 대괄호 표기로 지정한다.",
|
|
"scope": {
|
|
"kind": "route",
|
|
"match": "/*?/checkout"
|
|
},
|
|
"items": [
|
|
{
|
|
"id": "normal",
|
|
"label": "$t:editor.state.checkout_normal",
|
|
"default": true,
|
|
"comment": "빈 local 패치 — sampleGlobal._local baseline(받는분/주소/배송메모 시드)을 캔버스에 force-inject 하는 트리거. 패치가 없으면 편집기가 _localInit 을 주입하지 않아 레이아웃 자체 initLocal 이 baseline 을 덮어쓴다. 시드 데이터는 sampleGlobal._local 1곳에만 존재(상태별 중복 없음).",
|
|
"initialState": {
|
|
"local": {}
|
|
}
|
|
},
|
|
{
|
|
"id": "payment_error",
|
|
"label": "$t:editor.state.checkout_payment_error",
|
|
"initialState": {
|
|
"local": {
|
|
"orderError": true,
|
|
"orderErrorMessage": "결제 처리 중 오류가 발생했습니다"
|
|
},
|
|
"query": {
|
|
"error": "confirm_failed"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "validation_failed",
|
|
"label": "$t:editor.state.checkout_validation_failed",
|
|
"formErrors": {
|
|
"_local.errors['orderer.name']": [
|
|
"주문자 이름을 입력해 주세요"
|
|
],
|
|
"_local.errors['orderer.phone']": [
|
|
"연락처를 입력해 주세요"
|
|
],
|
|
"_local.errors['orderer.email']": [
|
|
"올바른 이메일 형식이 아닙니다"
|
|
],
|
|
"_local.errors['shipping.recipient_name']": [
|
|
"받는 분 이름을 입력해 주세요"
|
|
],
|
|
"_local.errors['shipping.recipient_phone']": [
|
|
"받는 분 연락처를 입력해 주세요"
|
|
],
|
|
"_local.errors['shipping.zipcode']": [
|
|
"우편번호를 입력해 주세요"
|
|
],
|
|
"_local.errors['shipping.address']": [
|
|
"주소를 입력해 주세요"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"id": "summary_details_expanded",
|
|
"label": "$t:editor.state.checkout_summary_details",
|
|
"comment": "결제금액 요약의 세금/할인 상세는 _local.showTaxDetails / showDiscountDetails 토글 게이트 뒤(_checkout_summary.json line 93/161)라 기본 상태 미렌더. 두 토글 ON 으로 과세/면세 금액·상품/주문/배송 쿠폰 할인 breakdown(multi_currency 전 경로) 노출. base checkoutData 가 풍부하므로 override 불요.",
|
|
"initialState": {
|
|
"local": {
|
|
"showTaxDetails": true,
|
|
"showDiscountDetails": true
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"comment": "shop/order_complete — orderData.data.payment.payment_method 값(card/vbank/dbank)으로 결제수단별 안내를 if 분기한다(본문 line 52/95/138/229). card 는 base sampleData(=card)가 흐르므로 오버라이드 없음, vbank/dbank 는 byDataSourceId.orderData 통째 교체.",
|
|
"scope": {
|
|
"kind": "route",
|
|
"match": "/*?/orders/:id/complete"
|
|
},
|
|
"items": [
|
|
{
|
|
"id": "card",
|
|
"label": "$t:editor.state.payment_card",
|
|
"default": true
|
|
},
|
|
{
|
|
"id": "vbank",
|
|
"label": "$t:editor.state.payment_vbank",
|
|
"sampleDataOverrides": {
|
|
"byDataSourceId": {
|
|
"orderData": {
|
|
"data": {
|
|
"id": 5001,
|
|
"order_number": "20260603-0001",
|
|
"order_status": "payment_pending",
|
|
"order_status_label": "입금대기",
|
|
"order_status_variant": "warning",
|
|
"options": [
|
|
{
|
|
"id": 9001,
|
|
"option_status": "preparing",
|
|
"option_status_label": "배송준비중",
|
|
"option_status_variant": "info",
|
|
"product_id": 1,
|
|
"product_option_id": 101,
|
|
"sku": "EARBUDS-PRO-BLK",
|
|
"product_name": "프리미엄 무선 이어버드 프로",
|
|
"product_option_name": "미드나잇 블랙 / 기본",
|
|
"option_name": "미드나잇 블랙 / 기본",
|
|
"quantity": 2,
|
|
"shipped_quantity": 0,
|
|
"unit_price": 29000,
|
|
"unit_price_formatted": "29,000원",
|
|
"subtotal_price": 58000,
|
|
"subtotal_price_formatted": "58,000원",
|
|
"subtotal_discount_amount": 5000,
|
|
"subtotal_discount_amount_formatted": "5,000원",
|
|
"list_price": 32000,
|
|
"list_price_formatted": "32,000원",
|
|
"final_amount": 53000,
|
|
"final_amount_formatted": "53,000원",
|
|
"thumbnail_url": null,
|
|
"mc_unit_price": {
|
|
"KRW": {
|
|
"price": 29000,
|
|
"formatted": "29,000원",
|
|
"is_default": true
|
|
},
|
|
"USD": {
|
|
"price": 21.3,
|
|
"formatted": "$21.30",
|
|
"is_default": false
|
|
}
|
|
},
|
|
"mc_subtotal_price": {
|
|
"KRW": {
|
|
"price": 58000,
|
|
"formatted": "58,000원",
|
|
"is_default": true
|
|
},
|
|
"USD": {
|
|
"price": 42.6,
|
|
"formatted": "$42.60",
|
|
"is_default": false
|
|
}
|
|
},
|
|
"confirmed_at": null,
|
|
"can_confirm": false,
|
|
"can_write_review": false,
|
|
"has_review": false
|
|
},
|
|
{
|
|
"id": 9002,
|
|
"option_status": "preparing",
|
|
"option_status_label": "배송준비중",
|
|
"option_status_variant": "info",
|
|
"product_id": 2,
|
|
"product_option_id": 102,
|
|
"sku": "CABLE-15M-WHT",
|
|
"product_name": "고속 충전 케이블 1.5m",
|
|
"product_option_name": "1.5m",
|
|
"option_name": "1.5m",
|
|
"quantity": 1,
|
|
"shipped_quantity": 0,
|
|
"unit_price": 18000,
|
|
"unit_price_formatted": "18,000원",
|
|
"subtotal_price": 18000,
|
|
"subtotal_price_formatted": "18,000원",
|
|
"subtotal_discount_amount": 0,
|
|
"subtotal_discount_amount_formatted": "0원",
|
|
"list_price": 18000,
|
|
"list_price_formatted": "18,000원",
|
|
"final_amount": 18000,
|
|
"final_amount_formatted": "18,000원",
|
|
"thumbnail_url": null,
|
|
"mc_unit_price": {
|
|
"KRW": {
|
|
"price": 18000,
|
|
"formatted": "18,000원",
|
|
"is_default": true
|
|
},
|
|
"USD": {
|
|
"price": 13.2,
|
|
"formatted": "$13.20",
|
|
"is_default": false
|
|
}
|
|
},
|
|
"mc_subtotal_price": {
|
|
"KRW": {
|
|
"price": 18000,
|
|
"formatted": "18,000원",
|
|
"is_default": true
|
|
},
|
|
"USD": {
|
|
"price": 13.2,
|
|
"formatted": "$13.20",
|
|
"is_default": false
|
|
}
|
|
},
|
|
"confirmed_at": null,
|
|
"can_confirm": false,
|
|
"can_write_review": false,
|
|
"has_review": false
|
|
}
|
|
],
|
|
"payment": {
|
|
"id": 8001,
|
|
"payment_status": "pending",
|
|
"payment_status_label": "입금대기",
|
|
"payment_status_variant": "warning",
|
|
"payment_method": "vbank",
|
|
"payment_method_label": "가상계좌",
|
|
"payment_type_label": "일반결제",
|
|
"pg_provider": "kginicis",
|
|
"payment_number": "PAY-20260603-0002",
|
|
"paid_amount_formatted": "102,000원",
|
|
"card_name": null,
|
|
"card_number_masked": null,
|
|
"card_installment_months": 0,
|
|
"is_interest_free": false,
|
|
"paid_at_formatted": null,
|
|
"dbank_name": null,
|
|
"dbank_account": null,
|
|
"dbank_holder": null,
|
|
"depositor_name": null,
|
|
"deposit_due_at_formatted": null,
|
|
"vbank_name": "국민은행",
|
|
"vbank_number": "901234-56-789012",
|
|
"vbank_holder": "(주)지세븐커머스",
|
|
"vbank_due_at": "2026-06-05T23:59:59+09:00"
|
|
},
|
|
"shipping_address": {
|
|
"id": 7001,
|
|
"address_type": "shipping",
|
|
"recipient_name": "홍길동",
|
|
"recipient_phone": "010-1234-5678",
|
|
"recipient_country_code": "KR",
|
|
"zipcode": "06234",
|
|
"address": "서울특별시 강남구 테헤란로 123",
|
|
"address_detail": "4층 401호",
|
|
"city": "",
|
|
"state": "",
|
|
"full_address": "서울특별시 강남구 테헤란로 123 4층 401호",
|
|
"delivery_memo": "부재 시 경비실에 맡겨주세요"
|
|
},
|
|
"subtotal_amount": 76000,
|
|
"subtotal_amount_formatted": "76,000원",
|
|
"total_discount_amount": 5000,
|
|
"total_discount_amount_formatted": "5,000원",
|
|
"total_shipping_amount": 0,
|
|
"total_shipping_amount_formatted": "0원",
|
|
"total_amount": 102000,
|
|
"total_amount_formatted": "102,000원",
|
|
"mc_subtotal_amount": {
|
|
"KRW": {
|
|
"price": 76000,
|
|
"formatted": "76,000원",
|
|
"is_default": true
|
|
},
|
|
"USD": {
|
|
"price": 55.7,
|
|
"formatted": "$55.70",
|
|
"is_default": false
|
|
}
|
|
},
|
|
"mc_total_discount_amount": {
|
|
"KRW": {
|
|
"price": 5000,
|
|
"formatted": "5,000원",
|
|
"is_default": true
|
|
},
|
|
"USD": {
|
|
"price": 3.65,
|
|
"formatted": "$3.65",
|
|
"is_default": false
|
|
}
|
|
},
|
|
"mc_total_shipping_amount": {
|
|
"KRW": {
|
|
"price": 0,
|
|
"formatted": "0원",
|
|
"is_default": true
|
|
},
|
|
"USD": {
|
|
"price": 0,
|
|
"formatted": "$0.00",
|
|
"is_default": false
|
|
}
|
|
},
|
|
"mc_total_amount": {
|
|
"KRW": {
|
|
"price": 102000,
|
|
"formatted": "102,000원",
|
|
"is_default": true
|
|
},
|
|
"USD": {
|
|
"price": 74.5,
|
|
"formatted": "$74.50",
|
|
"is_default": false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "dbank",
|
|
"label": "$t:editor.state.payment_dbank",
|
|
"sampleDataOverrides": {
|
|
"byDataSourceId": {
|
|
"orderData": {
|
|
"data": {
|
|
"id": 5001,
|
|
"order_number": "20260603-0001",
|
|
"order_status": "payment_pending",
|
|
"order_status_label": "입금대기",
|
|
"order_status_variant": "warning",
|
|
"options": [
|
|
{
|
|
"id": 9001,
|
|
"option_status": "preparing",
|
|
"option_status_label": "배송준비중",
|
|
"option_status_variant": "info",
|
|
"product_id": 1,
|
|
"product_option_id": 101,
|
|
"sku": "EARBUDS-PRO-BLK",
|
|
"product_name": "프리미엄 무선 이어버드 프로",
|
|
"product_option_name": "미드나잇 블랙 / 기본",
|
|
"option_name": "미드나잇 블랙 / 기본",
|
|
"quantity": 2,
|
|
"shipped_quantity": 0,
|
|
"unit_price": 29000,
|
|
"unit_price_formatted": "29,000원",
|
|
"subtotal_price": 58000,
|
|
"subtotal_price_formatted": "58,000원",
|
|
"subtotal_discount_amount": 5000,
|
|
"subtotal_discount_amount_formatted": "5,000원",
|
|
"list_price": 32000,
|
|
"list_price_formatted": "32,000원",
|
|
"final_amount": 53000,
|
|
"final_amount_formatted": "53,000원",
|
|
"thumbnail_url": null,
|
|
"mc_unit_price": {
|
|
"KRW": {
|
|
"price": 29000,
|
|
"formatted": "29,000원",
|
|
"is_default": true
|
|
},
|
|
"USD": {
|
|
"price": 21.3,
|
|
"formatted": "$21.30",
|
|
"is_default": false
|
|
}
|
|
},
|
|
"mc_subtotal_price": {
|
|
"KRW": {
|
|
"price": 58000,
|
|
"formatted": "58,000원",
|
|
"is_default": true
|
|
},
|
|
"USD": {
|
|
"price": 42.6,
|
|
"formatted": "$42.60",
|
|
"is_default": false
|
|
}
|
|
},
|
|
"confirmed_at": null,
|
|
"can_confirm": false,
|
|
"can_write_review": false,
|
|
"has_review": false
|
|
},
|
|
{
|
|
"id": 9002,
|
|
"option_status": "preparing",
|
|
"option_status_label": "배송준비중",
|
|
"option_status_variant": "info",
|
|
"product_id": 2,
|
|
"product_option_id": 102,
|
|
"sku": "CABLE-15M-WHT",
|
|
"product_name": "고속 충전 케이블 1.5m",
|
|
"product_option_name": "1.5m",
|
|
"option_name": "1.5m",
|
|
"quantity": 1,
|
|
"shipped_quantity": 0,
|
|
"unit_price": 18000,
|
|
"unit_price_formatted": "18,000원",
|
|
"subtotal_price": 18000,
|
|
"subtotal_price_formatted": "18,000원",
|
|
"subtotal_discount_amount": 0,
|
|
"subtotal_discount_amount_formatted": "0원",
|
|
"list_price": 18000,
|
|
"list_price_formatted": "18,000원",
|
|
"final_amount": 18000,
|
|
"final_amount_formatted": "18,000원",
|
|
"thumbnail_url": null,
|
|
"mc_unit_price": {
|
|
"KRW": {
|
|
"price": 18000,
|
|
"formatted": "18,000원",
|
|
"is_default": true
|
|
},
|
|
"USD": {
|
|
"price": 13.2,
|
|
"formatted": "$13.20",
|
|
"is_default": false
|
|
}
|
|
},
|
|
"mc_subtotal_price": {
|
|
"KRW": {
|
|
"price": 18000,
|
|
"formatted": "18,000원",
|
|
"is_default": true
|
|
},
|
|
"USD": {
|
|
"price": 13.2,
|
|
"formatted": "$13.20",
|
|
"is_default": false
|
|
}
|
|
},
|
|
"confirmed_at": null,
|
|
"can_confirm": false,
|
|
"can_write_review": false,
|
|
"has_review": false
|
|
}
|
|
],
|
|
"payment": {
|
|
"id": 8001,
|
|
"payment_status": "pending",
|
|
"payment_status_label": "입금대기",
|
|
"payment_status_variant": "warning",
|
|
"payment_method": "dbank",
|
|
"payment_method_label": "무통장입금",
|
|
"payment_type_label": "일반결제",
|
|
"pg_provider": "kginicis",
|
|
"payment_number": "PAY-20260603-0003",
|
|
"paid_amount_formatted": "102,000원",
|
|
"card_name": null,
|
|
"card_number_masked": null,
|
|
"card_installment_months": 0,
|
|
"is_interest_free": false,
|
|
"paid_at_formatted": null,
|
|
"dbank_name": "신한은행",
|
|
"dbank_account": "110-123-456789",
|
|
"dbank_holder": "(주)지세븐커머스",
|
|
"depositor_name": "홍길동",
|
|
"deposit_due_at_formatted": "2026-06-05 23:59",
|
|
"vbank_name": null,
|
|
"vbank_number": null,
|
|
"vbank_holder": null,
|
|
"vbank_due_at": null
|
|
},
|
|
"shipping_address": {
|
|
"id": 7001,
|
|
"address_type": "shipping",
|
|
"recipient_name": "홍길동",
|
|
"recipient_phone": "010-1234-5678",
|
|
"recipient_country_code": "KR",
|
|
"zipcode": "06234",
|
|
"address": "서울특별시 강남구 테헤란로 123",
|
|
"address_detail": "4층 401호",
|
|
"city": "",
|
|
"state": "",
|
|
"full_address": "서울특별시 강남구 테헤란로 123 4층 401호",
|
|
"delivery_memo": "부재 시 경비실에 맡겨주세요"
|
|
},
|
|
"subtotal_amount": 76000,
|
|
"subtotal_amount_formatted": "76,000원",
|
|
"total_discount_amount": 5000,
|
|
"total_discount_amount_formatted": "5,000원",
|
|
"total_shipping_amount": 0,
|
|
"total_shipping_amount_formatted": "0원",
|
|
"total_amount": 102000,
|
|
"total_amount_formatted": "102,000원",
|
|
"mc_subtotal_amount": {
|
|
"KRW": {
|
|
"price": 76000,
|
|
"formatted": "76,000원",
|
|
"is_default": true
|
|
},
|
|
"USD": {
|
|
"price": 55.7,
|
|
"formatted": "$55.70",
|
|
"is_default": false
|
|
}
|
|
},
|
|
"mc_total_discount_amount": {
|
|
"KRW": {
|
|
"price": 5000,
|
|
"formatted": "5,000원",
|
|
"is_default": true
|
|
},
|
|
"USD": {
|
|
"price": 3.65,
|
|
"formatted": "$3.65",
|
|
"is_default": false
|
|
}
|
|
},
|
|
"mc_total_shipping_amount": {
|
|
"KRW": {
|
|
"price": 0,
|
|
"formatted": "0원",
|
|
"is_default": true
|
|
},
|
|
"USD": {
|
|
"price": 0,
|
|
"formatted": "$0.00",
|
|
"is_default": false
|
|
}
|
|
},
|
|
"mc_total_amount": {
|
|
"KRW": {
|
|
"price": 102000,
|
|
"formatted": "102,000원",
|
|
"is_default": true
|
|
},
|
|
"USD": {
|
|
"price": 74.5,
|
|
"formatted": "$74.50",
|
|
"is_default": false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"comment": "shop/reorder — _local.status 값(pending/success/error)으로 재주문 진행 화면을 if 분기한다(본문 line 72/99/225).",
|
|
"scope": {
|
|
"kind": "route",
|
|
"match": "/*?/reorder/:id"
|
|
},
|
|
"items": [
|
|
{
|
|
"id": "pending",
|
|
"label": "$t:editor.state.reorder_pending",
|
|
"default": true,
|
|
"initialState": {
|
|
"local": {
|
|
"status": "pending"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "success_partial",
|
|
"label": "$t:editor.state.reorder_success_partial",
|
|
"initialState": {
|
|
"local": {
|
|
"status": "success",
|
|
"skipped": [
|
|
{
|
|
"name": "품절 상품"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "error",
|
|
"label": "$t:editor.state.reorder_error",
|
|
"initialState": {
|
|
"local": {
|
|
"status": "error"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"comment": "admin 상품 폼 — route.itemCode 유무로 수정/신규, query.copy_id 로 복사 생성을 분기한다(본문 line 9/32/75). 검증 오류는 _local.errors.{field} 경로.",
|
|
"scope": {
|
|
"kind": "route",
|
|
"match": "*/admin/ecommerce/products/:itemCode/edit"
|
|
},
|
|
"items": [
|
|
{
|
|
"id": "edit_mode",
|
|
"label": "$t:editor.state.edit_existing",
|
|
"default": true
|
|
},
|
|
{
|
|
"id": "create_mode",
|
|
"label": "$t:editor.state.create_mode",
|
|
"initialState": {
|
|
"route": {
|
|
"itemCode": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "validation_failed",
|
|
"label": "$t:editor.state.validation_failed",
|
|
"formErrors": {
|
|
"_local.errors.name": [
|
|
"필수 입력 항목입니다"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"comment": "admin 쿠폰 폼 — route.id 유무로 수정/신규 분기(본문 line 9/74). 검증 오류는 _local.errors.",
|
|
"scope": {
|
|
"kind": "route",
|
|
"match": "*/admin/ecommerce/promotion-coupons/:id/edit"
|
|
},
|
|
"items": [
|
|
{
|
|
"id": "edit_mode",
|
|
"label": "$t:editor.state.edit_existing",
|
|
"default": true,
|
|
"initialState": {
|
|
"local": {
|
|
"form": {
|
|
"target_type": "order_amount",
|
|
"name": {
|
|
"ko": "신규회원 10% 할인",
|
|
"en": "New Member 10% Off"
|
|
},
|
|
"description": {
|
|
"ko": "신규 가입 회원 대상 주문금액 10% 할인 쿠폰",
|
|
"en": "10% off for new members"
|
|
},
|
|
"issue_method": "download",
|
|
"issue_condition": "manual",
|
|
"discount_type": "rate",
|
|
"discount_value": 10,
|
|
"discount_max_amount": 20000,
|
|
"min_order_amount": 30000,
|
|
"valid_type": "days",
|
|
"valid_days": 30,
|
|
"valid_from": null,
|
|
"valid_to": null,
|
|
"total_quantity": 1000,
|
|
"issue_from": "2026-05-01T00:00",
|
|
"issue_to": "2026-06-30T23:59",
|
|
"per_user_limit": 1,
|
|
"is_combinable": false,
|
|
"target_scope": "all"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "create_mode",
|
|
"label": "$t:editor.state.create_mode",
|
|
"initialState": {
|
|
"route": {
|
|
"id": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "validation_failed",
|
|
"label": "$t:editor.state.validation_failed",
|
|
"formErrors": {
|
|
"_local.errors.name": [
|
|
"필수 입력 항목입니다"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"comment": "admin 배송 정책 폼 — route.id 유무로 수정/신규, query.copy_id 로 복사 분기(본문 line 9/60/98). 검증 오류는 _local.errors.",
|
|
"scope": {
|
|
"kind": "route",
|
|
"match": "*/admin/ecommerce/shipping-policies/:id/edit"
|
|
},
|
|
"items": [
|
|
{
|
|
"id": "edit_mode",
|
|
"label": "부과정책: 조건부 무료",
|
|
"default": true,
|
|
"initialState": {
|
|
"local": {
|
|
"form": {
|
|
"name": {
|
|
"ko": "기본 배송정책",
|
|
"en": "Standard Shipping"
|
|
},
|
|
"is_active": true,
|
|
"is_default": true,
|
|
"country_settings": [
|
|
{
|
|
"country_code": "KR",
|
|
"shipping_method": "parcel",
|
|
"custom_shipping_name": null,
|
|
"carrier": null,
|
|
"currency_code": "KRW",
|
|
"charge_policy": "conditional_free",
|
|
"base_fee": 3000,
|
|
"free_threshold": 50000,
|
|
"ranges": null,
|
|
"api_endpoint": null,
|
|
"api_request_fields": null,
|
|
"api_response_fee_field": null,
|
|
"extra_fee_enabled": true,
|
|
"extra_fee_settings": [
|
|
{
|
|
"region": "제주특별자치도",
|
|
"zipcode": "63000-63644",
|
|
"fee": 3000
|
|
},
|
|
{
|
|
"region": "도서산간",
|
|
"zipcode": "",
|
|
"fee": 4000
|
|
}
|
|
],
|
|
"extra_fee_multiply": false,
|
|
"is_active": true
|
|
},
|
|
{
|
|
"country_code": "US",
|
|
"shipping_method": "parcel",
|
|
"custom_shipping_name": null,
|
|
"carrier": null,
|
|
"currency_code": "USD",
|
|
"charge_policy": "range_amount",
|
|
"base_fee": 0,
|
|
"free_threshold": null,
|
|
"ranges": {
|
|
"type": "amount",
|
|
"tiers": [
|
|
{
|
|
"min": 0,
|
|
"max": 50000,
|
|
"fee": 3000
|
|
},
|
|
{
|
|
"min": 50000,
|
|
"max": 100000,
|
|
"fee": 1500
|
|
},
|
|
{
|
|
"min": 100000,
|
|
"max": null,
|
|
"fee": 0
|
|
}
|
|
]
|
|
},
|
|
"api_endpoint": null,
|
|
"api_request_fields": null,
|
|
"api_response_fee_field": null,
|
|
"extra_fee_enabled": false,
|
|
"extra_fee_settings": [],
|
|
"extra_fee_multiply": false,
|
|
"is_active": true
|
|
}
|
|
]
|
|
},
|
|
"activeCountryTab": 0,
|
|
"rangeErrors": {},
|
|
"showBaseFee": true,
|
|
"showFreeThreshold": true,
|
|
"showRanges": false,
|
|
"showApiSettings": false,
|
|
"showUnitValue": false
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "charge_fixed",
|
|
"label": "부과정책: 고정",
|
|
"default": false,
|
|
"initialState": {
|
|
"local": {
|
|
"form": {
|
|
"name": {
|
|
"ko": "기본 배송정책",
|
|
"en": "Standard Shipping"
|
|
},
|
|
"is_active": true,
|
|
"is_default": false,
|
|
"country_settings": [
|
|
{
|
|
"country_code": "KR",
|
|
"shipping_method": "parcel",
|
|
"custom_shipping_name": null,
|
|
"carrier": null,
|
|
"currency_code": "KRW",
|
|
"charge_policy": "fixed",
|
|
"base_fee": 3000,
|
|
"free_threshold": null,
|
|
"ranges": null,
|
|
"api_endpoint": null,
|
|
"api_request_fields": null,
|
|
"api_response_fee_field": null,
|
|
"extra_fee_enabled": false,
|
|
"extra_fee_settings": [],
|
|
"extra_fee_multiply": false,
|
|
"is_active": true
|
|
}
|
|
]
|
|
},
|
|
"activeCountryTab": 0,
|
|
"rangeErrors": {},
|
|
"showBaseFee": true,
|
|
"showFreeThreshold": false,
|
|
"showRanges": false,
|
|
"showApiSettings": false,
|
|
"showUnitValue": false
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "charge_range",
|
|
"label": "부과정책: 구간별(금액)",
|
|
"default": false,
|
|
"initialState": {
|
|
"local": {
|
|
"form": {
|
|
"name": {
|
|
"ko": "기본 배송정책",
|
|
"en": "Standard Shipping"
|
|
},
|
|
"is_active": true,
|
|
"is_default": false,
|
|
"country_settings": [
|
|
{
|
|
"country_code": "KR",
|
|
"shipping_method": "parcel",
|
|
"custom_shipping_name": null,
|
|
"carrier": null,
|
|
"currency_code": "KRW",
|
|
"charge_policy": "range_amount",
|
|
"base_fee": 0,
|
|
"free_threshold": null,
|
|
"ranges": {
|
|
"type": "amount",
|
|
"tiers": [
|
|
{
|
|
"min": 0,
|
|
"max": 50000,
|
|
"fee": 3000
|
|
},
|
|
{
|
|
"min": 50000,
|
|
"max": 100000,
|
|
"fee": 1500
|
|
},
|
|
{
|
|
"min": 100000,
|
|
"max": null,
|
|
"fee": 0
|
|
}
|
|
]
|
|
},
|
|
"api_endpoint": null,
|
|
"api_request_fields": null,
|
|
"api_response_fee_field": null,
|
|
"extra_fee_enabled": false,
|
|
"extra_fee_settings": [],
|
|
"extra_fee_multiply": false,
|
|
"is_active": true
|
|
}
|
|
]
|
|
},
|
|
"activeCountryTab": 0,
|
|
"rangeErrors": {},
|
|
"showBaseFee": false,
|
|
"showFreeThreshold": false,
|
|
"showRanges": true,
|
|
"showApiSettings": false,
|
|
"showUnitValue": false
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "charge_per_weight",
|
|
"label": "부과정책: 무게당",
|
|
"default": false,
|
|
"initialState": {
|
|
"local": {
|
|
"form": {
|
|
"name": {
|
|
"ko": "기본 배송정책",
|
|
"en": "Standard Shipping"
|
|
},
|
|
"is_active": true,
|
|
"is_default": false,
|
|
"country_settings": [
|
|
{
|
|
"country_code": "KR",
|
|
"shipping_method": "parcel",
|
|
"custom_shipping_name": null,
|
|
"carrier": null,
|
|
"currency_code": "KRW",
|
|
"charge_policy": "per_weight",
|
|
"base_fee": 2500,
|
|
"free_threshold": null,
|
|
"ranges": {
|
|
"type": "weight",
|
|
"unit_value": 5
|
|
},
|
|
"api_endpoint": null,
|
|
"api_request_fields": null,
|
|
"api_response_fee_field": null,
|
|
"extra_fee_enabled": false,
|
|
"extra_fee_settings": [],
|
|
"extra_fee_multiply": false,
|
|
"is_active": true
|
|
}
|
|
]
|
|
},
|
|
"activeCountryTab": 0,
|
|
"rangeErrors": {},
|
|
"showBaseFee": true,
|
|
"showFreeThreshold": false,
|
|
"showRanges": false,
|
|
"showApiSettings": false,
|
|
"showUnitValue": true
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "charge_free",
|
|
"label": "부과정책: 무료",
|
|
"default": false,
|
|
"initialState": {
|
|
"local": {
|
|
"form": {
|
|
"name": {
|
|
"ko": "기본 배송정책",
|
|
"en": "Standard Shipping"
|
|
},
|
|
"is_active": true,
|
|
"is_default": false,
|
|
"country_settings": [
|
|
{
|
|
"country_code": "KR",
|
|
"shipping_method": "parcel",
|
|
"custom_shipping_name": null,
|
|
"carrier": null,
|
|
"currency_code": "KRW",
|
|
"charge_policy": "free",
|
|
"base_fee": 0,
|
|
"free_threshold": null,
|
|
"ranges": null,
|
|
"api_endpoint": null,
|
|
"api_request_fields": null,
|
|
"api_response_fee_field": null,
|
|
"extra_fee_enabled": false,
|
|
"extra_fee_settings": [],
|
|
"extra_fee_multiply": false,
|
|
"is_active": true
|
|
}
|
|
]
|
|
},
|
|
"activeCountryTab": 0,
|
|
"rangeErrors": {},
|
|
"showBaseFee": false,
|
|
"showFreeThreshold": false,
|
|
"showRanges": false,
|
|
"showApiSettings": false,
|
|
"showUnitValue": false
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "charge_api",
|
|
"label": "부과정책: 계산 API",
|
|
"default": false,
|
|
"initialState": {
|
|
"local": {
|
|
"form": {
|
|
"name": {
|
|
"ko": "기본 배송정책",
|
|
"en": "Standard Shipping"
|
|
},
|
|
"is_active": true,
|
|
"is_default": false,
|
|
"country_settings": [
|
|
{
|
|
"country_code": "KR",
|
|
"shipping_method": "parcel",
|
|
"custom_shipping_name": null,
|
|
"carrier": null,
|
|
"currency_code": "KRW",
|
|
"charge_policy": "api",
|
|
"base_fee": 0,
|
|
"free_threshold": null,
|
|
"ranges": null,
|
|
"api_endpoint": "https://shipping.example.com/api/quote",
|
|
"api_request_fields": [
|
|
"zipcode",
|
|
"weight"
|
|
],
|
|
"api_response_fee_field": "fee",
|
|
"extra_fee_enabled": false,
|
|
"extra_fee_settings": [],
|
|
"extra_fee_multiply": false,
|
|
"is_active": true
|
|
}
|
|
]
|
|
},
|
|
"activeCountryTab": 0,
|
|
"rangeErrors": {},
|
|
"showBaseFee": false,
|
|
"showFreeThreshold": false,
|
|
"showRanges": false,
|
|
"showApiSettings": true,
|
|
"showUnitValue": false
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "create_mode",
|
|
"label": "$t:editor.state.create_mode",
|
|
"initialState": {
|
|
"route": {
|
|
"id": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "validation_failed",
|
|
"label": "$t:editor.state.validation_failed",
|
|
"formErrors": {
|
|
"_local.errors.name": [
|
|
"필수 입력 항목입니다"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"comment": "admin 이커머스 설정 — {{_global.activeEcommerceSettingsTab || query.tab || 'basic_info'}} 으로 9개 탭 화면을 if 분기한다(본문 line 303/344~). query.tab + 우선 키 함께 주입.",
|
|
"scope": {
|
|
"kind": "route",
|
|
"match": "*/admin/ecommerce/settings"
|
|
},
|
|
"items": [
|
|
{
|
|
"id": "tab_basic_info",
|
|
"label": "$t:editor.state.tab.basic_info",
|
|
"initialState": {
|
|
"query": {
|
|
"tab": "basic_info"
|
|
},
|
|
"global": {
|
|
"activeEcommerceSettingsTab": "basic_info"
|
|
}
|
|
},
|
|
"default": true
|
|
},
|
|
{
|
|
"id": "tab_language_currency",
|
|
"label": "$t:editor.state.tab.language_currency",
|
|
"initialState": {
|
|
"query": {
|
|
"tab": "language_currency"
|
|
},
|
|
"global": {
|
|
"activeEcommerceSettingsTab": "language_currency"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "tab_seo",
|
|
"label": "$t:editor.state.tab.seo",
|
|
"initialState": {
|
|
"query": {
|
|
"tab": "seo"
|
|
},
|
|
"global": {
|
|
"activeEcommerceSettingsTab": "seo"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "tab_order_settings",
|
|
"label": "$t:editor.state.tab.order_settings",
|
|
"initialState": {
|
|
"query": {
|
|
"tab": "order_settings"
|
|
},
|
|
"global": {
|
|
"activeEcommerceSettingsTab": "order_settings"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "tab_claim",
|
|
"label": "$t:editor.state.tab.claim",
|
|
"initialState": {
|
|
"query": {
|
|
"tab": "claim"
|
|
},
|
|
"global": {
|
|
"activeEcommerceSettingsTab": "claim"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "tab_shipping",
|
|
"label": "$t:editor.state.tab.shipping",
|
|
"initialState": {
|
|
"query": {
|
|
"tab": "shipping"
|
|
},
|
|
"global": {
|
|
"activeEcommerceSettingsTab": "shipping"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "tab_review_settings",
|
|
"label": "$t:editor.state.tab.review_settings",
|
|
"initialState": {
|
|
"query": {
|
|
"tab": "review_settings"
|
|
},
|
|
"global": {
|
|
"activeEcommerceSettingsTab": "review_settings"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "tab_notification_definitions",
|
|
"label": "$t:editor.state.tab.notification_definitions",
|
|
"initialState": {
|
|
"query": {
|
|
"tab": "notification_definitions"
|
|
},
|
|
"global": {
|
|
"activeEcommerceSettingsTab": "notification_definitions"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "tab_identity_policies",
|
|
"label": "$t:editor.state.tab.identity_policies",
|
|
"initialState": {
|
|
"query": {
|
|
"tab": "identity_policies"
|
|
},
|
|
"global": {
|
|
"activeEcommerceSettingsTab": "identity_policies"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"comment": "admin 마일리지/예치금 설정 — _local.activeTab(mileage/deposit)으로 탭을 분기한다(본문 line 130/165).",
|
|
"scope": {
|
|
"kind": "route",
|
|
"match": "*/admin/ecommerce/mileage-deposit-settings"
|
|
},
|
|
"items": [
|
|
{
|
|
"id": "tab_mileage",
|
|
"label": "$t:editor.state.tab.mileage",
|
|
"default": true,
|
|
"initialState": {
|
|
"local": {
|
|
"activeTab": "mileage"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "tab_deposit",
|
|
"label": "$t:editor.state.tab.deposit",
|
|
"initialState": {
|
|
"local": {
|
|
"activeTab": "deposit"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"comment": "shop/guest_order_form — 비회원 주문 조회 폼. 본문이 _global.currentUser.uuid 유무로 양분된다(slots.content[0] 회원→마이페이지 리다이렉트 안내 / content[1] 비회원→조회 폼). 편집기 sampleGlobal 은 로그인 상태(currentUser 시드)라 비회원 조회 폼이 기본 미표시이므로, currentUser 를 null 로 패치한 비회원 상태를 기본으로 노출해 폼을 편집 가능하게 한다.",
|
|
"scope": {
|
|
"kind": "route",
|
|
"match": "/*?/guest/orders"
|
|
},
|
|
"items": [
|
|
{
|
|
"id": "guest",
|
|
"label": "$t:editor.state.guest_order_form_guest",
|
|
"default": true,
|
|
"comment": "비회원 상태 — currentUser 를 null 로 덮어 content[1] 조회 폼을 캔버스에 노출한다.",
|
|
"initialState": {
|
|
"global": {
|
|
"currentUser": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "member",
|
|
"label": "$t:editor.state.guest_order_form_member",
|
|
"comment": "회원 로그인 상태 — currentUser.uuid 를 명시 시드해 content[0] 마이페이지 리다이렉트 안내 분기를 활성화한다. sampleGlobal 은 코어 keyspace(currentUser)를 시드하지 않으므로(코어 우선) 빈 패치로는 guest(null) 와 다른 결과를 만들지 못한다 — 로그인 상태를 명시 패치해야 양분 분기가 회원 쪽으로 전환되고 캔버스가 실제로 달라진다.",
|
|
"initialState": {
|
|
"global": {
|
|
"currentUser": {
|
|
"uuid": "editor-sample-member-uuid"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"comment": "admin 마일리지 거래내역 목록 — transactions 데이터소스 목록 유무. 마일리지 시스템.",
|
|
"scope": {
|
|
"kind": "route",
|
|
"match": "*/admin/ecommerce/mileage-transactions"
|
|
},
|
|
"items": [
|
|
{
|
|
"id": "with_data",
|
|
"label": "$t:editor.state.with_data",
|
|
"default": true
|
|
},
|
|
{
|
|
"id": "empty_data",
|
|
"label": "$t:editor.state.empty_data",
|
|
"sampleDataOverrides": {
|
|
"byEndpointPattern": {
|
|
"/api/modules/sirsoft-ecommerce/admin/mileage-transactions*": {
|
|
"data": {
|
|
"data": [],
|
|
"meta": {
|
|
"total": 0,
|
|
"per_page": 20,
|
|
"current_page": 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"comment": "admin 쿠폰 목록 — coupons 데이터소스 목록 유무. 쿠폰 관리.",
|
|
"scope": {
|
|
"kind": "route",
|
|
"match": "*/admin/ecommerce/promotion-coupons"
|
|
},
|
|
"items": [
|
|
{
|
|
"id": "with_data",
|
|
"label": "$t:editor.state.with_data",
|
|
"default": true
|
|
},
|
|
{
|
|
"id": "empty_data",
|
|
"label": "$t:editor.state.empty_data",
|
|
"sampleDataOverrides": {
|
|
"byEndpointPattern": {
|
|
"/api/modules/sirsoft-ecommerce/admin/promotion-coupons*": {
|
|
"data": {
|
|
"data": [],
|
|
"meta": {
|
|
"total": 0,
|
|
"per_page": 20,
|
|
"current_page": 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"comment": "admin 쿠폰 생성 — promotion-coupon-create 라우트(route.id 없음 = 신규 작성 폼). 쿠폰 관리. 검증 오류는 _local.errors.",
|
|
"scope": {
|
|
"kind": "route",
|
|
"match": "*/admin/ecommerce/promotion-coupon-create"
|
|
},
|
|
"items": [
|
|
{
|
|
"id": "create_mode",
|
|
"label": "$t:editor.state.create_mode",
|
|
"default": true,
|
|
"initialState": {
|
|
"route": {
|
|
"id": null
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"id": "validation_failed",
|
|
"label": "$t:editor.state.validation_failed",
|
|
"formErrors": {
|
|
"_local.errors.name": [
|
|
"필수 입력 항목입니다"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"comment": "admin 주문 목록 — orders 데이터소스 목록 유무.",
|
|
"scope": {
|
|
"kind": "route",
|
|
"match": "*/admin/ecommerce/orders"
|
|
},
|
|
"items": [
|
|
{
|
|
"id": "with_data",
|
|
"label": "$t:editor.state.with_data",
|
|
"default": true
|
|
},
|
|
{
|
|
"id": "empty_data",
|
|
"label": "$t:editor.state.empty_data",
|
|
"sampleDataOverrides": {
|
|
"byEndpointPattern": {
|
|
"/api/modules/sirsoft-ecommerce/admin/orders*": {
|
|
"data": {
|
|
"data": [],
|
|
"meta": {
|
|
"total": 0,
|
|
"per_page": 20,
|
|
"current_page": 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"comment": "admin 주문 상세 — order 데이터소스 + 부분취소 분기(본문 if order.data.is_partially_cancelled). 주문 항목상태 전이.",
|
|
"scope": {
|
|
"kind": "route",
|
|
"match": "*/admin/ecommerce/orders/:orderNumber"
|
|
},
|
|
"items": [
|
|
{
|
|
"id": "default",
|
|
"label": "$t:editor.state.order_detail_default",
|
|
"default": true
|
|
},
|
|
{
|
|
"id": "partially_cancelled",
|
|
"label": "$t:editor.state.order_detail_partially_cancelled",
|
|
"comment": "부분취소 상태 — order.data.is_partially_cancelled=true 로 취소 표시 분기를 캔버스에 노출.",
|
|
"sampleDataOverrides": {
|
|
"byEndpointPattern": {
|
|
"/api/modules/sirsoft-ecommerce/admin/orders/*": {
|
|
"data": {
|
|
"is_partially_cancelled": true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|