{
  "info": {
    "name": "Mall Story Open API",
    "description": "Mall Story Open API · MCP 시험용 컬렉션. 폴더마다 OAuth 설정이 다르다 — 관리자 API(소유자 토큰 · 서버 앱)와 회원 API(회원 토큰 · 쇼핑몰 주소의 회원 동의). 변수는 함께 받는 환경 파일(mallstory-api.postman_environment.json)에 있다 — 가져와서 오른쪽 위에서 고르고 값을 채운 뒤, 각 폴더의 Authorization 탭에서 Get New Access Token 을 누르세요.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    {
      "key": "api_base",
      "value": "https://api.mallstory.kr"
    }
  ],
  "item": [
    {
      "name": "관리자 API (소유자 토큰)",
      "auth": {
        "type": "oauth2",
        "oauth2": [
          {
            "key": "tokenName",
            "value": "Mall Story 소유자",
            "type": "string"
          },
          {
            "key": "grant_type",
            "value": "authorization_code_with_pkce",
            "type": "string"
          },
          {
            "key": "authUrl",
            "value": "{{api_base}}/oauth/authorize",
            "type": "string"
          },
          {
            "key": "accessTokenUrl",
            "value": "{{api_base}}/api/oauth/token",
            "type": "string"
          },
          {
            "key": "clientId",
            "value": "{{client_id}}",
            "type": "string"
          },
          {
            "key": "clientSecret",
            "value": "{{client_secret}}",
            "type": "string"
          },
          {
            "key": "scope",
            "value": "shop:read shop:write customers:read customers:write products:read products:write promotions:read promotions:write",
            "type": "string"
          },
          {
            "key": "state",
            "value": "postman-{{$timestamp}}",
            "type": "string"
          },
          {
            "key": "challengeAlgorithm",
            "value": "S256",
            "type": "string"
          },
          {
            "key": "useBrowser",
            "value": true,
            "type": "boolean"
          },
          {
            "key": "redirect_uri",
            "value": "https://oauth.pstmn.io/v1/callback",
            "type": "string"
          },
          {
            "key": "client_authentication",
            "value": "body",
            "type": "string"
          },
          {
            "key": "addTokenTo",
            "value": "header",
            "type": "string"
          },
          {
            "key": "headerPrefix",
            "value": "Bearer",
            "type": "string"
          }
        ]
      },
      "item": [
        {
          "name": "토큰 정보 조회",
          "request": {
            "method": "GET",
            "url": "{{api_base}}/v1/token"
          }
        },
        {
          "name": "쇼핑몰 정보",
          "item": [
            {
              "name": "조회 (shop:read)",
              "request": {
                "method": "GET",
                "url": "{{api_base}}/v1/shop/{{shop_unique}}"
              }
            },
            {
              "name": "수정 (shop:write)",
              "request": {
                "method": "PATCH",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{api_base}}/v1/shop/{{shop_unique}}",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"work_time\": \"평일 10:00 ~ 18:00\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            }
          ]
        },
        {
          "name": "이미지 업로드",
          "item": [
            {
              "name": "상품 이미지 올리기 (products:write)",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                      "const body = pm.response.json();",
                      "if (body.items && body.items[0]) store.set(\"file_id\", body.items[0].file_id);"
                    ]
                  }
                }
              ],
              "request": {
                "method": "POST",
                "url": "{{api_base}}/v1/shop/{{shop_unique}}/files/images?usage=product.image",
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "files",
                      "type": "file",
                      "src": []
                    }
                  ]
                }
              }
            },
            {
              "name": "주문옵션 이미지 올리기 (products:write)",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                      "const body = pm.response.json();",
                      "if (body.items && body.items[0]) store.set(\"file_id\", body.items[0].file_id);"
                    ]
                  }
                }
              ],
              "request": {
                "method": "POST",
                "url": "{{api_base}}/v1/shop/{{shop_unique}}/files/images?usage=product.option",
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "files",
                      "type": "file",
                      "src": []
                    }
                  ]
                }
              }
            },
            {
              "name": "상세설명 이미지 올리기 (products:write)",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                      "const body = pm.response.json();",
                      "if (body.items && body.items[0]) store.set(\"file_id\", body.items[0].file_id);"
                    ]
                  }
                }
              ],
              "request": {
                "method": "POST",
                "url": "{{api_base}}/v1/shop/{{shop_unique}}/files/images?usage=product.detail",
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "files",
                      "type": "file",
                      "src": []
                    }
                  ]
                }
              }
            },
            {
              "name": "상품정보제공고시 이미지 올리기 (products:write)",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                      "const body = pm.response.json();",
                      "if (body.items && body.items[0]) store.set(\"file_id\", body.items[0].file_id);"
                    ]
                  }
                }
              ],
              "request": {
                "method": "POST",
                "url": "{{api_base}}/v1/shop/{{shop_unique}}/files/images?usage=product.notice",
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "files",
                      "type": "file",
                      "src": []
                    }
                  ]
                }
              }
            },
            {
              "name": "공통정보 이미지 올리기 (products:write)",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                      "const body = pm.response.json();",
                      "if (body.items && body.items[0]) store.set(\"file_id\", body.items[0].file_id);"
                    ]
                  }
                }
              ],
              "request": {
                "method": "POST",
                "url": "{{api_base}}/v1/shop/{{shop_unique}}/files/images?usage=product.template",
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "files",
                      "type": "file",
                      "src": []
                    }
                  ]
                }
              }
            },
            {
              "name": "카테고리 배너 올리기 (products:write)",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                      "const body = pm.response.json();",
                      "if (body.items && body.items[0]) store.set(\"file_id\", body.items[0].file_id);"
                    ]
                  }
                }
              ],
              "request": {
                "method": "POST",
                "url": "{{api_base}}/v1/shop/{{shop_unique}}/files/images?usage=category.banner",
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "files",
                      "type": "file",
                      "src": []
                    }
                  ]
                }
              }
            },
            {
              "name": "배지 이미지 올리기 (products:write)",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                      "const body = pm.response.json();",
                      "if (body.items && body.items[0]) store.set(\"file_id\", body.items[0].file_id);"
                    ]
                  }
                }
              ],
              "request": {
                "method": "POST",
                "url": "{{api_base}}/v1/shop/{{shop_unique}}/files/images?usage=product.decoration",
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "files",
                      "type": "file",
                      "src": []
                    }
                  ]
                }
              }
            },
            {
              "name": "아이콘 이미지 올리기 (products:write)",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                      "const body = pm.response.json();",
                      "if (body.items && body.items[0]) store.set(\"file_id\", body.items[0].file_id);"
                    ]
                  }
                }
              ],
              "request": {
                "method": "POST",
                "url": "{{api_base}}/v1/shop/{{shop_unique}}/files/images?usage=product.decoration&variant=icon",
                "body": {
                  "mode": "formdata",
                  "formdata": [
                    {
                      "key": "files",
                      "type": "file",
                      "src": []
                    }
                  ]
                }
              }
            }
          ]
        },
        {
          "name": "상품 관리",
          "item": [
            {
              "name": "상품 목록 (products:read)",
              "request": {
                "method": "GET",
                "url": "{{api_base}}/v1/shop/{{shop_unique}}/products?size=10"
              }
            },
            {
              "name": "상품 상세 (products:read)",
              "request": {
                "method": "GET",
                "url": "{{api_base}}/v1/shop/{{shop_unique}}/products/{{product_unique}}"
              }
            },
            {
              "name": "상품 등록",
              "item": [
                {
                  "name": "옵션 없음 (products:write)",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                          "const body = pm.response.json();",
                          "if (body.product_unique) store.set(\"product_unique\", body.product_unique);"
                        ]
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/products",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"name\": \"무지 에코백\",\n  \"sale_price\": 15000,\n  \"list_price\": 18000,\n  \"cost_price\": 6000,\n  \"stock_quantity\": 30,\n  \"status_type\": \"SALE\",\n  \"tax_type\": \"TAX\",\n  \"category_id\": \"{{category_id}}\",\n  \"display_status\": \"DISPLAY\",\n  \"stock_unlimited\": false,\n  \"search_keywords\": [\n    \"에코백\"\n  ],\n  \"management_code\": \"BG-ECO-001\",\n  \"delivery\": [\n    {\n      \"method\": \"PARCEL\",\n      \"template_id\": \"{{parcel_template_id}}\"\n    }\n  ]\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "옵션 1개 (products:write)",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                          "const body = pm.response.json();",
                          "if (body.product_unique) store.set(\"product_unique\", body.product_unique);"
                        ]
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/products",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"name\": \"코튼 양말\",\n  \"sale_price\": 5000,\n  \"cost_price\": 1500,\n  \"stock_quantity\": 0,\n  \"status_type\": \"SALE\",\n  \"tax_type\": \"TAX\",\n  \"category_id\": \"{{category_id}}\",\n  \"display_status\": \"DISPLAY\",\n  \"stock_unlimited\": false,\n  \"management_code\": \"SK-CT-001\",\n  \"option_info\": {\n    \"names\": [\n      \"색상\"\n    ],\n    \"pick_types\": [\n      \"SELECT\"\n    ],\n    \"manage_fields\": [\n      \"price\",\n      \"stockQuantity\",\n      \"usable\"\n    ]\n  },\n  \"options\": [\n    {\n      \"option_type\": \"COMBINATION\",\n      \"option_name1\": \"블랙\",\n      \"price\": 0,\n      \"stock_quantity\": 20,\n      \"usable\": true\n    },\n    {\n      \"option_type\": \"COMBINATION\",\n      \"option_name1\": \"화이트\",\n      \"price\": 0,\n      \"stock_quantity\": 15,\n      \"usable\": true\n    },\n    {\n      \"option_type\": \"COMBINATION\",\n      \"option_name1\": \"그레이\",\n      \"price\": 0,\n      \"stock_quantity\": 0,\n      \"usable\": true\n    }\n  ],\n  \"delivery\": [\n    {\n      \"method\": \"PARCEL\",\n      \"template_id\": \"{{parcel_template_id}}\"\n    }\n  ]\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "옵션 2개 (products:write)",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                          "const body = pm.response.json();",
                          "if (body.product_unique) store.set(\"product_unique\", body.product_unique);"
                        ]
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/products",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"name\": \"린넨 셔츠\",\n  \"sale_price\": 39000,\n  \"list_price\": 49000,\n  \"cost_price\": 18000,\n  \"stock_quantity\": 0,\n  \"status_type\": \"SALE\",\n  \"tax_type\": \"TAX\",\n  \"category_id\": \"{{category_id}}\",\n  \"display_status\": \"DISPLAY\",\n  \"stock_unlimited\": false,\n  \"management_code\": \"SH-LN-001\",\n  \"option_info\": {\n    \"names\": [\n      \"색상\",\n      \"사이즈\"\n    ],\n    \"pick_types\": [\n      \"SELECT\",\n      \"SELECT\"\n    ],\n    \"manage_fields\": [\n      \"price\",\n      \"stockQuantity\",\n      \"usable\"\n    ]\n  },\n  \"options\": [\n    {\n      \"option_type\": \"COMBINATION\",\n      \"option_name1\": \"화이트\",\n      \"option_name2\": \"M\",\n      \"price\": 0,\n      \"stock_quantity\": 10,\n      \"usable\": true\n    },\n    {\n      \"option_type\": \"COMBINATION\",\n      \"option_name1\": \"화이트\",\n      \"option_name2\": \"L\",\n      \"price\": 1000,\n      \"stock_quantity\": 5,\n      \"usable\": true\n    },\n    {\n      \"option_type\": \"COMBINATION\",\n      \"option_name1\": \"네이비\",\n      \"option_name2\": \"M\",\n      \"price\": 0,\n      \"stock_quantity\": 0,\n      \"usable\": true\n    }\n  ],\n  \"delivery\": [\n    {\n      \"method\": \"PARCEL\",\n      \"template_id\": \"{{parcel_template_id}}\"\n    }\n  ]\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "옵션 3개 (products:write)",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                          "const body = pm.response.json();",
                          "if (body.product_unique) store.set(\"product_unique\", body.product_unique);"
                        ]
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/products",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"name\": \"울 니트 가디건\",\n  \"sale_price\": 59000,\n  \"list_price\": 69000,\n  \"cost_price\": 25000,\n  \"stock_quantity\": 0,\n  \"status_type\": \"SALE\",\n  \"tax_type\": \"TAX\",\n  \"category_id\": \"{{category_id}}\",\n  \"display_status\": \"DISPLAY\",\n  \"stock_unlimited\": false,\n  \"management_code\": \"KN-WL-001\",\n  \"option_info\": {\n    \"names\": [\n      \"색상\",\n      \"사이즈\",\n      \"소재\"\n    ],\n    \"pick_types\": [\n      \"SELECT\",\n      \"SELECT\",\n      \"SELECT\"\n    ],\n    \"manage_fields\": [\n      \"price\",\n      \"stockQuantity\",\n      \"usable\"\n    ]\n  },\n  \"options\": [\n    {\n      \"option_type\": \"COMBINATION\",\n      \"option_name1\": \"베이지\",\n      \"option_name2\": \"M\",\n      \"option_name3\": \"울 100%\",\n      \"price\": 0,\n      \"stock_quantity\": 4,\n      \"usable\": true\n    },\n    {\n      \"option_type\": \"COMBINATION\",\n      \"option_name1\": \"베이지\",\n      \"option_name2\": \"L\",\n      \"option_name3\": \"울 100%\",\n      \"price\": 0,\n      \"stock_quantity\": 2,\n      \"usable\": true\n    },\n    {\n      \"option_type\": \"COMBINATION\",\n      \"option_name1\": \"차콜\",\n      \"option_name2\": \"M\",\n      \"option_name3\": \"울 혼방\",\n      \"price\": -5000,\n      \"stock_quantity\": 6,\n      \"usable\": true\n    },\n    {\n      \"option_type\": \"COMBINATION\",\n      \"option_name1\": \"차콜\",\n      \"option_name2\": \"L\",\n      \"option_name3\": \"울 혼방\",\n      \"price\": -5000,\n      \"stock_quantity\": 0,\n      \"usable\": true\n    }\n  ],\n  \"delivery\": [\n    {\n      \"method\": \"PARCEL\",\n      \"template_id\": \"{{parcel_template_id}}\"\n    }\n  ]\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "추가상품 (products:write)",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                          "const body = pm.response.json();",
                          "if (body.product_unique) store.set(\"product_unique\", body.product_unique);"
                        ]
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/products",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"name\": \"가죽 키링\",\n  \"sale_price\": 12000,\n  \"cost_price\": 4000,\n  \"stock_quantity\": 50,\n  \"status_type\": \"SALE\",\n  \"tax_type\": \"TAX\",\n  \"category_id\": \"{{category_id}}\",\n  \"display_status\": \"DISPLAY\",\n  \"stock_unlimited\": false,\n  \"management_code\": \"KR-LT-001\",\n  \"extra_options\": [\n    {\n      \"name\": \"선물포장\",\n      \"required\": false,\n      \"use_stock\": true,\n      \"values\": [\n        {\n          \"value\": \"기본 포장\",\n          \"price\": 0,\n          \"stock_quantity\": 100\n        },\n        {\n          \"value\": \"고급 포장\",\n          \"price\": 3000,\n          \"stock_quantity\": 20\n        }\n      ]\n    },\n    {\n      \"name\": \"각인 추가\",\n      \"required\": false,\n      \"use_stock\": false,\n      \"values\": [\n        {\n          \"value\": \"이니셜 각인\",\n          \"price\": 2000,\n          \"stock_quantity\": 0\n        }\n      ]\n    }\n  ],\n  \"delivery\": [\n    {\n      \"method\": \"PARCEL\",\n      \"template_id\": \"{{parcel_template_id}}\"\n    }\n  ]\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "주문 요청사항 (products:write)",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                          "const body = pm.response.json();",
                          "if (body.product_unique) store.set(\"product_unique\", body.product_unique);"
                        ]
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/products",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"name\": \"각인 텀블러\",\n  \"sale_price\": 25000,\n  \"cost_price\": 9000,\n  \"stock_quantity\": 40,\n  \"status_type\": \"SALE\",\n  \"tax_type\": \"TAX\",\n  \"category_id\": \"{{category_id}}\",\n  \"display_status\": \"DISPLAY\",\n  \"stock_unlimited\": false,\n  \"management_code\": \"TB-EN-001\",\n  \"custom_scope\": \"EACH\",\n  \"custom_options\": [\n    {\n      \"name\": \"각인 문구\",\n      \"input_type\": \"TEXT\",\n      \"required\": true,\n      \"guide\": \"한글 10자 · 영문 15자까지\",\n      \"fixed_guide\": false\n    },\n    {\n      \"name\": \"각인 서체\",\n      \"input_type\": \"SELECT\",\n      \"required\": true,\n      \"values\": [\n        \"고딕\",\n        \"명조\",\n        \"손글씨\"\n      ]\n    },\n    {\n      \"name\": \"로고 파일\",\n      \"input_type\": \"FILE\",\n      \"required\": false,\n      \"guide\": \"PNG · JPG 파일을 올려 주세요\"\n    }\n  ],\n  \"delivery\": [\n    {\n      \"method\": \"PARCEL\",\n      \"template_id\": \"{{parcel_template_id}}\"\n    }\n  ]\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                }
              ]
            },
            {
              "name": "상품 수정 (products:write)",
              "request": {
                "method": "PATCH",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{api_base}}/v1/shop/{{shop_unique}}/products/{{product_unique}}",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"stock_quantity\": 10\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            },
            {
              "name": "상품 삭제 (products:write)",
              "request": {
                "method": "DELETE",
                "url": "{{api_base}}/v1/shop/{{shop_unique}}/products/{{product_unique}}"
              }
            },
            {
              "name": "상품 복사 (products:write)",
              "request": {
                "method": "POST",
                "url": "{{api_base}}/v1/shop/{{shop_unique}}/products/{{product_unique}}/copy"
              }
            },
            {
              "name": "상품 일괄 처리",
              "item": [
                {
                  "name": "정보수정 · 판매가 (products:write)",
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/products/bulk",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"action\": \"update\",\n  \"product_uniques\": [\n    \"{{product_unique}}\"\n  ],\n  \"field\": \"sale-price\",\n  \"patch\": {\n    \"sale_price\": 12000\n  }\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "전시변경 · 끄기 (products:write)",
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/products/bulk",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"action\": \"display\",\n  \"product_uniques\": [\n    \"{{product_unique}}\"\n  ],\n  \"value\": false\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "판매변경 · 켜기 (products:write)",
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/products/bulk",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"action\": \"sale\",\n  \"product_uniques\": [\n    \"{{product_unique}}\"\n  ],\n  \"value\": true\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "삭제 (products:write)",
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/products/bulk",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"action\": \"delete\",\n  \"product_uniques\": [\n    \"{{product_unique}}\"\n  ]\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                }
              ]
            },
            {
              "name": "상품 카테고리",
              "item": [
                {
                  "name": "카테고리 목록 (products:read)",
                  "request": {
                    "method": "GET",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/categories"
                  }
                },
                {
                  "name": "카테고리 만들기 (products:write)",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                          "const body = pm.response.json();",
                          "const made = (body.items || []).filter((item) => item.name === JSON.parse(pm.request.body.raw).name).pop();",
                          "if (made) store.set(\"category_id\", made.category_unique);"
                        ]
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/categories",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"name\": \"봄 신상 {{$timestamp}}\",\n  \"displayed\": true,\n  \"list_type\": \"CARD\",\n  \"list_sort\": \"CREATED\"\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "카테고리 수정 (products:write)",
                  "request": {
                    "method": "PATCH",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/categories/{{category_id}}",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"access_permission\": \"MEMBER\",\n  \"access_level\": 0,\n  \"include_children\": true\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "카테고리 옮기기 (products:write)",
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/categories/{{category_id}}/move",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"parent_id\": null,\n  \"index\": 1\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "카테고리 삭제 — 하위까지 (products:write)",
                  "request": {
                    "method": "DELETE",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/categories/{{category_id}}"
                  }
                }
              ]
            },
            {
              "name": "상품 배지",
              "item": [
                {
                  "name": "배지 목록 (products:read)",
                  "request": {
                    "method": "GET",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/badges"
                  }
                },
                {
                  "name": "배지 생성 (products:write)",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                          "const body = pm.response.json();",
                          "if (body.badge_unique) store.set(\"badge_unique\", body.badge_unique);"
                        ]
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/badges",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"name\": \"NEW\",\n  \"design\": \"SIMPLE\",\n  \"shape\": \"TYPE2\",\n  \"text_color\": \"#FFFFFF\",\n  \"background_color\": \"#E53935\"\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "배지 수정 (products:write)",
                  "request": {
                    "method": "PATCH",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/badges/{{badge_unique}}",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"background_color\": \"#1E88E5\"\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "배지 삭제 (products:write)",
                  "request": {
                    "method": "DELETE",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/badges/{{badge_unique}}"
                  }
                }
              ]
            },
            {
              "name": "상품 아이콘",
              "item": [
                {
                  "name": "아이콘 목록 (products:read)",
                  "request": {
                    "method": "GET",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/icons"
                  }
                },
                {
                  "name": "아이콘 생성 (products:write)",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                          "const body = pm.response.json();",
                          "if (body.icon_unique) store.set(\"icon_unique\", body.icon_unique);"
                        ]
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/icons",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"name\": \"BEST\",\n  \"image\": \"{{file_id}}\"\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "아이콘 수정 (products:write)",
                  "request": {
                    "method": "PATCH",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/icons/{{icon_unique}}",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"name\": \"BEST 2\"\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "아이콘 삭제 (products:write)",
                  "request": {
                    "method": "DELETE",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/icons/{{icon_unique}}"
                  }
                }
              ]
            }
          ]
        },
        {
          "name": "템플릿 관리",
          "item": [
            {
              "name": "공통정보",
              "item": [
                {
                  "name": "공통정보 목록 (products:read)",
                  "request": {
                    "method": "GET",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/common"
                  }
                },
                {
                  "name": "공통정보 생성 (products:write)",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                          "const body = pm.response.json();",
                          "if (body.template_unique) store.set(\"common_template_id\", body.template_unique);"
                        ]
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/common",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"name\": \"교환 · 반품 안내 {{$timestamp}}\",\n  \"title\": \"교환 · 반품 안내\",\n  \"mode\": \"EDITOR\",\n  \"content\": \"<p>상품 수령 후 7일 이내 교환 · 반품할 수 있습니다.</p>\",\n  \"editor_content\": \"<p>상품 수령 후 7일 이내 교환 · 반품할 수 있습니다.</p>\"\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "공통정보 상세 (products:read)",
                  "request": {
                    "method": "GET",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/common/{{common_template_id}}"
                  }
                },
                {
                  "name": "공통정보 수정 (products:write)",
                  "request": {
                    "method": "PATCH",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/common/{{common_template_id}}",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"title\": \"교환 · 반품 · 환불 안내\"\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "공통정보 삭제 (products:write)",
                  "request": {
                    "method": "DELETE",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/common/{{common_template_id}}"
                  }
                }
              ]
            },
            {
              "name": "택배배송",
              "item": [
                {
                  "name": "택배배송 목록 (products:read)",
                  "request": {
                    "method": "GET",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/delivery?method=PARCEL"
                  }
                },
                {
                  "name": "택배배송 생성 (products:write)",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                          "const body = pm.response.json();",
                          "if (body.template_unique) store.set(\"parcel_template_id\", body.template_unique);"
                        ]
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/delivery",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"name\": \"기본 택배 {{$timestamp}}\",\n  \"method\": \"PARCEL\",\n  \"fee_type\": \"CONDITIONAL_FREE\",\n  \"base_fee\": 3000,\n  \"free_condition_amount\": 50000,\n  \"pay_type\": \"PREPAID\",\n  \"extra_fee\": {\n    \"jeju\": 3000,\n    \"island\": 5000\n  },\n  \"return_fee\": 3000,\n  \"exchange_fee\": 6000,\n  \"notice\": \"평일 오후 2시 이전 주문은 당일 출고됩니다.\"\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "택배배송 상세 (products:read)",
                  "request": {
                    "method": "GET",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/delivery/{{parcel_template_id}}"
                  }
                },
                {
                  "name": "택배배송 수정 (products:write)",
                  "request": {
                    "method": "PATCH",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/delivery/{{parcel_template_id}}",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"base_fee\": 3500\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "택배배송 삭제 (products:write)",
                  "request": {
                    "method": "DELETE",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/delivery/{{parcel_template_id}}"
                  }
                }
              ]
            },
            {
              "name": "직접배송",
              "item": [
                {
                  "name": "직접배송 목록 (products:read)",
                  "request": {
                    "method": "GET",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/delivery?method=DIRECT"
                  }
                },
                {
                  "name": "직접배송 생성 (products:write)",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                          "const body = pm.response.json();",
                          "if (body.template_unique) store.set(\"direct_template_id\", body.template_unique);"
                        ]
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/delivery",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"name\": \"직접배송 수도권 {{$timestamp}}\",\n  \"method\": \"DIRECT\",\n  \"fee_type\": \"FREE\",\n  \"base_fee\": 0,\n  \"pay_type\": \"PREPAID\",\n  \"delivery_area\": {\n    \"use\": true,\n    \"zones\": [\n      {\n        \"codes\": [\n          \"11\",\n          \"28\",\n          \"41\"\n        ],\n        \"extra_fee\": 0\n      }\n    ]\n  },\n  \"install\": {\n    \"use\": true,\n    \"type\": \"FREE\",\n    \"notice\": \"설치 기사가 방문합니다.\"\n  }\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "직접배송 상세 (products:read)",
                  "request": {
                    "method": "GET",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/delivery/{{direct_template_id}}"
                  }
                },
                {
                  "name": "직접배송 수정 (products:write)",
                  "request": {
                    "method": "PATCH",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/delivery/{{direct_template_id}}",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"install\": {\n    \"use\": true,\n    \"type\": \"PAID\",\n    \"notice\": \"설치비 별도\"\n  }\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "직접배송 삭제 (products:write)",
                  "request": {
                    "method": "DELETE",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/delivery/{{direct_template_id}}"
                  }
                }
              ]
            },
            {
              "name": "퀵배송",
              "item": [
                {
                  "name": "퀵배송 목록 (products:read)",
                  "request": {
                    "method": "GET",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/delivery?method=QUICK"
                  }
                },
                {
                  "name": "퀵배송 생성 (products:write)",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                          "const body = pm.response.json();",
                          "if (body.template_unique) store.set(\"quick_template_id\", body.template_unique);"
                        ]
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/delivery",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"name\": \"서울 퀵 {{$timestamp}}\",\n  \"method\": \"QUICK\",\n  \"fee_type\": \"PAID\",\n  \"base_fee\": 0,\n  \"pay_type\": \"COLLECT\",\n  \"quick\": {\n    \"collect_notice\": \"거리별 착불(기사님께 결제)\",\n    \"time_use\": true,\n    \"start\": \"10:00\",\n    \"end\": \"17:00\",\n    \"days\": [\n      \"MON\",\n      \"TUE\",\n      \"WED\",\n      \"THU\",\n      \"FRI\"\n    ]\n  },\n  \"delivery_area\": {\n    \"use\": true,\n    \"zones\": [\n      {\n        \"codes\": [\n          \"11\"\n        ],\n        \"extra_fee\": 0\n      }\n    ]\n  }\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "퀵배송 상세 (products:read)",
                  "request": {
                    "method": "GET",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/delivery/{{quick_template_id}}"
                  }
                },
                {
                  "name": "퀵배송 수정 (products:write)",
                  "request": {
                    "method": "PATCH",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/delivery/{{quick_template_id}}",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"quick\": {\n    \"collect_notice\": \"거리별 착불\",\n    \"time_use\": true,\n    \"start\": \"09:00\",\n    \"end\": \"18:00\",\n    \"days\": [\n      \"MON\",\n      \"TUE\",\n      \"WED\",\n      \"THU\",\n      \"FRI\",\n      \"SAT\"\n    ]\n  }\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "퀵배송 삭제 (products:write)",
                  "request": {
                    "method": "DELETE",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/delivery/{{quick_template_id}}"
                  }
                }
              ]
            },
            {
              "name": "방문수령",
              "item": [
                {
                  "name": "방문수령 목록 (products:read)",
                  "request": {
                    "method": "GET",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/delivery?method=PICKUP"
                  }
                },
                {
                  "name": "방문수령 생성 (products:write)",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                          "const body = pm.response.json();",
                          "if (body.template_unique) store.set(\"pickup_template_id\", body.template_unique);"
                        ]
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/delivery",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"name\": \"본점 방문수령 {{$timestamp}}\",\n  \"method\": \"PICKUP\",\n  \"pickup\": {\n    \"store_name\": \"본점\",\n    \"phone\": \"0212345678\",\n    \"address\": {\n      \"zipcode\": \"04524\",\n      \"address1\": \"서울 중구 세종대로 110\",\n      \"address2\": \"1층\"\n    },\n    \"open\": \"10:00\",\n    \"close\": \"19:00\",\n    \"break_use\": true,\n    \"break_start\": \"12:00\",\n    \"break_end\": \"13:00\",\n    \"holiday_use\": true,\n    \"holidays\": [\n      \"SUN\",\n      \"HOLIDAY\"\n    ],\n    \"shipping_address\": false\n  }\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "방문수령 상세 (products:read)",
                  "request": {
                    "method": "GET",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/delivery/{{pickup_template_id}}"
                  }
                },
                {
                  "name": "방문수령 수정 (products:write)",
                  "request": {
                    "method": "PATCH",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/delivery/{{pickup_template_id}}",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"pickup\": {\n    \"store_name\": \"본점\",\n    \"phone\": \"0212345678\",\n    \"address\": {\n      \"zipcode\": \"04524\",\n      \"address1\": \"서울 중구 세종대로 110\",\n      \"address2\": \"1층\"\n    },\n    \"open\": \"10:00\",\n    \"close\": \"20:00\",\n    \"break_use\": false,\n    \"break_start\": \"\",\n    \"break_end\": \"\",\n    \"holiday_use\": true,\n    \"holidays\": [\n      \"SUN\",\n      \"HOLIDAY\"\n    ],\n    \"shipping_address\": false\n  }\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "방문수령 삭제 (products:write)",
                  "request": {
                    "method": "DELETE",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/delivery/{{pickup_template_id}}"
                  }
                }
              ]
            },
            {
              "name": "색상",
              "item": [
                {
                  "name": "색상 목록 (products:read)",
                  "request": {
                    "method": "GET",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/colors"
                  }
                },
                {
                  "name": "색상 생성 (products:write)",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                          "store.set(\"color_unique\", \"\"); store.set(\"color_name\", JSON.parse(pm.request.body.raw).items[0].name);"
                        ]
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/colors",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"items\": [\n    {\n      \"name\": \"샌드베이지 {{$timestamp}}\",\n      \"hex\": \"#D8C3A5\"\n    }\n  ]\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "만든 색상 찾기 (products:read)",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                          "const made = (pm.response.json().items || []).find((item) => item.name === store.get(\"color_name\"));",
                          "if (made) store.set(\"color_unique\", made.color_unique);"
                        ]
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/colors"
                  }
                },
                {
                  "name": "색상 상세 (products:read)",
                  "request": {
                    "method": "GET",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/colors/{{color_unique}}"
                  }
                },
                {
                  "name": "색상 수정 (products:write)",
                  "request": {
                    "method": "PATCH",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/colors/{{color_unique}}",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"hex\": \"#D2B48C\",\n  \"keywords\": [\n    \"베이지\",\n    \"모래색\"\n  ]\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "색상 삭제 (products:write)",
                  "request": {
                    "method": "DELETE",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/colors/{{color_unique}}"
                  }
                }
              ]
            },
            {
              "name": "사이즈",
              "item": [
                {
                  "name": "사이즈 목록 (products:read)",
                  "request": {
                    "method": "GET",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/sizes"
                  }
                },
                {
                  "name": "사이즈 생성 (products:write)",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                          "const body = pm.response.json();",
                          "if (body.size_template_unique) store.set(\"size_template_id\", body.size_template_unique);"
                        ]
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/sizes",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"name\": \"상의 (S~XL) {{$timestamp}}\",\n  \"sizes\": [\n    \"S\",\n    \"M\",\n    \"L\",\n    \"XL\"\n  ]\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "사이즈 상세 (products:read)",
                  "request": {
                    "method": "GET",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/sizes/{{size_template_id}}"
                  }
                },
                {
                  "name": "사이즈 수정 (products:write)",
                  "request": {
                    "method": "PATCH",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/sizes/{{size_template_id}}",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"sizes\": [\n    \"XS\",\n    \"S\",\n    \"M\",\n    \"L\",\n    \"XL\"\n  ]\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "사이즈 삭제 (products:write)",
                  "request": {
                    "method": "DELETE",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/sizes/{{size_template_id}}"
                  }
                }
              ]
            },
            {
              "name": "맞춤형 리뷰",
              "item": [
                {
                  "name": "맞춤형 리뷰 목록 (products:read)",
                  "request": {
                    "method": "GET",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/reviews"
                  }
                },
                {
                  "name": "맞춤형 리뷰 생성 (products:write)",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                          "const body = pm.response.json();",
                          "if (body.review_template_unique) store.set(\"review_template_id\", body.review_template_unique);"
                        ]
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/reviews",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"name\": \"의류 리뷰 {{$timestamp}}\",\n  \"profile_use\": true,\n  \"profile_fields\": [\n    \"HEIGHT\",\n    \"WEIGHT\",\n    \"USUAL_SIZE\"\n  ],\n  \"surveys\": [\n    {\n      \"title\": \"사이즈\",\n      \"answers\": [\n        \"작아요\",\n        \"정사이즈에요\",\n        \"커요\"\n      ]\n    },\n    {\n      \"title\": \"색상\",\n      \"answers\": [\n        \"화면보다 어두워요\",\n        \"화면과 같아요\",\n        \"화면보다 밝아요\"\n      ]\n    }\n  ]\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "맞춤형 리뷰 상세 (products:read)",
                  "request": {
                    "method": "GET",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/reviews/{{review_template_id}}"
                  }
                },
                {
                  "name": "맞춤형 리뷰 수정 (products:write)",
                  "request": {
                    "method": "PATCH",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/reviews/{{review_template_id}}",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"name\": \"의류 리뷰 (상의) {{$timestamp}}\"\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "맞춤형 리뷰 삭제 (products:write)",
                  "request": {
                    "method": "DELETE",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/templates/reviews/{{review_template_id}}"
                  }
                }
              ]
            },
            {
              "name": "배송 할증지역",
              "item": [
                {
                  "name": "이 쇼핑몰 지역 목록 (products:read)",
                  "request": {
                    "method": "GET",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/surcharges"
                  }
                },
                {
                  "name": "등록할 도로 찾기 (products:read)",
                  "request": {
                    "method": "GET",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/surcharges/juso?keyword=%EC%84%B8%EC%A2%85%EB%8C%80%EB%A1%9C"
                  }
                },
                {
                  "name": "지역 더하기 (products:write)",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                          "const body = pm.response.json();",
                          "if (body.surcharge_unique) store.set(\"surcharge_unique\", body.surcharge_unique);"
                        ]
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/surcharges",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"type\": \"INCLUDE\",\n  \"kind\": \"ISLAND\",\n  \"road_code\": \"111402005001\",\n  \"adm_cd\": \"1114010300\",\n  \"address\": \"서울특별시 중구 세종대로\",\n  \"memo\": \"API 시험\"\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "지역 수정 (products:write)",
                  "request": {
                    "method": "PATCH",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/surcharges/{{surcharge_unique}}",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"memo\": \"API 시험 (수정)\"\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "지역 삭제 (products:write)",
                  "request": {
                    "method": "DELETE",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/surcharges/{{surcharge_unique}}"
                  }
                },
                {
                  "name": "기본 할증지역 검색 (products:read)",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                          "const body = pm.response.json();",
                          "if (!store.get(\"area_unique\") && body.items && body.items[0]) store.set(\"area_unique\", body.items[0].area_unique);"
                        ]
                      }
                    }
                  ],
                  "request": {
                    "method": "GET",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/surcharges/base?keyword=%EC%9A%B8%EB%A6%89&size=10"
                  }
                },
                {
                  "name": "기본 지역 빼기 (products:write)",
                  "request": {
                    "method": "PATCH",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/surcharges/base",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"area_unique\": \"{{area_unique}}\",\n  \"excluded\": true\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "기본 지역 되돌리기 (products:write)",
                  "request": {
                    "method": "PATCH",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/surcharges/base",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"area_unique\": \"{{area_unique}}\",\n  \"excluded\": false\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                }
              ]
            }
          ]
        },
        {
          "name": "회원 관리",
          "item": [
            {
              "name": "회원 목록 (customers:read)",
              "request": {
                "method": "GET",
                "url": "{{api_base}}/v1/shop/{{shop_unique}}/members?size=10"
              }
            },
            {
              "name": "회원 상세 (customers:read)",
              "request": {
                "method": "GET",
                "url": "{{api_base}}/v1/shop/{{shop_unique}}/members/{{member_unique}}"
              }
            },
            {
              "name": "회원 수정 (customers:write)",
              "request": {
                "method": "PATCH",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{api_base}}/v1/shop/{{shop_unique}}/members/{{member_unique}}",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"memo\": \"API 시험\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            },
            {
              "name": "회원 등급",
              "item": [
                {
                  "name": "회원 등급 목록 (customers:read)",
                  "request": {
                    "method": "GET",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/levels"
                  }
                },
                {
                  "name": "회원 등급 만들기 (customers:write)",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                          "const body = pm.response.json();",
                          "if (body.level_unique) store.set(\"level_unique\", body.level_unique);"
                        ]
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/levels",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"name\": \"골드\",\n  \"discount\": {\n    \"enabled\": true,\n    \"threshold\": 30000,\n    \"value\": 10,\n    \"unit\": \"PERCENT\",\n    \"max_amount\": 5000\n  },\n  \"reward\": {\n    \"enabled\": true,\n    \"threshold\": 0,\n    \"value\": 2,\n    \"unit\": \"PERCENT\"\n  }\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "회원 등급 수정 (customers:write)",
                  "request": {
                    "method": "PATCH",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/levels/{{level_unique}}",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"discount\": {\n    \"value\": 15\n  }\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "회원 등급 삭제 (customers:write)",
                  "request": {
                    "method": "DELETE",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/levels/{{level_unique}}"
                  }
                }
              ]
            },
            {
              "name": "회원 적립금",
              "item": [
                {
                  "name": "적립금 잔액 · 내역 (customers:read)",
                  "request": {
                    "method": "GET",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/members/{{member_unique}}/points?limit=10"
                  }
                },
                {
                  "name": "적립금 지급 (customers:write)",
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/members/{{member_unique}}/points",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"kind\": \"MANUAL_EARN\",\n  \"amount\": 1000,\n  \"reason\": \"API 시험 지급\"\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "적립금 차감 (customers:write)",
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/members/{{member_unique}}/points",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"kind\": \"MANUAL_DEDUCT\",\n  \"amount\": 1000,\n  \"reason\": \"API 시험 회수\"\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                }
              ]
            }
          ]
        },
        {
          "name": "쿠폰",
          "item": [
            {
              "name": "쿠폰 목록 (promotions:read)",
              "request": {
                "method": "GET",
                "url": "{{api_base}}/v1/shop/{{shop_unique}}/coupons"
              }
            },
            {
              "name": "쿠폰 생성 (promotions:write)",
              "event": [
                {
                  "listen": "test",
                  "script": {
                    "type": "text/javascript",
                    "exec": [
                      "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                      "const body = pm.response.json();",
                      "if (body.coupon_unique) store.set(\"coupon_unique\", body.coupon_unique);"
                    ]
                  }
                }
              ],
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{api_base}}/v1/shop/{{shop_unique}}/coupons",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"name\": \"가을맞이 3,000원 할인\",\n  \"coupon_type\": \"ORDER\",\n  \"discount_type\": \"AMOUNT\",\n  \"discount_value\": 3000,\n  \"min_order_amount\": 30000,\n  \"period_type\": \"DAYS\",\n  \"period_days\": 7,\n  \"per_person_limit\": 1\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            },
            {
              "name": "쿠폰 상세 (promotions:read)",
              "request": {
                "method": "GET",
                "url": "{{api_base}}/v1/shop/{{shop_unique}}/coupons/{{coupon_unique}}"
              }
            },
            {
              "name": "쿠폰 수정 (promotions:write)",
              "request": {
                "method": "PATCH",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{api_base}}/v1/shop/{{shop_unique}}/coupons/{{coupon_unique}}",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"status\": \"stop\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            },
            {
              "name": "쿠폰 이용 내역 (promotions:read)",
              "request": {
                "method": "GET",
                "url": "{{api_base}}/v1/shop/{{shop_unique}}/coupons/{{coupon_unique}}/issues"
              }
            },
            {
              "name": "쿠폰 이용 내역 — 모든 쿠폰 (promotions:read)",
              "request": {
                "method": "GET",
                "url": "{{api_base}}/v1/shop/{{shop_unique}}/coupons/issues?status=HOLD&page=1&size=20"
              }
            },
            {
              "name": "쿠폰 삭제 (promotions:write)",
              "request": {
                "method": "DELETE",
                "url": "{{api_base}}/v1/shop/{{shop_unique}}/coupons/{{coupon_unique}}"
              }
            },
            {
              "name": "카카오톡 채널 쿠폰(다른번호 발급)",
              "item": [
                {
                  "name": "다른번호 발급 쿠폰 생성 (promotions:write)",
                  "event": [
                    {
                      "listen": "test",
                      "script": {
                        "type": "text/javascript",
                        "exec": [
                          "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                          "const body = pm.response.json();",
                          "if (body.coupon_unique) store.set(\"coupon_unique\", body.coupon_unique);"
                        ]
                      }
                    }
                  ],
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/coupons",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"name\": \"카카오 채널 친구 쿠폰\",\n  \"coupon_type\": \"PRODUCT\",\n  \"discount_type\": \"PERCENT\",\n  \"discount_value\": 10,\n  \"max_discount\": 5000,\n  \"serial_mode\": \"UNIQUE\",\n  \"period_type\": \"DAYS\",\n  \"period_days\": 30\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "쿠폰번호 만들기 (promotions:write)",
                  "request": {
                    "method": "POST",
                    "header": [
                      {
                        "key": "Content-Type",
                        "value": "application/json"
                      }
                    ],
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/coupons/{{coupon_unique}}/serials",
                    "body": {
                      "mode": "raw",
                      "raw": "{\n  \"count\": 100\n}",
                      "options": {
                        "raw": {
                          "language": "json"
                        }
                      }
                    }
                  }
                },
                {
                  "name": "쿠폰번호 읽기 (promotions:read)",
                  "request": {
                    "method": "GET",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/coupons/{{coupon_unique}}/serials"
                  }
                },
                {
                  "name": "쿠폰 삭제 (promotions:write)",
                  "request": {
                    "method": "DELETE",
                    "url": "{{api_base}}/v1/shop/{{shop_unique}}/coupons/{{coupon_unique}}"
                  }
                }
              ]
            }
          ]
        },
        {
          "name": "MCP",
          "item": [
            {
              "name": "tools/list",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{api_base}}/mcp/{{shop_id}}",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 1,\n  \"method\": \"tools/list\"\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            },
            {
              "name": "get_shop",
              "request": {
                "method": "POST",
                "header": [
                  {
                    "key": "Content-Type",
                    "value": "application/json"
                  }
                ],
                "url": "{{api_base}}/mcp/{{shop_id}}",
                "body": {
                  "mode": "raw",
                  "raw": "{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 2,\n  \"method\": \"tools/call\",\n  \"params\": {\n    \"name\": \"get_shop\",\n    \"arguments\": {}\n  }\n}",
                  "options": {
                    "raw": {
                      "language": "json"
                    }
                  }
                }
              }
            }
          ]
        }
      ]
    },
    {
      "name": "회원 API (회원 토큰)",
      "auth": {
        "type": "oauth2",
        "oauth2": [
          {
            "key": "tokenName",
            "value": "Mall Story 회원",
            "type": "string"
          },
          {
            "key": "grant_type",
            "value": "authorization_code_with_pkce",
            "type": "string"
          },
          {
            "key": "authUrl",
            "value": "{{shop_url}}/oauth/authorize",
            "type": "string"
          },
          {
            "key": "accessTokenUrl",
            "value": "{{api_base}}/api/oauth/token",
            "type": "string"
          },
          {
            "key": "clientId",
            "value": "{{client_id}}",
            "type": "string"
          },
          {
            "key": "clientSecret",
            "value": "{{client_secret}}",
            "type": "string"
          },
          {
            "key": "scope",
            "value": "me:read me:write",
            "type": "string"
          },
          {
            "key": "state",
            "value": "postman-{{$timestamp}}",
            "type": "string"
          },
          {
            "key": "challengeAlgorithm",
            "value": "S256",
            "type": "string"
          },
          {
            "key": "useBrowser",
            "value": true,
            "type": "boolean"
          },
          {
            "key": "redirect_uri",
            "value": "https://oauth.pstmn.io/v1/callback",
            "type": "string"
          },
          {
            "key": "client_authentication",
            "value": "body",
            "type": "string"
          },
          {
            "key": "addTokenTo",
            "value": "header",
            "type": "string"
          },
          {
            "key": "headerPrefix",
            "value": "Bearer",
            "type": "string"
          }
        ]
      },
      "item": [
        {
          "name": "토큰 정보 조회",
          "request": {
            "method": "GET",
            "url": "{{api_base}}/v1/token"
          }
        },
        {
          "name": "내 정보 (me:read)",
          "request": {
            "method": "GET",
            "url": "{{api_base}}/v1/me"
          }
        },
        {
          "name": "내 정보 수정 (me:write)",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{api_base}}/v1/me",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"consent_sms\": false\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "회원 로그인 (아이디 · 비밀번호)",
      "auth": {
        "type": "bearer",
        "bearer": [
          {
            "key": "token",
            "value": "{{member_access_token}}",
            "type": "string"
          }
        ]
      },
      "item": [
        {
          "name": "회원 로그인",
          "event": [
            {
              "listen": "test",
              "script": {
                "type": "text/javascript",
                "exec": [
                  "const store = pm.environment.name ? pm.environment : pm.collectionVariables;",
                  "const body = pm.response.json();",
                  "if (body.access_token) {",
                  "    store.set(\"member_access_token\", body.access_token);",
                  "    store.set(\"member_unique\", body.member_unique);",
                  "}"
                ]
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{api_base}}/v1/member/login",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"client_id\": \"{{client_id}}\",\n  \"client_secret\": \"{{client_secret}}\",\n  \"login_id\": \"{{member_login_id}}\",\n  \"password\": \"{{member_password}}\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "auth": {
              "type": "noauth"
            }
          }
        },
        {
          "name": "내 정보 (me:read)",
          "request": {
            "method": "GET",
            "url": "{{api_base}}/v1/me"
          }
        },
        {
          "name": "내 정보 수정 (me:write)",
          "request": {
            "method": "PATCH",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{api_base}}/v1/me",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"consent_sms\": false\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "토큰 정보 조회",
          "request": {
            "method": "GET",
            "url": "{{api_base}}/v1/token"
          }
        },
        {
          "name": "쇼핑몰 카테고리 (등급가 기준)",
          "request": {
            "method": "GET",
            "url": "{{api_base}}/v1/store/categories"
          }
        },
        {
          "name": "카테고리 상품 (등급가)",
          "request": {
            "method": "GET",
            "url": "{{api_base}}/v1/store/categories/all/products?size=20"
          }
        },
        {
          "name": "상품 상세 (등급가)",
          "request": {
            "method": "GET",
            "url": "{{api_base}}/v1/store/products/{{product_no}}"
          }
        }
      ]
    },
    {
      "name": "쇼핑몰 상품 조회 (비회원)",
      "auth": {
        "type": "noauth"
      },
      "item": [
        {
          "name": "쇼핑몰 카테고리",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-Client-Id",
                "value": "{{client_id}}"
              }
            ],
            "url": "{{api_base}}/v1/store/categories"
          }
        },
        {
          "name": "카테고리 상품",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-Client-Id",
                "value": "{{client_id}}"
              }
            ],
            "url": "{{api_base}}/v1/store/categories/all/products?size=20"
          }
        },
        {
          "name": "상품 상세",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "X-Client-Id",
                "value": "{{client_id}}"
              }
            ],
            "url": "{{api_base}}/v1/store/products/{{product_no}}"
          }
        }
      ]
    },
    {
      "name": "메타데이터 (인증 없음)",
      "auth": {
        "type": "noauth"
      },
      "item": [
        {
          "name": "인가 서버",
          "request": {
            "method": "GET",
            "url": "{{api_base}}/.well-known/oauth-authorization-server"
          }
        },
        {
          "name": "보호 리소스 (REST)",
          "request": {
            "method": "GET",
            "url": "{{api_base}}/.well-known/oauth-protected-resource/v1"
          }
        }
      ]
    }
  ]
}