Appearance
Catalog API
토스 POS의 [상품] - [상품 · 할인] 내 [상품], [옵션], [카테고리] 메뉴를 통해 매장의 카탈로그를 관리할 수 있어요. Catalog API를 통해 해당 정보를 조회할 수 있으며, 매장의 메뉴 구성과 상품 정보를 제공해요.
Types
상품 (CatalogItem)
매장에 등록된 상품이에요. 소비자가 주문할 때 하나 또는 여러 상품을 주문에 포함하게 돼요.
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
id | String | ✅ | 상품 ID | "42" |
merchantId | Long | ✅ | 매장 ID | 42 |
category | CatalogCategory | ✅ | 카테고리 상품은 반드시 하나의 카테고리에 속해요. | |
title | String | ✅ | 상품명 | "아메리카노" |
code | String | 상품코드 | "" | |
state | CatalogItemState | ✅ | 상품 판매 상태 상품이 품절 상태로 표기되어 있더라도, 그 상품의 주문이 원천적으로 불가능하지는 않다는 점에 유의해야 해요. 품절 상태는 메뉴 전시 등 시각적인 표기를 위한 정보로 이해하는 것이 적절해요. | "ON_SALE" |
enabled | Boolean | ✅ | 상품 활성화 및 노출 여부 | true |
enableSchedule | CatalogSchedule | ALPHA 상품 활성화 및 노출 시간·일자 설정enabled가 true인 경우, 노출 시간·일자가 설정된 경우 해당 시간·일자에만 상품이 노출됩니다. | ||
order | Int | ✅ | 카테고리 내 정렬 순서 | 1 |
description | String | ✅ | 상품 설명 | "" |
imageUrl | String | 상품 이미지 URL | "" | |
labels | String[] | 상품 라벨 목록 | ["신규"] | |
price | CatalogItemPrice | ✅ | 가격 | |
priceVariations | CatalogItemPriceVariation[] | ALPHA 주문 맥락에 따라 동적으로 변경되는 가격 정보기본적으로 price의 가격이 적용되나, 특정 상황을 만족하면 priceVariation의 가격이 적용될 수 있습니다. | ||
diningOptions | CatalogDiningOption[] | ✅ | ALPHA 상품을 제공하는 식사 옵션 목록 | ["HERE", "TOGO"] |
options | CatalogOption[] | 옵션 목록 | ||
attributes | [String: Any] | 기타 속성 | {"key": "value"} | |
createdAt | timestamp | ✅ | 생성 시각 | "2025-09-01T00:00:00Z" |
updatedAt | timestamp | ✅ | 수정 시각 | "2025-09-01T00:00:00Z" |
상품 가격 (CatalogItemPrice)
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
title | String | ✅ | 가격명 | "기본" |
priceType | CatalogItemPriceType | ✅ | 가격 종류 | "FIXED" |
priceUnit | Long | ✅ | 가격 단위 | 1 |
priceValue | Long | ✅ | 가격 | 3000 |
barcode | String | 바코드 | "" |
상품 가격 종류 (CatalogItemPriceType)
| Value | Description |
|---|---|
"FIXED" | 정가 |
"VARIABLE" | 시가 |
"UNIT" | 단위가격 |
"UNDEFINED" |
ALPHA 상품 가격 변동 (CatalogItemPriceVariation)
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
type | String | ✅ | 가격 변동 유형
| "DINING_OPTION" |
value | String | ✅ | 가격 변동 적용 조건 값 | "HERE" |
priceValue | Long | ✅ | 변동 가격 | 3000 |
상품 판매 상태 (CatalogItemState)
| Value | Description |
|---|---|
"ON_SALE" | 판매 중 |
"SOLD_OUT" | 품절 |
"UNDEFINED" |
카테고리 (CatalogCategory)
여러 상품을 그룹화하는 카테고리예요. 토스 POS, 또는 고객에게 상품이 전시되는 키오스크 등의 채널에서 카테고리를 통해 상품을 탐색할 수 있어요.
매장의 상품은 반드시 하나의 카테고리에 속해요.
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
id | String | ✅ | 카테고리 ID | "42" |
merchantId | Long | ✅ | 매장 ID | 42 |
title | String | ✅ | 카테고리명 | "커피" |
code | String | 카테고리 코드 | "" | |
enabled | Boolean | ✅ | 카테고리 활성화 및 노출 여부 | true |
order | Int | ✅ | 정렬 순서 | 1 |
createdAt | timestamp | ✅ | 생성 시각 | "2025-09-01T00:00:00Z" |
updatedAt | timestamp | ✅ | 수정 시각 | "2025-09-01T00:00:00Z" |
옵션 (CatalogOption)
상품에 추가할 수 있는 옵션이에요. 예를 들어 '아메리카노' 상품에 '온도' 옵션을 두고, 선택지로 'ICE', 'HOT'을 제공할 수 있어요. 상품과 옵션은 서로 다대다 관계로, 한 상품에 여러 가지 옵션을 제공하는 것도, 동일한 옵션을 여러 상품에 제공하는 것도 가능해요.
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
id | String | ✅ | 옵션 ID | "42" |
merchantId | Long | ✅ | 매장 ID | 42 |
title | String | ✅ | 옵션명 | "온도" |
code | String | 옵션 코드 | "" | |
enabled | Boolean | ✅ | 옵션 활성화 및 노출 여부 | true |
order | Int | ✅ | 정렬 순서 | 1 |
choices | CatalogOptionChoice[] | ✅ | 선택지 목록 | |
required | Boolean | ✅ | 필수 선택 여부 | true |
minChoices | Int | ✅ | 고를 수 있는 최소 선택지 개수 | 1 |
maxChoices | Int | ✅ | 고를 수 있는 최대 선택지 개수 | 3 |
createdAt | timestamp | ✅ | 생성 시각 | "2025-09-01T00:00:00Z" |
updatedAt | timestamp | ✅ | 수정 시각 | "2025-09-01T00:00:00Z" |
옵션 선택지 (CatalogOptionChoice)
옵션의 선택지예요. 선택지별로 추가 가격을 부여할 수 있어요.
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
id | String | ✅ | 옵션 ID | "42" |
merchantId | Long | ✅ | 매장 ID | 42 |
optionId | String | ✅ | 선택지가 속한 옵션 ID | "42" |
title | String | ✅ | 선택지명 | "ICE" |
code | String | 선택지 코드 | "" | |
state | CatalogOptionChoiceState | ✅ | 선택지 판매 상태 선택지가 품절 상태로 표기되어 있더라도, 그 선택지의 주문이 원천적으로 불가능하지는 않다는 점에 유의해야 해요. 품절 상태는 메뉴 전시 등 시각적인 표기를 위한 정보로 이해하는 것이 적절해요. | "ON_SALE" |
enabled | Boolean | ✅ | 선택지 활성화 및 노출 여부 | true |
order | Int | ✅ | 옵션 내 정렬 순서 | 1 |
priceValue | Long | ✅ | 가격 | 500 |
imageUrl | String | 선택지 이미지 URL | "" | |
quantityEnabled | Boolean | ✅ | 수량 선택 가능 여부 | true |
minQuantity | Int | ✅ | 선택 가능 최소 수량 | 1 |
maxQuantity | Int | ✅ | 선택 가능 최대 수량 | 999 |
createdAt | timestamp | ✅ | 생성 시각 | "2025-09-01T00:00:00Z" |
updatedAt | timestamp | ✅ | 수정 시각 | "2025-09-01T00:00:00Z" |
옵션 선택지 판매 상태 (CatalogOptionChoiceState)
| Value | Description |
|---|---|
"ON_SALE" | 판매 중 |
"SOLD_OUT" | 품절 |
"UNDEFINED" |
ALPHA 노출 시간·일자 설정 (CatalogSchedule)
카탈로그가 노출되는 시간·일자를 설정할 수 있습니다. 설정되어 있지 않은 필드는 제약 없음(예: timeRange 미설정 시 24시간 노출)을 의미합니다.
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
daysOfWeek | String[] | 노출 요일 설정 ("MONDAY" ~ "SUNDAY") | ["FRIDAY", "SATURDAY"] | |
dateRange | { "start": LocalDate, "end": LocalDate? } | 노출 기간 설정 (inclusive) 종료일 미설정 시 무제한 노출 | { "start": "2025-09-01", "end": "2025-09-30" } | |
timeRange | { "start": LocalTime, "end": LocalTime } | 노출 시간 설정 (inclusive) | { "start": "10:00:00", "end": "17:59:59" } |
ALPHA 식사 옵션 (CatalogDiningOption)
상품·옵션 등을 제공하는 식사 옵션을 나타냅니다.
| Value | Description |
|---|---|
"HERE" | 매장 식사 |
"TOGO" | 포장 |
"UNDEFINED" |
Methods
상품 단건 조회
| Property | Value |
|---|---|
| Method | GET |
| Path | /api-public/openapi/v1/merchants/{merchantId}/catalog/items/{itemId} |
| Response Type | CatalogItem |
| Description | 매장의 상품 하나를 조회해요. |
요청 파라미터
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
merchantId | Path | Long | ✅ | 매장 ID |
itemId | Path | String | ✅ | 상품 ID |
상품 복수건 조회
| Property | Value |
|---|---|
| Method | GET |
| Path | /api-public/openapi/v1/merchants/{merchantId}/catalog/items/by-ids |
| Response Type | CatalogItem[] |
| Description | ID를 통해 매장의 상품 여러 건을 조회해요. 최대 25건까지 조회 가능해요. |
요청 파라미터
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
merchantId | Path | Long | ✅ | 매장 ID |
ids | Query | String[] | ✅ | 상품 ID 목록 |
상품 목록 조회
| Property | Value |
|---|---|
| Method | GET |
| Path | /api-public/openapi/v1/merchants/{merchantId}/catalog/items |
| Response Type | CatalogItem[] |
| Description | 매장의 상품 목록을 상품 ID 순으로 조회해요. |
요청 파라미터
| Parameter | Location | Type | Required | Default | Description |
|---|---|---|---|---|---|
merchantId | Path | Long | ✅ | - | 매장 ID |
page | Query | Int | 1 | 조회할 페이지 | |
size | Query | Int | 100 | 페이지 크기 |
상품 검색
| Property | Value |
|---|---|
| Method | GET |
| Path | /api-public/openapi/v1/merchants/{merchantId}/catalog/items/search |
| Response Type | CatalogItem[] |
| Description | 조건에 맞는 상품을 검색해요. |
요청 파라미터
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
merchantId | Path | Long | ✅ | 매장 ID |
categoryIds | Query | String[] | 카테고리 ID 목록 이 파라미터를 지정하면 검색 결과는 해당 카테고리에 속한 상품만 반환돼요. | |
page | Query | Int | 1 | |
size | Query | Int | 100 |
카테고리 단건 조회
| Property | Value |
|---|---|
| Method | GET |
| Path | /api-public/openapi/v1/merchants/{merchantId}/catalog/categories/{categoryId} |
| Response Type | CatalogCategory |
| Description | 매장의 카테고리 하나를 조회해요. |
요청 파라미터
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
merchantId | Path | Long | ✅ | 매장 ID |
categoryId | Path | String | ✅ | 카테고리 ID |
카테고리 복수건 조회
| Property | Value |
|---|---|
| Method | GET |
| Path | /api-public/openapi/v1/merchants/{merchantId}/catalog/categories/by-ids |
| Response Type | CatalogCategory[] |
| Description | ID를 통해 매장의 카테고리 여러 건을 조회해요. 최대 25건까지 조회 가능해요. |
요청 파라미터
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
merchantId | Path | Long | ✅ | 매장 ID |
ids | Query | String[] | ✅ | 카테고리 ID 목록 |
카테고리 목록 조회
| Property | Value |
|---|---|
| Method | GET |
| Path | /api-public/openapi/v1/merchants/{merchantId}/catalog/categories |
| Response Type | CatalogCategory[] |
| Description | 매장의 카테고리 목록을 조회해요. |
요청 파라미터
| Parameter | Location | Type | Required | Default | Description |
|---|---|---|---|---|---|
merchantId | Path | Long | ✅ | - | 매장 ID |
page | Query | Int | 1 | 조회할 페이지 | |
size | Query | Int | 100 | 페이지 크기 |
옵션 단건 조회
| Property | Value |
|---|---|
| Method | GET |
| Path | /api-public/openapi/v1/merchants/{merchantId}/catalog/options/{optionId} |
| Response Type | CatalogOption |
| Description | 매장의 옵션 하나를 조회해요. |
요청 파라미터
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
merchantId | Path | Long | ✅ | 매장 ID |
optionId | Path | String | ✅ | 옵션 ID |
옵션 복수건 조회
| Property | Value |
|---|---|
| Method | GET |
| Path | /api-public/openapi/v1/merchants/{merchantId}/catalog/options/by-ids |
| Response Type | CatalogOption[] |
| Description | ID를 통해 매장의 옵션 여러 건을 조회해요. 최대 25건까지 조회 가능해요. |
요청 파라미터
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
merchantId | Path | Long | ✅ | 매장 ID |
ids | Query | String[] | ✅ | 옵션 ID 목록 |
옵션 목록 조회
| Property | Value |
|---|---|
| Method | GET |
| Path | /api-public/openapi/v1/merchants/{merchantId}/catalog/options |
| Response Type | CatalogOption[] |
| Description | 매장의 옵션 목록을 조회해요. |
요청 파라미터
| Parameter | Location | Type | Required | Default | Description |
|---|---|---|---|---|---|
merchantId | Path | Long | ✅ | - | 매장 ID |
page | Query | Int | 1 | 조회할 페이지 | |
size | Query | Int | 100 | 페이지 크기 |
Events
상품 생성됨 (catalog.item.created.v1)
| Property | Value |
|---|---|
| Event Type | catalog.item.created.v1 |
| Description | 상품이 생성되었어요. |
이벤트 Payload
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
item | CatalogItem | ✅ | 생성된 상품 정보 |
이벤트 Body 예시
json
{
"id": "000000000000000000000000",
"type": "catalog.item.created.v1",
"createdAt": "2026-01-01T00:00:00.000Z",
"merchantId": 42,
"app": "my-awesome-app",
"data": {
"item": {
"id": "42",
"merchantId": 42,
"category": {
"id": "42",
"merchantId": 42,
"title": "커피",
"code": "CATEGORY_CODE",
"enabled": true,
"order": 1,
"createdAt": "2026-01-01T00:00:00Z",
"updatedAt": "2026-01-01T00:00:00Z"
},
"title": "아메리카노",
"code": "ITEM_CODE",
"state": "ON_SALE",
"enabled": true,
"order": 1,
"description": "아메리카노 설명",
"imageUrl": "https://example.com/image.png",
"labels": ["신규"],
"price": {
"title": "기본",
"priceType": "FIXED",
"priceUnit": 1,
"priceValue": 3000,
"barcode": "1234567890"
},
"diningOptions": ["HERE", "TOGO"],
"options": [
{
"id": "42",
"merchantId": 42,
"title": "온도",
"code": "OPTION_CODE",
"enabled": true,
"order": 1,
"choices": [
{
"id": "42",
"merchantId": 42,
"optionId": "42",
"title": "ICE",
"code": "CHOICE_CODE",
"state": "ON_SALE",
"enabled": true,
"order": 1,
"priceValue": 500,
"quantityEnabled": false,
"minQuantity": 0,
"maxQuantity": 1,
"createdAt": "2026-01-01T00:00:00Z",
"updatedAt": "2026-01-01T00:00:00Z"
}
],
"required": true,
"minChoices": 1,
"maxChoices": 1,
"createdAt": "2026-01-01T00:00:00Z",
"updatedAt": "2026-01-01T00:00:00Z"
}
],
"createdAt": "2026-01-01T00:00:00Z",
"updatedAt": "2026-01-01T00:00:00Z"
}
}
}상품 수정됨 (catalog.item.updated.v1)
| Property | Value |
|---|---|
| Event Type | catalog.item.updated.v1 |
| Description | 상품이 수정되었어요. |
이벤트 Payload
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
item | CatalogItem | ✅ | 수정된 상품 정보 |
이벤트 Body 예시
json
{
"id": "000000000000000000000000",
"type": "catalog.item.updated.v1",
"createdAt": "2026-01-01T00:00:00.000Z",
"merchantId": 42,
"app": "my-awesome-app",
"data": {
"item": {
"id": "42",
"merchantId": 42,
"category": {
"id": "42",
"merchantId": 42,
"title": "커피",
"code": "CATEGORY_CODE",
"enabled": true,
"order": 1,
"createdAt": "2026-01-01T00:00:00Z",
"updatedAt": "2026-01-01T00:00:00Z"
},
"title": "아메리카노",
"code": "ITEM_CODE",
"state": "ON_SALE",
"enabled": true,
"order": 1,
"description": "아메리카노 설명",
"imageUrl": "https://example.com/image.png",
"labels": ["신규"],
"price": {
"title": "기본",
"priceType": "FIXED",
"priceUnit": 1,
"priceValue": 3000,
"barcode": "1234567890"
},
"diningOptions": ["HERE", "TOGO"],
"options": [
{
"id": "42",
"merchantId": 42,
"title": "온도",
"code": "OPTION_CODE",
"enabled": true,
"order": 1,
"choices": [
{
"id": "42",
"merchantId": 42,
"optionId": "42",
"title": "ICE",
"code": "CHOICE_CODE",
"state": "ON_SALE",
"enabled": true,
"order": 1,
"priceValue": 500,
"quantityEnabled": false,
"minQuantity": 0,
"maxQuantity": 1,
"createdAt": "2026-01-01T00:00:00Z",
"updatedAt": "2026-01-01T00:00:00Z"
}
],
"required": true,
"minChoices": 1,
"maxChoices": 1,
"createdAt": "2026-01-01T00:00:00Z",
"updatedAt": "2026-01-01T00:00:00Z"
}
],
"createdAt": "2026-01-01T00:00:00Z",
"updatedAt": "2026-01-01T00:00:00Z"
}
}
}상품 삭제됨 (catalog.item.deleted.v1)
| Property | Value |
|---|---|
| Event Type | catalog.item.deleted.v1 |
| Description | 상품이 삭제되었어요. |
이벤트 Payload
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
itemId | String | ✅ | 삭제된 상품 ID | "42" |
이벤트 Body 예시
json
{
"id": "000000000000000000000000",
"type": "catalog.item.deleted.v1",
"createdAt": "2026-01-01T00:00:00.000Z",
"merchantId": 42,
"app": "my-awesome-app",
"data": {
"itemId": "42"
}
}카테고리 생성됨 (catalog.category.created.v1)
| Property | Value |
|---|---|
| Event Type | catalog.category.created.v1 |
| Description | 카테고리가 생성되었어요. |
이벤트 Payload
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
category | CatalogCategory | ✅ | 생성된 카테고리 정보 |
이벤트 Body 예시
json
{
"id": "000000000000000000000000",
"type": "catalog.category.created.v1",
"createdAt": "2026-01-01T00:00:00.000Z",
"merchantId": 42,
"app": "my-awesome-app",
"data": {
"category": {
"id": "42",
"merchantId": 42,
"title": "커피",
"code": "CATEGORY_CODE",
"enabled": true,
"order": 1,
"createdAt": "2026-01-01T00:00:00Z",
"updatedAt": "2026-01-01T00:00:00Z"
}
}
}카테고리 수정됨 (catalog.category.updated.v1)
| Property | Value |
|---|---|
| Event Type | catalog.category.updated.v1 |
| Description | 카테고리가 수정되었어요. |
이벤트 Payload
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
category | CatalogCategory | ✅ | 수정된 카테고리 정보 |
이벤트 Body 예시
json
{
"id": "000000000000000000000000",
"type": "catalog.category.updated.v1",
"createdAt": "2026-01-01T00:00:00.000Z",
"merchantId": 42,
"app": "my-awesome-app",
"data": {
"category": {
"id": "42",
"merchantId": 42,
"title": "커피",
"code": "CATEGORY_CODE",
"enabled": true,
"order": 1,
"createdAt": "2026-01-01T00:00:00Z",
"updatedAt": "2026-01-01T00:00:00Z"
}
}
}카테고리 삭제됨 (catalog.category.deleted.v1)
| Property | Value |
|---|---|
| Event Type | catalog.category.deleted.v1 |
| Description | 카테고리가 삭제되었어요. |
이벤트 Payload
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
categoryId | String | ✅ | 삭제된 카테고리 ID | "42" |
이벤트 Body 예시
json
{
"id": "000000000000000000000000",
"type": "catalog.category.deleted.v1",
"createdAt": "2026-01-01T00:00:00.000Z",
"merchantId": 42,
"app": "my-awesome-app",
"data": {
"categoryId": "42"
}
}옵션 생성됨 (catalog.option.created.v1)
| Property | Value |
|---|---|
| Event Type | catalog.option.created.v1 |
| Description | 옵션이 생성되었어요. |
이벤트 Payload
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
option | CatalogOption | ✅ | 생성된 옵션 정보 |
이벤트 Body 예시
json
{
"id": "000000000000000000000000",
"type": "catalog.option.created.v1",
"createdAt": "2026-01-01T00:00:00.000Z",
"merchantId": 42,
"app": "my-awesome-app",
"data": {
"option": {
"id": "42",
"merchantId": 42,
"title": "온도",
"code": "OPTION_CODE",
"enabled": true,
"order": 1,
"choices": [
{
"id": "42",
"merchantId": 42,
"optionId": "42",
"title": "ICE",
"code": "CHOICE_CODE",
"state": "ON_SALE",
"enabled": true,
"order": 1,
"priceValue": 500,
"quantityEnabled": false,
"minQuantity": 0,
"maxQuantity": 1,
"createdAt": "2026-01-01T00:00:00Z",
"updatedAt": "2026-01-01T00:00:00Z"
}
],
"required": true,
"minChoices": 1,
"maxChoices": 1,
"createdAt": "2026-01-01T00:00:00Z",
"updatedAt": "2026-01-01T00:00:00Z"
}
}
}옵션 수정됨 (catalog.option.updated.v1)
| Property | Value |
|---|---|
| Event Type | catalog.option.updated.v1 |
| Description | 옵션이 수정되었어요. 옵션에 속한 선택지가 변경되거나 추가/삭제되었을 때도 이 이벤트가 발생해요. |
이벤트 Payload
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
option | CatalogOption | ✅ | 수정된 옵션 정보 |
이벤트 Body 예시
json
{
"id": "000000000000000000000000",
"type": "catalog.option.updated.v1",
"createdAt": "2026-01-01T00:00:00.000Z",
"merchantId": 42,
"app": "my-awesome-app",
"data": {
"option": {
"id": "42",
"merchantId": 42,
"title": "온도",
"code": "OPTION_CODE",
"enabled": true,
"order": 1,
"choices": [
{
"id": "42",
"merchantId": 42,
"optionId": "42",
"title": "ICE",
"code": "CHOICE_CODE",
"state": "ON_SALE",
"enabled": true,
"order": 1,
"priceValue": 500,
"quantityEnabled": false,
"minQuantity": 0,
"maxQuantity": 1,
"createdAt": "2026-01-01T00:00:00Z",
"updatedAt": "2026-01-01T00:00:00Z"
}
],
"required": true,
"minChoices": 1,
"maxChoices": 1,
"createdAt": "2026-01-01T00:00:00Z",
"updatedAt": "2026-01-01T00:00:00Z"
}
}
}옵션 삭제됨 (catalog.option.deleted.v1)
| Property | Value |
|---|---|
| Event Type | catalog.option.deleted.v1 |
| Description | 옵션이 삭제되었어요. |
이벤트 Payload
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
optionId | String | ✅ | 삭제된 옵션 ID | "42" |
이벤트 Body 예시
json
{
"id": "000000000000000000000000",
"type": "catalog.option.deleted.v1",
"createdAt": "2026-01-01T00:00:00.000Z",
"merchantId": 42,
"app": "my-awesome-app",
"data": {
"optionId": "42"
}
}