Skill: apmzoom/apmzoom-gds (version 1.0.0)

--- name: APM 상품 관리 API description: "APM 플랫폼의 상품 관리 API 모음. 관리자용 상품 추가/삭제/수정/가격·재고·할인 관리 17개 + 사용자용 상품 조회/검색/카테고리/추천/유사 상품/이미지 검색 16개, 총 33개 엔드포인트. 모든 엔드포인트는 먼저 ids_*_login으로 access_token 획득 후 authcode 헤더(HH + token)로 호출. last_update_time 커서 페이지네이션 사용. 중국어/한국어 키워드 검색 지원." version: 1.0.0 metadata: openclaw: requires: env: - APM_USER_TOKEN primaryEnv: APM_USER_TOKEN homepage: https://github.com/apmzoom-ai/apm-skills --- # APM 상품 관리 API APM 플랫폼의 상품 관리 API 모음. 관리자용 상품 추가/삭제/수정/가격·재고·할인 관리 17개 + 사용자용 상품 조회/검색/카테고리/추천/유사 상품/이미지 검색 16개, 총 33개 엔드포인트. 모든 엔드포인트는 먼저 ids_*_login으로 access_token 획득 후 authcode 헤더(HH + token)로 호출. last_update_time 커서 페이지네이션 사용. 중국어/한국어 키워드 검색 지원. ## 공통 규약 - **Base URL**: `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` - **요청 헤더**: `v=7.0.1`, `p=1`, `t=<unix초>`, `lang=zh-cn` - **인증 헤더**: `authcode: "HH " + access_token` (로그인 계열 제외) - **서명**: `sign = MD5(<params> + <salt>).toUpperCase()` — 엔드포인트별 salt는 각 문서 참조 - **성공 코드**: `code=100`, 결과는 `result` 필드 - **페이지네이션**: `last_update_time` 커서 방식, `page_size=20` ## 엔드포인트 목록 (33개) - [`gds_m_addgoods`](gds_m_addgoods.md) — **상품 정보 추가[판매자]** · `POST /gds/app/m_addgoods` - [`gds_m_delgoods`](gds_m_delgoods.md) — **상품 정보 삭제[판매자]** · `GET /gds/app/m_delgoods` - [`gds_m_editgoods`](gds_m_editgoods.md) — **상품 정보 수정[판매자]** · `POST /gds/app/m_editgoods` - [`gds_m_editgoodsdiscount`](gds_m_editgoodsdiscount.md) — **상품 할인 수정[판매자]** · `POST /gds/app/m_editgoodsdiscount` - [`gds_m_editgoodsdiscountprice`](gds_m_editgoodsdiscountprice.md) — **상품 할인 가격 수정[판매자]** · `POST /gds/app/m_editgoodsdiscountprice` - [`gds_m_editgoodsprice`](gds_m_editgoodsprice.md) — **상품 가격 수정[판매자]** · `POST /gds/app/m_editgoodsprice` - [`gds_m_editgoodssell`](gds_m_editgoodssell.md) — **상품 진열 상태 수정[판매자]** · `POST /gds/app/m_editgoodssell` - [`gds_m_editgoodsskuprice`](gds_m_editgoodsskuprice.md) — **상품 규격 재고 가격 수정[판매자]** · `POST /gds/app/m_editgoodsskuprice` - [`gds_m_editgoodsstock`](gds_m_editgoodsstock.md) — **상품 재고 수정[판매자]** · `POST /gds/app/m_editgoodsstock` - [[REDACTED_SECRET]](gds_m_goodsclassattributealllist.md) — **상품 카테고리 속성 목록 조회[판매자]** · `GET /gds/app/m_goodsclassattributealllist` - [`gds_m_goodsclasslist`](gds_m_goodsclasslist.md) — **상품 카테고리 목록 조회[판매자]** · `GET /gds/app/m_goodsclasslist` - [`gds_m_goodsclassspecalllist`](gds_m_goodsclassspecalllist.md) — **상품 카테고리 규격 목록 조회[판매자]** · `GET /gds/app/m_goodsclassspecalllist` - [`gds_m_goodseditinfo`](gds_m_goodseditinfo.md) — **상품 편집 상세 정보 조회[판매자]** · `GET /gds/app/m_goodseditinfo` - [`gds_m_goodseditskuinfo`](gds_m_goodseditskuinfo.md) — **상품 규격 정보 조회[판매자]** · `GET /gds/app/m_goodseditskuinfo` - [`gds_m_goodsmakeaddresslist`](gds_m_goodsmakeaddresslist.md) — **원산지 목록 조회[판매자]** · `GET /gds/app/m_goodsmakeaddresslist` - [`gds_m_goodsskuiscandel`](gds_m_goodsskuiscandel.md) — **상품 SKU 삭제 가능 여부 조회[판매자]** · `GET /gds/app/m_goodsskuiscandel` - [`gds_m_storegoodslist`](gds_m_storegoodslist.md) — **판매자 상품 목록 조회** · `GET /gds/app/m_storegoodslist` - [`gds_u_addgoods`](gds_u_addgoods.md) — **상품 정보 추가[셀프 추가 결제]** · `POST /gds/app/u_addgoods` - [`gds_u_categorygoodslist`](gds_u_categorygoodslist.md) — **상품 카테고리별 상품 목록 조회[사용자]** · `GET /gds/app/u_categorygoodslist` - [`gds_u_complaintgoodsprice`](gds_u_complaintgoodsprice.md) — **상품 가격 신고[사용자]** · `POST /gds/app/u_complaintgoodsprice` - [`gds_u_dategoodslist`](gds_u_dategoodslist.md) — **일자별 신상품 목록 조회[사용자]** · `GET /gds/app/u_dategoodslist` - [`gds_u_datelist`](gds_u_datelist.md) — **일자별 신상품 날짜 목록 조회[사용자]** · `GET /gds/app/u_datelist` - [`gds_u_delgoods`](gds_u_delgoods.md) — **상품 정보 삭제[사용자]** · `POST /gds/app/u_delgoods` - [`gds_u_goods`](gds_u_goods.md) — **상품 상세 조회[사용자]** · `GET /gds/app/u_goods` - [`gds_u_goodsclasslist`](gds_u_goodsclasslist.md) — **상품 카테고리 목록 조회[사용자]** · `GET /gds/app/u_goodsclasslist` - [`gds_u_goodsclassspecalllist`](gds_u_goodsclassspecalllist.md) — **상품 카테고리 규격 목록 조회[사용자]** · `GET /gds/app/u_goodsclassspecalllist` - [`gds_u_goodsskulist`](gds_u_goodsskulist.md) — **상품 규격 정보 조회[사용자]** · `GET /gds/app/u_goodsskulist` - [`gds_u_imgsearchgoodslist`](gds_u_imgsearchgoodslist.md) — **이미지 상품 검색 목록[사용자]** · `POST /gds/app/u_imgsearchgoodslist` - [`gds_u_recommendgoodslist`](gds_u_recommendgoodslist.md) — **상품 목록·범용[사용자]** · `GET /gds/app/u_recommendgoodslist` - [`gds_u_searchgoodslist`](gds_u_searchgoodslist.md) — **상품 검색 목록 조회[사용자]** · `GET /gds/app/u_searchgoodslist` - [`gds_u_selfgoodslist`](gds_u_selfgoodslist.md) — **셀프 추가 결제 상품 목록** · `GET /gds/app/u_selfgoodslist` - [`gds_u_similargoodslist`](gds_u_similargoodslist.md) — **유사 상품 목록 조회[사용자]** · `GET /gds/app/u_similargoodslist` - [`gds_u_storegoodslist`](gds_u_storegoodslist.md) — **매장 상품 목록 조회[사용자]** · `GET /gds/app/u_storegoodslist` ## 사용법 1. 필요한 엔드포인트 문서를 확인 (파일명 = 엔드포인트 이름) 2. `ids_*_login_*` 중 하나로 `access_token` 획득 (APM_USER_TOKEN 환경변수에 저장) 3. 요청 헤더에 `authcode: "HH " + $APM_USER_TOKEN` 추가 4. 해당 문서의 서명 규칙에 따라 `sign` 계산 후 호출 원본 문서: https://github.com/apmzoom-ai/apm-skills

path: gds_m_addgoods.md
content: ---
name: gds_m_addgoods
description: "판매자가 상품을 신규 등록합니다.
【사전 조건】
- 판매자 access_token 필요 (m_login_account 로그인을 통해 획득)
- goods_class_cascade_id 필요 (m_goodsclasslist에서 카테고리 트리를 가져와 1-6-7 형식으로 조합)
- make_address_id 필요 (m_goodsmakeaddresslist에서 원산지 ID 획득)
- 최소 1장의 상품 이미지 필요 (먼저 이미지 업로드 인터페이스를 통해 URL 획득)
【호출 흐름】
1. authcode: \"HH \" + 판매자 access_token (반드시 \"HH \" 접두사 필요)
2. sign: MD5('as0jusem$asldk').toUpperCase()
3. POST JSON body
【요청 본문 주요 필드】
- goods_class_cascade_id: \"1-6-7\" 형식의 카테고리 캐스케이드 ID
- goods_name: 상품명
- sale_price: 판매가
- stock_count: 재고
- make_address_id: 원산지 ID (1=한국 2=중국 3=기타)
- goods_detail: 상품 소개 (필수, 없으면 422)
- goods_gallery: 상품 이미지 갤러리 배열 (최소 1개), 각 항목 형식:
  { \"goods_big_img\": \"이미지 URL\", \"goods_thumb_img\": \"이미지 URL\", \"goods_source_img\": \"이미지 URL\", \"video_url\": \"\", \"img_type\": 1 }
  ⚠️ img_type은 반드시 1을 전달해야 하며, 그렇지 않으면 103 \"이미지 또는 동영상을 업로드해 주세요\" 반환
  ⚠️ video_url은 반드시 전달해야 하며 (빈 문자열 가능), 그렇지 않으면 422
- goods_skus: SKU 배열 (빈 [] 가능)
- goods_attrs: 속성 배열 (빈 [] 가능)
- goods_detail_gallery: 상세 이미지 갤러리 (빈 [] 가능)
- is_sell: 0=미진열 1=즉시 진열
【성공 응답】{ \"code\": 100, \"message\": \"발행 성공\" }"
version: 1.0.0
category: 상품 관리-판매자
permission_level: write
enabled: true
is_public: false
---

# 상품 정보 추가[판매자]

판매자가 상품을 신규 등록합니다.
【사전 조건】
- 판매자 access_token 필요 (m_login_account 로그인을 통해 획득)
- goods_class_cascade_id 필요 (m_goodsclasslist에서 카테고리 트리를 가져와 1-6-7 형식으로 조합)
- make_address_id 필요 (m_goodsmakeaddresslist에서 원산지 ID 획득)
- 최소 1장의 상품 이미지 필요 (먼저 이미지 업로드 인터페이스를 통해 URL 획득)
【호출 흐름】
1. authcode: "HH " + 판매자 access_token (반드시 "HH " 접두사 필요)
2. sign: MD5('as0jusem$asldk').toUpperCase()
3. POST JSON body
【요청 본문 주요 필드】
- goods_class_cascade_id: "1-6-7" 형식의 카테고리 캐스케이드 ID
- goods_name: 상품명
- sale_price: 판매가
- stock_count: 재고
- make_address_id: 원산지 ID (1=한국 2=중국 3=기타)
- goods_detail: 상품 소개 (필수, 없으면 422)
- goods_gallery: 상품 이미지 갤러리 배열 (최소 1개), 각 항목 형식:
  { "goods_big_img": "이미지 URL", "goods_thumb_img": "이미지 URL", "goods_source_img": "이미지 URL", "video_url": "", "img_type": 1 }
  ⚠️ img_type은 반드시 1을 전달해야 하며, 그렇지 않으면 103 "이미지 또는 동영상을 업로드해 주세요" 반환
  ⚠️ video_url은 반드시 전달해야 하며 (빈 문자열 가능), 그렇지 않으면 422
- goods_skus: SKU 배열 (빈 [] 가능)
- goods_attrs: 속성 배열 (빈 [] 가능)
- goods_detail_gallery: 상세 이미지 갤러리 (빈 [] 가능)
- is_sell: 0=미진열 1=즉시 진열
【성공 응답】{ "code": 100, "message": "발행 성공" }

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_m_addgoods` |
| Display Name | 상품 정보 추가[판매자] |
| Method | `POST` |
| Endpoint | `/gds/app/m_addgoods` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-판매자 |
| Permission | write |
| Public | No |
| Version | 1.0.0 |


path: gds_m_delgoods.md
content: ---
name: gds_m_delgoods
description: "판매자가 지정한 상품을 삭제합니다.
【사전 조건】판매자 access_token + goods_id + ver 필요.
【호출 흐름】
1. authcode: \"HH \" + 판매자 access_token
2. sign: MD5('jsni3r@pt6sb').toUpperCase()
3. POST { goods_id, ver }
【주의】반드시 ver 버전 번호를 전달해야 함 (m_goodseditinfo에서 획득)"
version: 1.0.0
category: 상품 관리-판매자
permission_level: write
enabled: true
is_public: false
---

# 상품 정보 삭제[판매자]

판매자가 지정한 상품을 삭제합니다.
【사전 조건】판매자 access_token + goods_id + ver 필요.
【호출 흐름】
1. authcode: "HH " + 판매자 access_token
2. sign: MD5('jsni3r@pt6sb').toUpperCase()
3. POST { goods_id, ver }
【주의】반드시 ver 버전 번호를 전달해야 함 (m_goodseditinfo에서 획득)

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_m_delgoods` |
| Display Name | 상품 정보 삭제[판매자] |
| Method | `GET` |
| Endpoint | `/gds/app/m_delgoods` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-판매자 |
| Permission | write |
| Public | No |
| Version | 1.0.0 |


path: gds_m_editgoods.md
content: ---
name: gds_m_editgoods
description: "상품의 전체 정보를 수정합니다.
【사전 조건】
- 판매자 access_token 필요
- goods_id 및 ver 필요 (m_goodseditinfo에서 획득, ver은 낙관적 락 버전 번호)
【호출 흐름】
1. authcode: \"HH \" + 판매자 access_token
2. sign: MD5('as0imre$asldk').toUpperCase()
3. POST JSON body (m_addgoods와 유사하며, 추가로 goods_id 및 ver 필요)
【주의】
- 반드시 ver 버전 번호 (낙관적 락)를 전달하여 동시성 덮어쓰기 방지
- goods_gallery 각 항목에 img_type:1 포함 필요
- video_url 반드시 전달 (빈 문자열 가능)"
version: 1.0.0
category: 상품 관리-판매자
permission_level: write
enabled: true
is_public: false
---

# 상품 정보 수정[판매자]

상품의 전체 정보를 수정합니다.
【사전 조건】
- 판매자 access_token 필요
- goods_id 및 ver 필요 (m_goodseditinfo에서 획득, ver은 낙관적 락 버전 번호)
【호출 흐름】
1. authcode: "HH " + 판매자 access_token
2. sign: MD5('as0imre$asldk').toUpperCase()
3. POST JSON body (m_addgoods와 유사하며, 추가로 goods_id 및 ver 필요)
【주의】
- 반드시 ver 버전 번호 (낙관적 락)를 전달하여 동시성 덮어쓰기 방지
- goods_gallery 각 항목에 img_type:1 포함 필요
- video_url 반드시 전달 (빈 문자열 가능)

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_m_editgoods` |
| Display Name | 상품 정보 수정[판매자] |
| Method | `POST` |
| Endpoint | `/gds/app/m_editgoods` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-판매자 |
| Permission | write |
| Public | No |
| Version | 1.0.0 |


path: gds_m_editgoodsdiscount.md
content: ---
name: gds_m_editgoodsdiscount
description: "상품 할인율을 수정합니다.
【사전 조건】판매자 access_token + goods_id + ver 필요.
【호출 흐름】
1. authcode: \"HH \" + 판매자 access_token
2. sign: MD5('as0yd@e3ldk').toUpperCase()
3. POST { goods_id, discount_percent, ver }
【파라미터】discount_percent: 0~1 사이의 소수, 1=할인 없음
【주의】반드시 ver 버전 번호를 전달해야 함"
version: 1.0.0
category: 상품 관리-판매자
permission_level: write
enabled: true
is_public: false
---

# 상품 할인 수정[판매자]

상품 할인율을 수정합니다.
【사전 조건】판매자 access_token + goods_id + ver 필요.
【호출 흐름】
1. authcode: "HH " + 판매자 access_token
2. sign: MD5('as0yd@e3ldk').toUpperCase()
3. POST { goods_id, discount_percent, ver }
【파라미터】discount_percent: 0~1 사이의 소수, 1=할인 없음
【주의】반드시 ver 버전 번호를 전달해야 함

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_m_editgoodsdiscount` |
| Display Name | 상품 할인 수정[판매자] |
| Method | `POST` |
| Endpoint | `/gds/app/m_editgoodsdiscount` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-판매자 |
| Permission | write |
| Public | No |
| Version | 1.0.0 |


path: gds_m_editgoodsdiscountprice.md
content: ---
name: gds_m_editgoodsdiscountprice
description: "상품의 고정 할인가를 수정합니다.
【사전 조건】판매자 access_token + goods_id + ver 필요.
【호출 흐름】
1. authcode: \"HH \" + 판매자 access_token
2. sign: MD5('as0yd@e3ldk').toUpperCase()
3. POST { goods_id, discount_price, ver }
【파라미터】discount_price: 고정 할인가 (>0)
【주의】반드시 ver 버전 번호를 전달해야 함"
version: 1.0.0
category: 상품 관리-판매자
permission_level: write
enabled: true
is_public: false
---

# 상품 할인 가격 수정[판매자]

상품의 고정 할인가를 수정합니다.
【사전 조건】판매자 access_token + goods_id + ver 필요.
【호출 흐름】
1. authcode: "HH " + 판매자 access_token
2. sign: MD5('as0yd@e3ldk').toUpperCase()
3. POST { goods_id, discount_price, ver }
【파라미터】discount_price: 고정 할인가 (>0)
【주의】반드시 ver 버전 번호를 전달해야 함

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_m_editgoodsdiscountprice` |
| Display Name | 상품 할인 가격 수정[판매자] |
| Method | `POST` |
| Endpoint | `/gds/app/m_editgoodsdiscountprice` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-판매자 |
| Permission | write |
| Public | No |
| Version | 1.0.0 |


path: gds_m_editgoodsprice.md
content: ---
name: gds_m_editgoodsprice
description: "상품 판매가를 단독으로 수정합니다.
【사전 조건】판매자 access_token + goods_id + ver 필요.
【호출 흐름】
1. authcode: \"HH \" + 판매자 access_token
2. sign: MD5('as0in@h3ldk').toUpperCase()
3. POST { goods_id, sale_price, ver }
【주의】반드시 ver 버전 번호를 전달해야 함"
version: 1.0.0
category: 상품 관리-판매자
permission_level: write
enabled: true
is_public: false
---

# 상품 가격 수정[판매자]

상품 판매가를 단독으로 수정합니다.
【사전 조건】판매자 access_token + goods_id + ver 필요.
【호출 흐름】
1. authcode: "HH " + 판매자 access_token
2. sign: MD5('as0in@h3ldk').toUpperCase()
3. POST { goods_id, sale_price, ver }
【주의】반드시 ver 버전 번호를 전달해야 함

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_m_editgoodsprice` |
| Display Name | 상품 가격 수정[판매자] |
| Method | `POST` |
| Endpoint | `/gds/app/m_editgoodsprice` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-판매자 |
| Permission | write |
| Public | No |
| Version | 1.0.0 |


path: gds_m_editgoodssell.md
content: ---
name: gds_m_editgoodssell
description: "상품 진열/미진열 상태를 전환합니다.
【사전 조건】판매자 access_token + goods_id + ver 필요.
【호출 흐름】
1. authcode: \"HH \" + 판매자 access_token
2. sign: MD5('as0in@h3ldk').toUpperCase()
3. POST { goods_id, is_sell, ver }
【파라미터】is_sell: 0=미진열 1=진열
【주의】반드시 ver 버전 번호를 전달해야 함"
version: 1.0.0
category: 상품 관리-판매자
permission_level: write
enabled: true
is_public: false
---

# 상품 진열 상태 수정[판매자]

상품 진열/미진열 상태를 전환합니다.
【사전 조건】판매자 access_token + goods_id + ver 필요.
【호출 흐름】
1. authcode: "HH " + 판매자 access_token
2. sign: MD5('as0in@h3ldk').toUpperCase()
3. POST { goods_id, is_sell, ver }
【파라미터】is_sell: 0=미진열 1=진열
【주의】반드시 ver 버전 번호를 전달해야 함

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_m_editgoodssell` |
| Display Name | 상품 진열 상태 수정[판매자] |
| Method | `POST` |
| Endpoint | `/gds/app/m_editgoodssell` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-판매자 |
| Permission | write |
| Public | No |
| Version | 1.0.0 |


path: gds_m_editgoodsskuprice.md
content: ---
name: gds_m_editgoodsskuprice
description: "상품 SKU의 가격과 재고를 일괄 수정합니다.
【사전 조건】판매자 access_token + goods_id + ver + sku 목록 필요.
【호출 흐름】
1. authcode: \"HH \" + 판매자 access_token
2. sign: MD5('as0in@h3ldk').toUpperCase()
3. POST { goods_id, ver, goods_skus: [{ sku_id, sale_price, stock_count }] }
【주의】반드시 ver 버전 번호를 전달해야 함"
version: 1.0.0
category: 상품 관리-판매자
permission_level: write
enabled: true
is_public: false
---

# 상품 규격 재고 가격 수정[판매자]

상품 SKU의 가격과 재고를 일괄 수정합니다.
【사전 조건】판매자 access_token + goods_id + ver + sku 목록 필요.
【호출 흐름】
1. authcode: "HH " + 판매자 access_token
2. sign: MD5('as0in@h3ldk').toUpperCase()
3. POST { goods_id, ver, goods_skus: [{ sku_id, sale_price, stock_count }] }
【주의】반드시 ver 버전 번호를 전달해야 함

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_m_editgoodsskuprice` |
| Display Name | 상품 규격 재고 가격 수정[판매자] |
| Method | `POST` |
| Endpoint | `/gds/app/m_editgoodsskuprice` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-판매자 |
| Permission | write |
| Public | No |
| Version | 1.0.0 |


path: gds_m_editgoodsstock.md
content: ---
name: gds_m_editgoodsstock
description: "상품 재고를 단독으로 수정합니다.
【사전 조건】판매자 access_token + goods_id + ver 필요.
【호출 흐름】
1. authcode: \"HH \" + 판매자 access_token
2. sign: MD5('as0iu%d3ldk').toUpperCase()
3. POST { goods_id, stock_count, ver }
【주의】반드시 ver 버전 번호를 전달해야 함"
version: 1.0.0
category: 상품 관리-판매자
permission_level: write
enabled: true
is_public: false
---

# 상품 재고 수정[판매자]

상품 재고를 단독으로 수정합니다.
【사전 조건】판매자 access_token + goods_id + ver 필요.
【호출 흐름】
1. authcode: "HH " + 판매자 access_token
2. sign: MD5('as0iu%d3ldk').toUpperCase()
3. POST { goods_id, stock_count, ver }
【주의】반드시 ver 버전 번호를 전달해야 함

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_m_editgoodsstock` |
| Display Name | 상품 재고 수정[판매자] |
| Method | `POST` |
| Endpoint | `/gds/app/m_editgoodsstock` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-판매자 |
| Permission | write |
| Public | No |
| Version | 1.0.0 |


path: gds_m_goodsclassattributealllist.md
content: ---
name: gds_m_goodsclassattributealllist
description: "상품 카테고리 ID에 따라 모든 속성 목록을 조회합니다.
【사전 조건】판매자 access_token + goods_class_id 필요 (m_goodsclasslist에서 리프 카테고리 획득).
【호출 흐름】
1. authcode: \"HH \" + 판매자 access_token
2. sign: MD5('jsk@jkbnehjsb').toUpperCase()
3. GET ?goods_class_id=카테고리ID
【응답】속성 배열:
[{ attribute_id, attribute_name, attribute_values: [{ value_id, value_name }] }]"
version: 1.0.0
category: 상품 관리-판매자
permission_level: read
enabled: true
is_public: false
---

# 상품 카테고리 속성 목록 조회[판매자]

상품 카테고리 ID에 따라 모든 속성 목록을 조회합니다.
【사전 조건】판매자 access_token + goods_class_id 필요 (m_goodsclasslist에서 리프 카테고리 획득).
【호출 흐름】
1. authcode: "HH " + 판매자 access_token
2. sign: MD5('jsk@jkbnehjsb').toUpperCase()
3. GET ?goods_class_id=카테고리ID
【응답】속성 배열:
[{ attribute_id, attribute_name, attribute_values: [{ value_id, value_name }] }]

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_m_goodsclassattributealllist` |
| Display Name | 상품 카테고리 속성 목록 조회[판매자] |
| Method | `GET` |
| Endpoint | `/gds/app/m_goodsclassattributealllist` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-판매자 |
| Permission | read |
| Public | No |
| Version | 1.0.0 |


path: gds_m_goodsclasslist.md
content: ---
name: gds_m_goodsclasslist
description: "판매자 측 상품 카테고리 목록을 조회합니다.
【사전 조건】먼저 m_login_account를 통해 로그인하여 판매자 access_token을 획득해야 합니다.
【호출 흐름】
1. 요청 헤더 구성: v=7.0.1, p=1, t=현재 초 단위 타임스탬프, lang=zh-cn
2. authcode 설정: \"HH \" + 판매자 access_token (반드시 \"HH \" 접두사 필요, 그렇지 않으면 401 반환)
3. sign 계산: MD5('jskdn$dh3hjsb').toUpperCase() (고정 솔트값, 파라미터 결합 안 함)
4. GET 요청, query 파라미터 없음
【응답】카테고리 트리 배열:
[{ goods_class_id, goods_class_name, is_have_child, ls_child: [하위 카테고리...] }]"
version: 1.0.0
category: 상품 관리-판매자
permission_level: read
enabled: true
is_public: false
---

# 상품 카테고리 목록 조회[판매자]

판매자 측 상품 카테고리 목록을 조회합니다.
【사전 조건】먼저 m_login_account를 통해 로그인하여 판매자 access_token을 획득해야 합니다.
【호출 흐름】
1. 요청 헤더 구성: v=7.0.1, p=1, t=현재 초 단위 타임스탬프, lang=zh-cn
2. authcode 설정: "HH " + 판매자 access_token (반드시 "HH " 접두사 필요, 그렇지 않으면 401 반환)
3. sign 계산: MD5('jskdn$dh3hjsb').toUpperCase() (고정 솔트값, 파라미터 결합 안 함)
4. GET 요청, query 파라미터 없음
【응답】카테고리 트리 배열:
[{ goods_class_id, goods_class_name, is_have_child, ls_child: [하위 카테고리...] }]

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_m_goodsclasslist` |
| Display Name | 상품 카테고리 목록 조회[판매자] |
| Method | `GET` |
| Endpoint | `/gds/app/m_goodsclasslist` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-판매자 |
| Permission | read |
| Public | No |
| Version | 1.0.0 |


path: gds_m_goodsclassspecalllist.md
content: ---
name: gds_m_goodsclassspecalllist
description: "상품 카테고리 ID에 따라 모든 규격 목록을 조회합니다.
【사전 조건】판매자 access_token + goods_class_id 필요 (m_goodsclasslist에서 리프 카테고리 획득).
【호출 흐름】
1. authcode: \"HH \" + 판매자 access_token
2. sign: MD5('jsk@jie4ehjsb').toUpperCase()
3. GET ?goods_class_id=카테고리ID
【응답】규격 배열:
[{ spec_id, spec_name, spec_values: [{ spec_value_id, spec_value_name }] }]"
version: 1.0.0
category: 상품 관리-판매자
permission_level: read
enabled: true
is_public: false
---

# 상품 카테고리 규격 목록 조회[판매자]

상품 카테고리 ID에 따라 모든 규격 목록을 조회합니다.
【사전 조건】판매자 access_token + goods_class_id 필요 (m_goodsclasslist에서 리프 카테고리 획득).
【호출 흐름】
1. authcode: "HH " + 판매자 access_token
2. sign: MD5('jsk@jie4ehjsb').toUpperCase()
3. GET ?goods_class_id=카테고리ID
【응답】규격 배열:
[{ spec_id, spec_name, spec_values: [{ spec_value_id, spec_value_name }] }]

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_m_goodsclassspecalllist` |
| Display Name | 상품 카테고리 규격 목록 조회[판매자] |
| Method | `GET` |
| Endpoint | `/gds/app/m_goodsclassspecalllist` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-판매자 |
| Permission | read |
| Public | No |
| Version | 1.0.0 |


path: gds_m_goodseditinfo.md
content: ---
name: gds_m_goodseditinfo
description: "상품 편집 상세 정보를 조회합니다 (폼 채우기용). ver 버전 번호 (낙관적 락) 포함하여 반환합니다.
【사전 조건】판매자 access_token + goods_id 필요 (m_storegoodslist에서 획득).
【호출 흐름】
1. authcode: \"HH \" + 판매자 access_token
2. sign: MD5('jsk0r$dh3hjsb').toUpperCase()
3. GET ?goods_id=상품ID
【응답】전체 상품 정보:
{ goods_id, goods_class_cascade_id, goods_name, sale_price, stock_count, ver,
  goods_gallery: [{ goods_big_img, goods_thumb_img, goods_source_img, video_url, img_type }],
  goods_skus: [{ sku_id, sale_price, stock_count, goods_specs: [...] }],
  goods_attrs, goods_detail_gallery, ... }"
version: 1.0.0
category: 상품 관리-판매자
permission_level: read
enabled: true
is_public: false
---

# 상품 편집 상세 정보 조회[판매자]

상품 편집 상세 정보를 조회합니다 (폼 채우기용). ver 버전 번호 (낙관적 락) 포함하여 반환합니다.
【사전 조건】판매자 access_token + goods_id 필요 (m_storegoodslist에서 획득).
【호출 흐름】
1. authcode: "HH " + 판매자 access_token
2. sign: MD5('jsk0r$dh3hjsb').toUpperCase()
3. GET ?goods_id=상품ID
【응답】전체 상품 정보:
{ goods_id, goods_class_cascade_id, goods_name, sale_price, stock_count, ver,
  goods_gallery: [{ goods_big_img, goods_thumb_img, goods_source_img, video_url, img_type }],
  goods_skus: [{ sku_id, sale_price, stock_count, goods_specs: [...] }],
  goods_attrs, goods_detail_gallery, ... }

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_m_goodseditinfo` |
| Display Name | 상품 편집 상세 정보 조회[판매자] |
| Method | `GET` |
| Endpoint | `/gds/app/m_goodseditinfo` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-판매자 |
| Permission | read |
| Public | No |
| Version | 1.0.0 |


path: gds_m_goodseditskuinfo.md
content: ---
name: gds_m_goodseditskuinfo
description: "상품의 모든 SKU 규격 정보를 조회합니다.
【사전 조건】판매자 access_token + goods_id 필요.
【호출 흐름】
1. authcode: \"HH \" + 판매자 access_token
2. sign: MD5('jsk0enu@3hjsb').toUpperCase()
3. GET ?goods_id=상품ID
【응답】SKU 규격 배열:
{ goods_skus: [{ sku_id, sale_price, stock_count, goods_specs: [{ spec_name, spec_value_name, spec_value_img }] }] }"
version: 1.0.0
category: 상품 관리-판매자
permission_level: read
enabled: true
is_public: false
---

# 상품 규격 정보 조회[판매자]

상품의 모든 SKU 규격 정보를 조회합니다.
【사전 조건】판매자 access_token + goods_id 필요.
【호출 흐름】
1. authcode: "HH " + 판매자 access_token
2. sign: MD5('jsk0enu@3hjsb').toUpperCase()
3. GET ?goods_id=상품ID
【응답】SKU 규격 배열:
{ goods_skus: [{ sku_id, sale_price, stock_count, goods_specs: [{ spec_name, spec_value_name, spec_value_img }] }] }

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_m_goodseditskuinfo` |
| Display Name | 상품 규격 정보 조회[판매자] |
| Method | `GET` |
| Endpoint | `/gds/app/m_goodseditskuinfo` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-판매자 |
| Permission | read |
| Public | No |
| Version | 1.0.0 |


path: gds_m_goodsmakeaddresslist.md
content: ---
name: gds_m_goodsmakeaddresslist
description: "상품 원산지 목록을 조회합니다.
【사전 조건】판매자 access_token 필요.
【호출 흐름】
1. authcode: \"HH \" + 판매자 access_token
2. sign: MD5('js0ntu$wphjsb').toUpperCase()
3. GET 요청, query 파라미터 없음
【응답】원산지 배열:
[{ address_id, address_name }]
현재 선택 가능한 값: 1=한국, 2=중국, 3=기타"
version: 1.0.0
category: 상품 관리-판매자
permission_level: read
enabled: true
is_public: false
---

# 원산지 목록 조회[판매자]

상품 원산지 목록을 조회합니다.
【사전 조건】판매자 access_token 필요.
【호출 흐름】
1. authcode: "HH " + 판매자 access_token
2. sign: MD5('js0ntu$wphjsb').toUpperCase()
3. GET 요청, query 파라미터 없음
【응답】원산지 배열:
[{ address_id, address_name }]
현재 선택 가능한 값: 1=한국, 2=중국, 3=기타

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_m_goodsmakeaddresslist` |
| Display Name | 원산지 목록 조회[판매자] |
| Method | `GET` |
| Endpoint | `/gds/app/m_goodsmakeaddresslist` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-판매자 |
| Permission | read |
| Public | No |
| Version | 1.0.0 |


path: gds_m_goodsskuiscandel.md
content: ---
name: gds_m_goodsskuiscandel
description: "지정한 SKU의 삭제 가능 여부를 조회합니다.
【사전 조건】판매자 access_token + sku_id 필요.
【호출 흐름】
1. authcode: \"HH \" + 판매자 access_token
2. sign: MD5('jsk0r$me5jsb').toUpperCase()
3. GET ?sku_id=SKU_ID
【응답】{ is_can_del: 0|1 }"
version: 1.0.0
category: 상품 관리-판매자
permission_level: read
enabled: true
is_public: false
---

# 상품 SKU 삭제 가능 여부 조회[판매자]

지정한 SKU의 삭제 가능 여부를 조회합니다.
【사전 조건】판매자 access_token + sku_id 필요.
【호출 흐름】
1. authcode: "HH " + 판매자 access_token
2. sign: MD5('jsk0r$me5jsb').toUpperCase()
3. GET ?sku_id=SKU_ID
【응답】{ is_can_del: 0|1 }

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_m_goodsskuiscandel` |
| Display Name | 상품 SKU 삭제 가능 여부 조회[판매자] |
| Method | `GET` |
| Endpoint | `/gds/app/m_goodsskuiscandel` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-판매자 |
| Permission | read |
| Public | No |
| Version | 1.0.0 |


path: gds_m_storegoodslist.md
content: ---
name: gds_m_storegoodslist
description: "판매자 상품 목록을 페이지 단위로 조회합니다 (커서 페이지네이션).
【사전 조건】판매자 access_token 필요.
【호출 흐름】
1. authcode: \"HH \" + 판매자 access_token
2. sign: MD5('jsm6y$dh3hjsb').toUpperCase()
3. GET ?page_size=20&mark=1
【파라미터】
- mark: 1=판매 중 2=진열 대기 3=할인 중
- page_size: 페이지당 개수
【페이지네이션 방식】커서 페이지네이션, 이전 페이지 마지막 데이터의 필드를 다음 페이지 시작점으로 사용
【응답】상품 배열:
[{ goods_id, goods_name, goods_thumb_img, sale_price, stock_count, is_sell, discount_percent, ... }]"
version: 1.0.0
category: 상품 관리-판매자
permission_level: read
enabled: true
is_public: false
---

# 판매자 상품 목록 조회

판매자 상품 목록을 페이지 단위로 조회합니다 (커서 페이지네이션).
【사전 조건】판매자 access_token 필요.
【호출 흐름】
1. authcode: "HH " + 판매자 access_token
2. sign: MD5('jsm6y$dh3hjsb').toUpperCase()
3. GET ?page_size=20&mark=1
【파라미터】
- mark: 1=판매 중 2=진열 대기 3=할인 중
- page_size: 페이지당 개수
【페이지네이션 방식】커서 페이지네이션, 이전 페이지 마지막 데이터의 필드를 다음 페이지 시작점으로 사용
【응답】상품 배열:
[{ goods_id, goods_name, goods_thumb_img, sale_price, stock_count, is_sell, discount_percent, ... }]

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_m_storegoodslist` |
| Display Name | 판매자 상품 목록 조회 |
| Method | `GET` |
| Endpoint | `/gds/app/m_storegoodslist` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-판매자 |
| Permission | read |
| Public | No |
| Version | 1.0.0 |


path: gds_u_addgoods.md
content: ---
name: gds_u_addgoods
description: "사용자 셀프 추가 결제 시나리오에서 상품을 신규 등록합니다.
【사전 조건】
- 사용자 access_token 필요
- store_id 및 merchant_id 필요 (상품 상세에서 획득)
- goods_class_cascade_id 필요 (u_goodsclasslist 에서 획득)
【호출 절차】
1. authcode: \"HH \" + 사용자 token
2. sign: MD5('asPtem$asldk').toUpperCase()
3. POST JSON: { store_id, merchant_id, goods_class_cascade_id, sale_price, cart_memo, goods_gallery }
   - goods_gallery: 1~5장 이미지
   - goods_class_cascade_id: 형식 \"1-2-3\", 최하위 단계까지 선택"
version: 1.0.0
category: 상품 관리-사용자
permission_level: write
enabled: true
is_public: false
---

# 상품 정보 추가[셀프 추가 결제]

사용자 셀프 추가 결제 시나리오에서 상품을 신규 등록합니다.
【사전 조건】
- 사용자 access_token 필요
- store_id 및 merchant_id 필요 (상품 상세에서 획득)
- goods_class_cascade_id 필요 (u_goodsclasslist 에서 획득)
【호출 절차】
1. authcode: "HH " + 사용자 token
2. sign: MD5('asPtem$asldk').toUpperCase()
3. POST JSON: { store_id, merchant_id, goods_class_cascade_id, sale_price, cart_memo, goods_gallery }
   - goods_gallery: 1~5장 이미지
   - goods_class_cascade_id: 형식 "1-2-3", 최하위 단계까지 선택

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_u_addgoods` |
| Display Name | 상품 정보 추가[셀프 추가 결제] |
| Method | `POST` |
| Endpoint | `/gds/app/u_addgoods` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-사용자 |
| Permission | write |
| Public | No |
| Version | 1.0.0 |


path: gds_u_categorygoodslist.md
content: ---
name: gds_u_categorygoodslist
description: "카테고리별 상품 목록 조회 (사용자측, 커서 페이지네이션).
【사전 조건】
- 사용자 access_token 필요
- class_id 필요 (u_goodsclasslist 에서 카테고리 트리의 goods_class_id 획득)
【호출 절차】
1. authcode: \"HH \" + 사용자 token
2. sign: MD5('jsm6y$nu5wjsb').toUpperCase()
3. GET ?class_id=카테고리ID&page_size=20&min_price=0&max_price=0&order_mark=0&last_update_time=0&collect_count=0
【페이지네이션】커서 페이지네이션, u_recommendgoodslist 와 동일."
version: 1.0.0
category: 상품 관리-사용자
permission_level: read
enabled: true
is_public: false
---

# 상품 카테고리별 상품 목록 조회[사용자]

카테고리별 상품 목록 조회 (사용자측, 커서 페이지네이션).
【사전 조건】
- 사용자 access_token 필요
- class_id 필요 (u_goodsclasslist 에서 카테고리 트리의 goods_class_id 획득)
【호출 절차】
1. authcode: "HH " + 사용자 token
2. sign: MD5('jsm6y$nu5wjsb').toUpperCase()
3. GET ?class_id=카테고리ID&page_size=20&min_price=0&max_price=0&order_mark=0&last_update_time=0&collect_count=0
【페이지네이션】커서 페이지네이션, u_recommendgoodslist 와 동일.

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_u_categorygoodslist` |
| Display Name | 상품 카테고리별 상품 목록 조회[사용자] |
| Method | `GET` |
| Endpoint | `/gds/app/u_categorygoodslist` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-사용자 |
| Permission | read |
| Public | No |
| Version | 1.0.0 |


path: gds_u_complaintgoodsprice.md
content: ---
name: gds_u_complaintgoodsprice
description: "사용자가 상품 가격 이상에 대해 신고합니다.
【사전 조건】사용자 access_token + goods_id 필요.
【호출 절차】
1. authcode: \"HH \" + 사용자 token
2. sign: MD5('jsneuntyjsb').toUpperCase()
3. POST JSON: { goods_id, complaint_img }
   - complaint_img: 신고 스크린샷의 base64 또는 URL"
version: 1.0.0
category: 상품 관리-사용자
permission_level: write
enabled: true
is_public: false
---

# 상품 가격 신고[사용자]

사용자가 상품 가격 이상에 대해 신고합니다.
【사전 조건】사용자 access_token + goods_id 필요.
【호출 절차】
1. authcode: "HH " + 사용자 token
2. sign: MD5('jsneuntyjsb').toUpperCase()
3. POST JSON: { goods_id, complaint_img }
   - complaint_img: 신고 스크린샷의 base64 또는 URL

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_u_complaintgoodsprice` |
| Display Name | 상품 가격 신고[사용자] |
| Method | `POST` |
| Endpoint | `/gds/app/u_complaintgoodsprice` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-사용자 |
| Permission | write |
| Public | No |
| Version | 1.0.0 |


path: gds_u_dategoodslist.md
content: ---
name: gds_u_dategoodslist
description: "날짜별 당일 신상품 목록 조회.
【사전 조건】사용자 access_token + 날짜 필요 (u_datelist 에서 획득).
【호출 절차】
1. authcode: \"HH \" + 사용자 token
2. sign: MD5('jsm6y$nu5wjsb').toUpperCase()
3. GET ?date=2024-01-01&page_size=20&class_id=0&min_price=0&max_price=0&order_mark=0&last_update_time=0&collect_count=0
【페이지네이션】u_recommendgoodslist 와 동일, 커서 페이지네이션."
version: 1.0.0
category: 상품 관리-사용자
permission_level: read
enabled: true
is_public: false
---

# 일자별 신상품 목록 조회[사용자]

날짜별 당일 신상품 목록 조회.
【사전 조건】사용자 access_token + 날짜 필요 (u_datelist 에서 획득).
【호출 절차】
1. authcode: "HH " + 사용자 token
2. sign: MD5('jsm6y$nu5wjsb').toUpperCase()
3. GET ?date=2024-01-01&page_size=20&class_id=0&min_price=0&max_price=0&order_mark=0&last_update_time=0&collect_count=0
【페이지네이션】u_recommendgoodslist 와 동일, 커서 페이지네이션.

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_u_dategoodslist` |
| Display Name | 일자별 신상품 목록 조회[사용자] |
| Method | `GET` |
| Endpoint | `/gds/app/u_dategoodslist` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-사용자 |
| Permission | read |
| Public | No |
| Version | 1.0.0 |


path: gds_u_datelist.md
content: ---
name: gds_u_datelist
description: "일자별 신상품이 등록된 날짜 목록을 조회합니다.
【사전 조건】사용자 access_token 필요.
【호출 절차】
1. authcode: \"HH \" + 사용자 token
2. sign: MD5('jsm6y$bie5jsb').toUpperCase()
3. GET ?page_size=20&date=0 (첫 페이지는 0 전달, 다음 페이지는 이전 페이지 마지막의 날짜 타임스탬프 전달)"
version: 1.0.0
category: 상품 관리-사용자
permission_level: read
enabled: true
is_public: false
---

# 일자별 신상품 날짜 목록 조회[사용자]

일자별 신상품이 등록된 날짜 목록을 조회합니다.
【사전 조건】사용자 access_token 필요.
【호출 절차】
1. authcode: "HH " + 사용자 token
2. sign: MD5('jsm6y$bie5jsb').toUpperCase()
3. GET ?page_size=20&date=0 (첫 페이지는 0 전달, 다음 페이지는 이전 페이지 마지막의 날짜 타임스탬프 전달)

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_u_datelist` |
| Display Name | 일자별 신상품 날짜 목록 조회[사용자] |
| Method | `GET` |
| Endpoint | `/gds/app/u_datelist` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-사용자 |
| Permission | read |
| Public | No |
| Version | 1.0.0 |


path: gds_u_delgoods.md
content: ---
name: gds_u_delgoods
description: "사용자가 셀프 추가 결제 상품을 삭제합니다 (일괄 처리 지원).
【사전 조건】사용자 access_token + goods_ids 필요 (u_selfgoodslist 에서 획득).
【호출 절차】
1. authcode: \"HH \" + 사용자 token
2. sign: MD5('jsn9dJ^wqjsb').toUpperCase()
3. POST JSON: { goods_ids: [상품ID1, 상품ID2, ...] }"
version: 1.0.0
category: 상품 관리-사용자
permission_level: write
enabled: true
is_public: false
---

# 상품 정보 삭제[사용자]

사용자가 셀프 추가 결제 상품을 삭제합니다 (일괄 처리 지원).
【사전 조건】사용자 access_token + goods_ids 필요 (u_selfgoodslist 에서 획득).
【호출 절차】
1. authcode: "HH " + 사용자 token
2. sign: MD5('jsn9dJ^wqjsb').toUpperCase()
3. POST JSON: { goods_ids: [상품ID1, 상품ID2, ...] }

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_u_delgoods` |
| Display Name | 상품 정보 삭제[사용자] |
| Method | `POST` |
| Endpoint | `/gds/app/u_delgoods` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-사용자 |
| Permission | write |
| Public | No |
| Version | 1.0.0 |


path: gds_u_goods.md
content: ---
name: gds_u_goods
description: "단일 상품의 전체 상세 정보 조회 (사용자측).
【사전 조건】사용자 access_token + goods_id 필요.
【호출 절차】
1. authcode: \"HH \" + 사용자 token
2. sign: MD5('jsk0r$om2djsb').toUpperCase()
3. GET ?goods_id=상품ID
【응답】result 포함:
- 기본: goods_id, goods_sn, goods_name, goods_desc, sale_price, currency_symbol
- 로컬 가격: local_sale_price, local_currency_symbol
- 통계: view_count, stock_count, least_buy_num, limit_buy_num
- 매장: store_id, store_name
- 이미지 갤러리: goods_gallery [{ goods_thumb_img, goods_big_img, goods_source_img }]
- 규격: goods_skus [{ sku_id, sale_price, stock_count, goods_specs }]
- 속성: goods_attrs
【주의】이미지 경로는 \"az7/gd/xxx.webp\" 와 같은 상대 경로이며, 이미지 CDN 도메인을 결합해야 합니다."
version: 1.0.0
category: 상품 관리-사용자
permission_level: read
enabled: true
is_public: false
---

# 상품 상세 조회[사용자]

단일 상품의 전체 상세 정보 조회 (사용자측).
【사전 조건】사용자 access_token + goods_id 필요.
【호출 절차】
1. authcode: "HH " + 사용자 token
2. sign: MD5('jsk0r$om2djsb').toUpperCase()
3. GET ?goods_id=상품ID
【응답】result 포함:
- 기본: goods_id, goods_sn, goods_name, goods_desc, sale_price, currency_symbol
- 로컬 가격: local_sale_price, local_currency_symbol
- 통계: view_count, stock_count, least_buy_num, limit_buy_num
- 매장: store_id, store_name
- 이미지 갤러리: goods_gallery [{ goods_thumb_img, goods_big_img, goods_source_img }]
- 규격: goods_skus [{ sku_id, sale_price, stock_count, goods_specs }]
- 속성: goods_attrs
【주의】이미지 경로는 "az7/gd/xxx.webp" 와 같은 상대 경로이며, 이미지 CDN 도메인을 결합해야 합니다.

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_u_goods` |
| Display Name | 상품 상세 조회[사용자] |
| Method | `GET` |
| Endpoint | `/gds/app/u_goods` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-사용자 |
| Permission | read |
| Public | No |
| Version | 1.0.0 |


path: gds_u_goodsclasslist.md
content: ---
name: gds_u_goodsclasslist
description: "사용자측 전체 상품 카테고리 트리를 조회합니다.
【사전 조건】먼저 u_login_account 를 통해 로그인하여 사용자 access_token 을 획득해야 합니다.
【호출 절차】
1. 요청 헤더 구성: v=7.0.1, p=1, t=현재 초 단위 타임스탬프, lang=zh-cn
2. authcode 설정: \"HH \" + 사용자 access_token (반드시 \"HH \" 접두사가 있어야 하며, 없으면 401 반환)
3. sign 계산: MD5('jskdn$dh3hjsb').toUpperCase()  (고정 salt 값, 파라미터 결합 안 함)
4. GET 요청, query 파라미터 없음
【응답】카테고리 트리 배열:
[{ goods_class_id, goods_class_name, is_have_child, ls_child: [하위 카테고리...] }]"
version: 1.0.0
category: 상품 관리-사용자
permission_level: read
enabled: true
is_public: false
---

# 상품 카테고리 목록 조회[사용자]

사용자측 전체 상품 카테고리 트리를 조회합니다.
【사전 조건】먼저 u_login_account 를 통해 로그인하여 사용자 access_token 을 획득해야 합니다.
【호출 절차】
1. 요청 헤더 구성: v=7.0.1, p=1, t=현재 초 단위 타임스탬프, lang=zh-cn
2. authcode 설정: "HH " + 사용자 access_token (반드시 "HH " 접두사가 있어야 하며, 없으면 401 반환)
3. sign 계산: MD5('jskdn$dh3hjsb').toUpperCase()  (고정 salt 값, 파라미터 결합 안 함)
4. GET 요청, query 파라미터 없음
【응답】카테고리 트리 배열:
[{ goods_class_id, goods_class_name, is_have_child, ls_child: [하위 카테고리...] }]

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_u_goodsclasslist` |
| Display Name | 상품 카테고리 목록 조회[사용자] |
| Method | `GET` |
| Endpoint | `/gds/app/u_goodsclasslist` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-사용자 |
| Permission | read |
| Public | No |
| Version | 1.0.0 |


path: gds_u_goodsclassspecalllist.md
content: ---
name: gds_u_goodsclassspecalllist
description: "상품 카테고리 규격 목록 조회 (사용자측).
【사전 조건】사용자 access_token + goods_class_id 필요 (u_goodsclasslist 에서 획득).
【호출 절차】
1. authcode: \"HH \" + 사용자 token
2. sign: MD5('jsk@jie4ehjsb').toUpperCase()
3. GET ?goods_class_id=카테고리ID"
version: 1.0.0
category: 상품 관리-사용자
permission_level: read
enabled: true
is_public: false
---

# 상품 카테고리 규격 목록 조회[사용자]

상품 카테고리 규격 목록 조회 (사용자측).
【사전 조건】사용자 access_token + goods_class_id 필요 (u_goodsclasslist 에서 획득).
【호출 절차】
1. authcode: "HH " + 사용자 token
2. sign: MD5('jsk@jie4ehjsb').toUpperCase()
3. GET ?goods_class_id=카테고리ID

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_u_goodsclassspecalllist` |
| Display Name | 상품 카테고리 규격 목록 조회[사용자] |
| Method | `GET` |
| Endpoint | `/gds/app/u_goodsclassspecalllist` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-사용자 |
| Permission | read |
| Public | No |
| Version | 1.0.0 |


path: gds_u_goodsskulist.md
content: ---
name: gds_u_goodsskulist
description: "상품 SKU 규격 목록 조회 (사용자측).
【사전 조건】사용자 access_token + goods_id 필요 (상품 목록 또는 검색에서 획득).
【호출 절차】
1. authcode: \"HH \" + 사용자 token
2. sign: MD5('jskp9Ght$wymsb').toUpperCase()
3. GET ?goods_id=상품ID
【응답】result 에 goods_skus 배열 포함:
[{ sku_id, sale_price, stock_count, goods_specs: [{ spec_name: \"색상\", spec_value_name: \"이미지 색상\" }, ...] }]"
version: 1.0.0
category: 상품 관리-사용자
permission_level: read
enabled: true
is_public: false
---

# 상품 규격 정보 조회[사용자]

상품 SKU 규격 목록 조회 (사용자측).
【사전 조건】사용자 access_token + goods_id 필요 (상품 목록 또는 검색에서 획득).
【호출 절차】
1. authcode: "HH " + 사용자 token
2. sign: MD5('jskp9Ght$wymsb').toUpperCase()
3. GET ?goods_id=상품ID
【응답】result 에 goods_skus 배열 포함:
[{ sku_id, sale_price, stock_count, goods_specs: [{ spec_name: "색상", spec_value_name: "이미지 색상" }, ...] }]

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_u_goodsskulist` |
| Display Name | 상품 규격 정보 조회[사용자] |
| Method | `GET` |
| Endpoint | `/gds/app/u_goodsskulist` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-사용자 |
| Permission | read |
| Public | No |
| Version | 1.0.0 |


path: gds_u_imgsearchgoodslist.md
content: ---
name: gds_u_imgsearchgoodslist
description: "이미지로 유사 상품 검색 (사진으로 동일 상품 찾기).
【사전 조건】사용자 access_token + 이미지 base64 데이터 필요.
【호출 절차】
1. authcode: \"HH \" + 사용자 token
2. sign: MD5('jsm6y$nr3wjsb').toUpperCase()
3. POST JSON: { img: \"base64 문자열\" }
   - img: \"data:image/...;
base64,\" 헤더가 없는 순수 base64
   - 권장 이미지 크기: 360x480"
version: 1.0.0
category: 상품 관리-사용자
permission_level: write
enabled: true
is_public: false
---

# 이미지 상품 검색 목록[사용자]

이미지로 유사 상품 검색 (사진으로 동일 상품 찾기).
【사전 조건】사용자 access_token + 이미지 base64 데이터 필요.
【호출 절차】
1. authcode: "HH " + 사용자 token
2. sign: MD5('jsm6y$nr3wjsb').toUpperCase()
3. POST JSON: { img: "base64 문자열" }
   - img: "data:image/...;
base64," 헤더가 없는 순수 base64
   - 권장 이미지 크기: 360x480

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_u_imgsearchgoodslist` |
| Display Name | 이미지 상품 검색 목록[사용자] |
| Method | `POST` |
| Endpoint | `/gds/app/u_imgsearchgoodslist` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-사용자 |
| Permission | write |
| Public | No |
| Version | 1.0.0 |


path: gds_u_recommendgoodslist.md
content: ---
name: gds_u_recommendgoodslist
description: "추천 상품 목록 (사용자측에서 가장 자주 사용되는 목록 인터페이스, 커서 페이지네이션).
【사전 조건】먼저 u_login_account 를 통해 로그인하여 사용자 access_token 을 획득해야 합니다.
【호출 절차】
1. 요청 헤더 구성: v=7.0.1, p=1, t=현재 초 단위 타임스탬프, lang=zh-cn
2. authcode 설정: \"HH \" + 사용자 access_token
3. sign 계산: MD5('jsm6y$nu5wjsb').toUpperCase()
4. GET 파라미터:
   - page_size=20 (페이지당 개수)
   - search_mark=0, class_id=0, min_price=0, max_price=0, order_mark=0 (첫 페이지 기본값)
   - last_update_time=0, collect_count=0 (첫 페이지는 0 전달)
【페이지네이션 방식】커서 페이지네이션:
- 첫 페이지: last_update_time=0, collect_count=0
- 다음 페이지: 이전 페이지 마지막 데이터의 last_update_time 및 collect_count 전달
- code=101 또는 빈 배열 반환은 더 이상 데이터가 없음을 의미
【응답】result 배열:
[{ goods_id, goods_name, goods_thumb_img, sale_price, currency_symbol, local_sale_price, local_currency_symbol, gallery_count, view_count, collect_count, discount_percent, last_update_time, store_id, store_name }]"
version: 1.0.0
category: 상품 관리-사용자
permission_level: read
enabled: true
is_public: false
---

# 상품 목록·범용[사용자]

추천 상품 목록 (사용자측에서 가장 자주 사용되는 목록 인터페이스, 커서 페이지네이션).
【사전 조건】먼저 u_login_account 를 통해 로그인하여 사용자 access_token 을 획득해야 합니다.
【호출 절차】
1. 요청 헤더 구성: v=7.0.1, p=1, t=현재 초 단위 타임스탬프, lang=zh-cn
2. authcode 설정: "HH " + 사용자 access_token
3. sign 계산: MD5('jsm6y$nu5wjsb').toUpperCase()
4. GET 파라미터:
   - page_size=20 (페이지당 개수)
   - search_mark=0, class_id=0, min_price=0, max_price=0, order_mark=0 (첫 페이지 기본값)
   - last_update_time=0, collect_count=0 (첫 페이지는 0 전달)
【페이지네이션 방식】커서 페이지네이션:
- 첫 페이지: last_update_time=0, collect_count=0
- 다음 페이지: 이전 페이지 마지막 데이터의 last_update_time 및 collect_count 전달
- code=101 또는 빈 배열 반환은 더 이상 데이터가 없음을 의미
【응답】result 배열:
[{ goods_id, goods_name, goods_thumb_img, sale_price, currency_symbol, local_sale_price, local_currency_symbol, gallery_count, view_count, collect_count, discount_percent, last_update_time, store_id, store_name }]

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_u_recommendgoodslist` |
| Display Name | 상품 목록·범용[사용자] |
| Method | `GET` |
| Endpoint | `/gds/app/u_recommendgoodslist` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-사용자 |
| Permission | read |
| Public | No |
| Version | 1.0.0 |


path: gds_u_searchgoodslist.md
content: ---
name: gds_u_searchgoodslist
description: "키워드로 상품 목록 검색 (서버측 검색, 중국어/한국어 키워드 지원).
【사전 조건】먼저 u_login_account 를 통해 로그인하여 사용자 access_token 을 획득해야 합니다.
【호출 절차】
1. authcode: \"HH \" + 사용자 token
2. sign: MD5('jsm6y$nu5wjsb').toUpperCase()
3. GET ?keyword=검색어&page_size=20&last_update_time=0
【페이지네이션】last_update_time 커서 페이지네이션.
【응답】u_recommendgoodslist 와 동일한 형식의 상품 배열."
version: 1.0.0
category: 상품 관리-사용자
permission_level: read
enabled: true
is_public: false
---

# 상품 검색 목록 조회[사용자]

키워드로 상품 목록 검색 (서버측 검색, 중국어/한국어 키워드 지원).
【사전 조건】먼저 u_login_account 를 통해 로그인하여 사용자 access_token 을 획득해야 합니다.
【호출 절차】
1. authcode: "HH " + 사용자 token
2. sign: MD5('jsm6y$nu5wjsb').toUpperCase()
3. GET ?keyword=검색어&page_size=20&last_update_time=0
【페이지네이션】last_update_time 커서 페이지네이션.
【응답】u_recommendgoodslist 와 동일한 형식의 상품 배열.

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_u_searchgoodslist` |
| Display Name | 상품 검색 목록 조회[사용자] |
| Method | `GET` |
| Endpoint | `/gds/app/u_searchgoodslist` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-사용자 |
| Permission | read |
| Public | No |
| Version | 1.0.0 |


path: gds_u_selfgoodslist.md
content: ---
name: gds_u_selfgoodslist
description: "사용자 셀프 추가 결제 상품 목록을 조회합니다.
【사전 조건】사용자 access_token 필요.
【호출 절차】
1. authcode: \"HH \" + 사용자 token
2. sign: MD5('jsm6y$nu5wjsb').toUpperCase()
3. GET ?page_size=20"
version: 1.0.0
category: 상품 관리-사용자
permission_level: read
enabled: true
is_public: false
---

# 셀프 추가 결제 상품 목록

사용자 셀프 추가 결제 상품 목록을 조회합니다.
【사전 조건】사용자 access_token 필요.
【호출 절차】
1. authcode: "HH " + 사용자 token
2. sign: MD5('jsm6y$nu5wjsb').toUpperCase()
3. GET ?page_size=20

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_u_selfgoodslist` |
| Display Name | 셀프 추가 결제 상품 목록 |
| Method | `GET` |
| Endpoint | `/gds/app/u_selfgoodslist` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-사용자 |
| Permission | read |
| Public | No |
| Version | 1.0.0 |


path: gds_u_similargoodslist.md
content: ---
name: gds_u_similargoodslist
description: "상품 ID 기반 유사 추천 상품 목록 조회.
【사전 조건】사용자 access_token + goods_id 필요.
【호출 절차】
1. authcode: \"HH \" + 사용자 token
2. sign: MD5('jsm6y$nu5wjsb').toUpperCase()
3. GET ?goods_id=상품ID&store_id=매장ID&page_size=20&last_update_time=0"
version: 1.0.0
category: 상품 관리-사용자
permission_level: read
enabled: true
is_public: false
---

# 유사 상품 목록 조회[사용자]

상품 ID 기반 유사 추천 상품 목록 조회.
【사전 조건】사용자 access_token + goods_id 필요.
【호출 절차】
1. authcode: "HH " + 사용자 token
2. sign: MD5('jsm6y$nu5wjsb').toUpperCase()
3. GET ?goods_id=상품ID&store_id=매장ID&page_size=20&last_update_time=0

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_u_similargoodslist` |
| Display Name | 유사 상품 목록 조회[사용자] |
| Method | `GET` |
| Endpoint | `/gds/app/u_similargoodslist` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-사용자 |
| Permission | read |
| Public | No |
| Version | 1.0.0 |


path: gds_u_storegoodslist.md
content: ---
name: gds_u_storegoodslist
description: "지정 매장의 상품 목록 조회 (사용자측, 커서 페이지네이션).
【사전 조건】사용자 access_token + store_id 필요 (상품 상세의 store_id 필드에서 획득).
【호출 절차】
1. authcode: \"HH \" + 사용자 token
2. sign: MD5('jsm6y$nu5wjsb').toUpperCase()
3. GET ?store_id=매장ID&page_size=20&class_id=0&min_price=0&max_price=0&order_mark=0&last_update_time=0&collect_count=0
【페이지네이션】커서 페이지네이션, u_recommendgoodslist 와 동일."
version: 1.0.0
category: 상품 관리-사용자
permission_level: read
enabled: true
is_public: false
---

# 매장 상품 목록 조회[사용자]

지정 매장의 상품 목록 조회 (사용자측, 커서 페이지네이션).
【사전 조건】사용자 access_token + store_id 필요 (상품 상세의 store_id 필드에서 획득).
【호출 절차】
1. authcode: "HH " + 사용자 token
2. sign: MD5('jsm6y$nu5wjsb').toUpperCase()
3. GET ?store_id=매장ID&page_size=20&class_id=0&min_price=0&max_price=0&order_mark=0&last_update_time=0&collect_count=0
【페이지네이션】커서 페이지네이션, u_recommendgoodslist 와 동일.

## Quick Reference

| Field | Value |
| ----- | ----- |
| Name | `gds_u_storegoodslist` |
| Display Name | 매장 상품 목록 조회[사용자] |
| Method | `GET` |
| Endpoint | `/gds/app/u_storegoodslist` |
| Base URL | `https://44k2t5n59e.execute-api.ap-northeast-2.amazonaws.com` |
| Category | 상품 관리-사용자 |
| Permission | read |
| Public | No |
| Version | 1.0.0 |


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)