Files
Gnuboard7/modules/_bundled/sirsoft-ecommerce/editor-spec.json
T
HeuJung 3cb598ce5f fix(core,extensions): 편집기 스펙 한 줄 요약을 사람 메모 대신 실측에서 생성
직전 커밋 산출물에 「Phase 4/5 에서 추가」 문구가 박힌 것을 가 지적했다.
그 문자열은 이번 브랜치에서 쓴 것이 아니라 editor-spec.json 의 description 에
원래 있던 값이고, 새로 만든 생성기가 그것을 문서 앞머리로 옮겨 실으면서
승격된 것이다.

그 필드는 코드가 아니라 사람이 쓴 메모라 실측과 대조되지 않는다. 전수 조사에서
12건 중 5건이 오염돼 있었고, 그중 둘은 바로 아래 실측 표와 정반대를 말했다 —
「controls 는 나중에 추가」라는데 표는 303개가 있다고 한다. 오류도 경고도 나지
않는다: 문서가 자기 자신을 반박한 채로 읽힐 뿐이다.

한 줄 요약은 남기되 실측에서 만든다. 두 표에 흩어진 값을 한 줄로 압축하므로
읽는 쪽이 잃는 것이 없고, 코드에서 파생되므로 어긋날 자리가 사라진다. 도메인
의미는 바로 아래 사람 서술 칸이 이미 담당한다.

스펙 파일의 오염된 메모 5건도 정리했다. 그 파일을 여는 개발자는 문서와 별개로
그 값을 읽고, 확장과 함께 공개 배포된다. 재발 방지는 규정에 명시하고 검사는
두지 않았다 — 어휘를 정규식으로 고정하면 정당한 서술까지 걸리고 목록 밖 표현은
통과해, 「검사했으나 통과」와 「보지 않음」이 구분되지 않는다.
2026-09-01 12:56:16 +09:00

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
}
}
}
}
}
]
}
]
}
}