Mall StoryDevelopers
관리자 API상품 관리소유자 토큰

상품 복사

상품을 한 벌 더 만듭니다. 복사본은 "[복사] 원본명" · 전시중지 · 판매중지로 생깁니다.

업데이트됨 10.19 — 상품 복사가 생겼습니다

무엇인가요

상품을 그대로 한 벌 더 만듭니다. 상품 정보 · 이미지 · 옵션 · 상세설명 · 상품정보제공고시가 함께 갑니다. 쇼핑몰 관리자 > 상품 관리 줄 메뉴의 복사와 같습니다. 비슷한 상품을 여러 개 낼 때 상세를 읽어 등록으로 다시 보내는 대신 이 요청 한 번으로 만들고, 달라지는 칸만 수정합니다.

칸복사본
name원본 이름 앞에 [복사] 가 붙습니다(255자를 넘으면 뒤를 자릅니다)
display_status · status_typeSTOP(전시중지) · SUSPENSION(판매중지) — 같은 상품이 손님 화면에 둘 보이지 않게. 고친 뒤 켭니다
product_no새 번호
이미지 · 상세설명 속 그림 · 옵션 이미지 · 고시 이미지새 파일로 다시 올립니다 — 원본을 지워도 복사본의 그림은 남습니다. 쇼핑몰 저장 용량을 씁니다
created · updated · 판매 · 후기 누계 · source새로 시작합니다
management_code · search_keywords · seo · 그 밖원본 그대로

요청

POSThttps://api.mallstory.kr/v1/shop/{shop_unique}/products/{product_unique}/copy

본문은 없습니다. 복사본의 모양은 관리자 화면과 같아서 고를 것이 없습니다.

bash요청
curl -X POST 'https://api.mallstory.kr/v1/shop/{shop_unique}/products/6accaa68c2ca90eedea62100/copy' \
  -H 'Authorization: Bearer msat_8Hk2wQ7...'
부를 때마다 하나씩 생깁니다
같은 요청을 다시 보내면 복사본이 또 생깁니다. 응답을 받지 못했을 때는 상품 목록에서 [복사] 로 시작하는 상품이 생겼는지 먼저 확인하세요.

응답

상품 상세와 같은 {product, options} 입니다 — 바로 고치려면 옵션 키가 필요해서입니다. 원가(cost_price)도 상세와 같이 실립니다.

json201 Created
{
  "product": {
    "product_no": 51,
    "status_type": "SUSPENSION",
    "sale_type": "NEW",
    "display_order": 0,
    "view_permission": "GUEST",
    "view_level": 0,
    "benefit_limit": {
      "coupon": false,
      "level_discount": false,
      "point": false
    },
    "order_limit": {
      "enabled": false,
      "basis": "EACH",
      "min": 0,
      "max": 0,
      "max_check": "ORDER"
    },
    "adult_only": false,
    "restock_alert_excluded": false,
    "order_permission": "GUEST",
    "order_level": 0,
    "brand": "",
    "supplier": "",
    "management_code": "SH-LN-001",
    "search_keywords": [
      "셔츠",
      "린넨"
    ],
    "seo": {
      "mode": "AUTO",
      "page_title": "",
      "meta_description": "",
      "target_keywords": ""
    },
    "name": "[복사] 린넨 셔츠",
    "promotion_text": "봄 신상 10% 할인",
    "sale_price": 39000,
    "list_price": 49000,
    "cost_price": 18000,
    "tax_type": "TAX",
    "stock_quantity": 15,
    "stock_unlimited": false,
    "custom_options": [],
    "extra_options": [],
    "video_url": "",
    "shippable": true,
    "bundle_shipping": "POSSIBLE",
    "collect_clearance_code": false,
    "discount": {
      "immediate": {
        "enabled": false,
        "value": 0,
        "unit": "WON"
      },
      "period": {
        "enabled": false,
        "value": 0,
        "unit": "WON",
        "start_at": null,
        "end_at": null
      },
      "bulk": {
        "enabled": false,
        "rules": []
      }
    },
    "reward": {
      "enabled": false,
      "value": 0,
      "unit": "WON",
      "basis": "SALE_PRICE"
    },
    "source": {
      "type": "SELF",
      "external_code": null,
      "imported_at": null
    },
    "created": "2026-10-19T02:14:08.311Z",
    "updated": "2026-10-19T02:14:08.311Z",
    "deleted": null,
    "color_ids": [],
    "size_template_id": null,
    "sizes": [],
    "review_template_id": null,
    "option_info": {
      "names": [
        "색상",
        "사이즈"
      ],
      "pick_types": [
        "SELECT",
        "SELECT"
      ],
      "manage_fields": [
        "price",
        "stockQuantity",
        "usable"
      ],
      "generation": "DIRECT",
      "size_template_id": null
    },
    "display_status": "STOP",
    "display_start_at": null,
    "display_end_at": null,
    "badge_ids": [],
    "sale_start_at": null,
    "sale_end_at": null,
    "detail_content_body": "<p>통기성이 좋은 린넨 100% 셔츠입니다.</p>",
    "images": [],
    "product_info_provided_notice": null,
    "product_unique": "6accaa68c2ca90eedea62177",
    "category_id": "6aab6a9ddd8941ed187ffe4b",
    "display_category_ids": [],
    "top_template_ids": [],
    "bottom_template_ids": [],
    "delivery": []
  },
  "options": [
    {
      "option_type": "COMBINATION",
      "option_name1": "화이트",
      "option_name2": "M",
      "option_name3": "",
      "price": 0,
      "stock_quantity": 10,
      "cost_price": null,
      "usable": true,
      "seller_manager_code": "",
      "sort_order": 0,
      "created": "2026-10-19T02:14:08.311Z",
      "updated": "2026-10-19T02:14:08.311Z",
      "deleted": null,
      "color_id": null,
      "color_hex": "",
      "image": null,
      "option_unique": "6accaa68c2ca90eedea62178",
      "product_unique": "6accaa68c2ca90eedea62177"
    },
    {
      "option_type": "COMBINATION",
      "option_name1": "화이트",
      "option_name2": "L",
      "option_name3": "",
      "price": 1000,
      "stock_quantity": 5,
      "cost_price": null,
      "usable": true,
      "seller_manager_code": "",
      "sort_order": 1,
      "created": "2026-10-19T02:14:08.311Z",
      "updated": "2026-10-19T02:14:08.311Z",
      "deleted": null,
      "color_id": null,
      "color_hex": "",
      "image": null,
      "option_unique": "6accaa68c2ca90eedea62179",
      "product_unique": "6accaa68c2ca90eedea62177"
    },
    {
      "option_type": "COMBINATION",
      "option_name1": "네이비",
      "option_name2": "M",
      "option_name3": "",
      "price": 0,
      "stock_quantity": 0,
      "cost_price": null,
      "usable": true,
      "seller_manager_code": "",
      "sort_order": 2,
      "created": "2026-10-19T02:14:08.311Z",
      "updated": "2026-10-19T02:14:08.311Z",
      "deleted": null,
      "color_id": null,
      "color_hex": "",
      "image": null,
      "option_unique": "6accaa68c2ca90eedea621710",
      "product_unique": "6accaa68c2ca90eedea62177"
    }
  ]
}

오류

상태code언제
404ProductNotExist없는 키이거나 이미 지운 상품
413StorageQuotaExceeded이미지를 다시 올리면 쇼핑몰 저장 용량을 넘음 — 쓰지 않는 파일을 지운 뒤 다시
502FileServerUnreachable파일 서버에 닿지 못함 — 잠시 뒤 다시
502FileDownloadFailed파일 서버에 닿지 못함 — 잠시 뒤 다시
502FileUploadFailed파일 서버에 닿지 못함 — 잠시 뒤 다시
401MissingLoginSessionAuthorization 헤더에 Bearer 토큰이 없음
401InvalidAccessToken토큰이 틀리거나 만료 · 폐기됨
403InsufficientScope토큰에 products:read · products:write 가 없음