번들이 가격과 재고를 망가뜨리는 이유\n\n번들은 쇼핑하는 사람에게는 단순합니다: “함께 사면 할인”. 하지만 스토어 내부에서는 가격, 세금, 프로모션, 원가(COGS), 재고를 동시에 건드립니다. 명확한 규칙을 세우지 않으면 체크아웃은 겉으로 보기엔 괜찮아 보여도 보고서는 서서히 현실과 어긋나기 시작합니다.\n\n보통 처음에 잘못되는 두 가지는 할인 표시가 불명확하고 재고 수치가 신뢰할 수 없게 되는 점입니다. 고객은 번들 가격을 보고 추가 프로모 코드나 “비교가” 가격, 항목별 할인 등이 중첩되어 절약액을 파악하기 어렵다고 느낄 수 있습니다. 내부 시스템은 번들이 한 단위로 팔렸는지 여러 항목이 팔렸는지 합의하지 못할 수도 있습니다.\n\n주의할 주요 위험은 다음 두 가지입니다:\n\n- 할인 불명확: 고객이 자신이 올바르게 청구됐는지 묻는 CS 문의가 늘고, 재무팀은 수익을 쉽게 설명할 수 없습니다.\n- 잘못된 재고 수치: 키트를 팔았는데 키트 SKU만 감소하고 구성품은 줄지 않으면 부품을 초과판매하거나 과잉 재고에 현금이 묶입니다.\n\n번들이 수익성 있어 보이지만 실제로 손해를 볼 수도 있습니다. 매출이 번들 수준에서 기록되는데 비용은 구성품 수준에서 관리되거나 전혀 추적되지 않는 경우입니다. 대시보드에는 번들 총마진이 건강해 보이지만 비싼 구성품의 실제 비용이 무시되거나 중복 할인되거나 환불이 예상보다 자주 발생할 수 있습니다.\n\n"정확성"은 다음 네 가지 실무적 의미를 가져야 합니다:\n\n1) 체크아웃이 약속과 일치: 고객이 번들 가격과 절약액을 일관되게 볼 수 있어야 합니다.\n\n2) 판매 보고가 설명 가능: “각 항목을 실제로 몇 개 팔았는가?”와 “우리가 준 할인은 얼마인가?”에 답할 수 있어야 합니다.\n\n3) 재고가 정직함: 번들이 하나 출고되면 창고에서 따로 집어도 각 구성품 수량이 정확히 차감되어야 합니다.\n\n4) 반품이 데이터 오염을 일으키지 않음: 고객이 키트 중 한 항목만 반품하면 시스템이 수익, 할인, 재고를 추정하지 않고 정확히 조정할 수 있어야 합니다.\n\n명확한 제품 번들 가격 수학과 단일 재고 규칙에서 시작하면 번들 관련 나머지 결정은 훨씬 쉬워집니다.\n\n## 일반적인 번들·키트 유형(그리고 시사점)\n\n번들 가격 산정을 시작하기 전에 번들 유형에 이름을 붙이세요. 유형이 고객에게 보이는 것, 마진을 측정하는 방법, 재고가 어떻게 움직여야 하는지를 결정합니다.\n\n순수 번들은 “이 항목들은 함께 사야 한다”입니다. 예: “카메라 바디 + 렌즈 + 가방”을 하나의 거래로 판매. 보통 명확한 번들 가격, 구성품을 따로 살 때와 비교한 분명한 할인 설명, 그리고 매번 같은 구성품에서 일관된 재고 차감이 필요합니다.\n\n믹스 앤 매치 세트는 “이 그룹에서 아무 3개 골라라”입니다. 구성품이 달라지니 가격과 재고 관리가 더 까다롭습니다. 보통 “무슨 조합이든 같은 가격”(단순하지만 마진이 흔들릴 수 있음) 혹은 “고른 항목에 따라 가격 결정”(마진은 명확하지만 복잡성 증가) 같은 규칙이 필요합니다.\n\n키트, 멀티팩, 어소트먼트는 비슷하게 들리지만 동작은 다릅니다:\n\n- 키트는 서로 다른 SKU를 모아 특정 용도를 해결하는 세트입니다(초보자 키트, 수리 키트). 고객은 가이드와 의미 있는 할인을 기대합니다.\n- 멀티팩은 동일 SKU를 여러 개 묶은 것(양말 6팩). 재고 수학은 단순: 수량입니다.\n- 어소트먼트는 고정 또는 가변 혼합품입니다(간식 박스). 가변 어소트먼트는 대체 규칙이 추가로 필요합니다.\n\n번들에 별도 SKU를 부여해야 할 때가 있습니다. 흔한 이유:\n\n- 피킹·패킹용 전용 바코드/라벨이 필요할 때.\n- 광고나 마켓플레이스에서 단일 SKU를 요구할 때.\n- 구성품이 아닌 번들 단위로 깔끔한 판매 보고가 필요할 때.\n- 구성품 가격을 바꾸지 않고 번들 가격을 자주 변경하려 할 때.\n\n번들을 피해야 할 때도 있습니다: 번들이 사실상 일시적 할인에 불과하면 피하세요. 항목을 별도 구매할 수 있고 세트가 매주 바뀐다면 프로모션(체크아웃에서의 할인 규칙)이 카탈로그를 더 깔끔하게 유지하고 재고 놀람을 줄여줍니다.\n\n## 할인을 명확히 하는 가격 수학\n\n고객은 깊은 계산을 잘 하지 않습니다. 그들은 번들이 오늘 얼마인지와 각 항목을 따로 샀을 때의 비용을 비교합니다. 당신의 임무는 그 비교를 쉽고 일관성 있게 만들어서 할인 효과가 명확하고 가격 규칙이 안정적으로 유지되게 하는 것입니다.\n\n각 번들에 대해 두 가지 가격을 정의하세요:\n\n- 목록 가격(기준): 포함된 항목들의 현재 공개 판매가 합계(번들에 포함된 특정 변형 가격 사용).\n- 번들 가격(결제 금액): 실제 번들 SKU의 판매 가격.\n\n그런 뒤 한 가지 표준 방식으로 할인을 계산하고 지키세요:\n\n할인액 = 목록 가격 - 번들 가격\n\n할인 비율 = 할인액 / 목록 가격\n\n이것이 가장 단순한 형태의 제품 번들 가격 산정이며 대부분의 쇼핑객이 기대하는 방식과 일치합니다.\n\n반올림은 신뢰를 잃게 하는 지점입니다. 카트에 $79.99와 "20% 할인"이 동시에 보이면 고객이 확인합니다. 어색한 페니(cent)를 피할 규칙을 선택하세요.\n\n현장에서 쓸 수 있는 실무 규칙:\n\n- 은 평상시 소매 패턴에 맞춰 반올림(예: .99로 끝내기).\n- 은 반올림하지 않은 값으로 계산한 뒤, 화면에는 내림한 정수 퍼센트로 표시.\n- "Save $X"를 표시하면 절약액은 센트 단위로 내림 처리.\n- 임계값보다 작은 할인(예: 1% 미만)은 표시하지 않음.\n\n옵션이 있는 번들은 한 가지 선택을 더 해야 합니다: 가장 싼 구성으로 가격을 매길지, 고객이 선택한 구성으로 매길지. “3개 중 1개 선택” 같은 키트는 평균이 아닌 선택한 변형의 가격을 목록 가격 계산에 사용해 표시된 절약이 정직하게 보이게 하세요.\n\n마지막으로, 구성품 가격이 나중에 바뀌면 어떻게 할지 결정하세요. 가장 깔끔한 방법은 번들 가격을 별도 결정으로 취급하는 것: 의도적으로 재가격할 때까지 번들 가격을 고정하고, 표시되는 "비교가" 목록 가격은 현재 구성품 가격에서 재계산합니다. 만약 할인 폭이 너무 크게 흔들리면(예: 5포인트 이상 변화) 검토 트리거를 설정해 고객이 알아차리기 전에 조정하세요.\n\n## 마진 계산: 수익을 측정 가능하게 만들기\n\n번들 할인은 마진을 볼 수 있어야만 "좋다"고 할 수 있습니다. 구성품 수준에서 COGS(단가)를 확실히 정의하세요. 키트의 각 항목에는 현재 단가(구매 또는 제조 비용)와 번들 전용 비용(추가 포장 등)이 필요합니다.\n\n번들 COGS는 간단합니다: 번들에 포함된 각 구성품의 단가 × 수량을 합한 뒤 포장과 취급비를 더합니다.\n\n\n\n예시: “Starter Kit”가 $99에 판매됩니다.\n\n- 구성품 A 비용 $28, 구성품 B $12, 구성품 C $8.\n- 키트에는 각 1개씩 포함.\n- 추가 박스 및 인서트 비용 $3.\n- 프로모션으로 $6의 배송비를 보조.\n\nBundle COGS = 28 + 12 + 8 + 3 = $51\n\nGross margin $ = 99 - 51 - 6 = $42\n\nGross margin % = 42 / 99 = 42.4%\n\n이것이 제품 번들 가격 수학의 핵심입니다: 할인은 쇼핑객에게 명확하게 보이고, 마진은 당신에게 투명하게 보입니다.\n\n보고를 위해 번들 매출을 구성품에 다시 배분해야 할 수도 있습니다(카테고리 매출, 커미션, 세금 보고 등). 흔한 방법은 각 항목의 단독 가격 비중에 따라 비례 배분하는 것입니다. A가 단독 가치의 50%라면 번들 매출의 50%를 A에 할당합니다. 배분 규칙을 일관되게 유지해 월별 보고 비교가 가능하게 하세요.\n\n할인을 공개하기 전에 다음과 같은 가드레일을 설정하세요:\n\n- 모든 번들의 최소 총마진 비율(예: 35%)\n- 주문당 최소 총마진 달러(저가 키트 보호)\n- 주문당 배송 보조 한도(배송 비용이 마진을 잠식할 수 있음)\n- 조립 시간이 길어지는 키트는 포장 및 피킹 시간을 COGS에 포함\n\n작지만 누적되면 큰 비용인 항목들을 무시하지 마세요. 특수 포장이 필요한 키트는 반올림 오류가 아니라 실비로 처리하세요.\n\n## 정확도를 유지하는 재고 차감 모델\n\n가격이 약속이라면 재고는 진실입니다. 번들이 판매되는 순간 재고 시스템은 빠르게 대답해야 합니다: 실제로 어떤 물리적 아이템이 선반을 떠났나?\n\n### 모델 A: 판매 시 구성품 재고 차감\n\n구성품만 재고로 보유합니다. 번들이 팔리면 필요한 각 구성품 수량(예: 병 1개 + 필터 2개)을 차감합니다. 번들이 주로 가격 개념일 때 가장 깔끔한 옵션입니다.\n\n이 방식은 피커가 이행 시점에 키트를 조립할 때 가장 효과적입니다. 또한 번들이 할인으로 인해 "어떤 방식으로 보전되는가"(저렴한 배송, 높은 전환율, 단지 마진 감소 등)를 파악하기 쉽습니다.\n\n### 모델 B vs 모델 C: 키트 SKU 재고 또는 가상 예약\n\n모델 B는 키트를 실제 재고 품목으로 취급합니다. 미리 키트를 조립해 두고 판매 시 키트 수량에서 1을 차감합니다. 이 경우 조립 시 구성품을 소비하는 빌드 단계가 필요합니다. 그렇지 않으면 구성품 수량이 틀려집니다.\n\n모델 C는 판매 및 보고를 위한 가상 번들 SKU를 유지하되 주문 시점에 구성품을 예약(레저베이션)합니다(출하 시 차감은 아님). 예약은 재고가 부족하거나 결제 캡처가 지연될 때 초과판매를 방지합니다.\n\n선택 가이드:\n\n- 가장 빠른 피킹과 일관된 포장을 원하면 모델 B.\n- 구성품 수준의 가용성을 가장 정확히 원하면 모델 A.\n- 초과판매 방지와 백오더 또는 긴 결제 창이 필요하면 모델 C.\n- 번들 SKU별로 깔끔한 보고가 필요하면서 구성품 진실도 잃고 싶지 않다면 모델 C.\n- 창고 변경을 최소화하고 유연한 교체가 필요하면 모델 A.\n\n다중 창고 환경에서는 한 가지 규칙을 더 추가하세요: 실제로 출고되는 장소에서 차감합니다. 모델 A 또는 C를 쓰면 구성품 선택은 창고별로 달라야 합니다(창고 1에는 충전기가 있지만 창고 2에는 없을 수 있음). 모델 B를 쓰면 창고별로 키트 재고를 추적해야 하고, 키트를 옮기려면 이송이나 조립 작업 지시가 필요합니다.\n\n간단한 예: "Starter Kit"에 머그컵 1개와 뚜껑 1개가 포함돼 있다고 합시다. 창고 A에는 머그컵은 있지만 뚜껑이 없다면 모델 A는 두 항목 모두 있는 창고로 주문을 라우팅하거나 분할 배송을 해야만 판매할 수 있습니다(추가 배송비를 수용). 모델 B는 완제품 키트를 실제로 재고로 보유해 이런 혼란을 피합니다.\n\n## 카탈로그와 재고 시스템에서 번들을 모델링하는 단계별 흐름\n\n카탈로그와 재고가 무엇을 팔고 있는지(새 품목인지 기존 품목의 세트인지) 합의해야 번들이 잘 동작합니다. 추적, 가격 책정, 반품 처리를 무엇으로 할지 결정하는 것부터 시작하세요.\n\n### 간단한 모델링 흐름\n\n한 번들을 설정하고 다음 번에도 같은 규칙을 재사용하려면 이 흐름을 따르세요:\n\n1. 번들에 별도 SKU를 줄지 결정하세요. 별도 보고, 고유 바코드, 별도 이미지, 다른 반품 정책이 필요하면 번들 SKU를 사용하세요. 번들이 단지 체크아웃 편의성이고 구성품 판매만 중요하면 번들 SKU를 생략하세요.\n2. 자재 명세서(BOM)를 정의하세요. 모든 구성품과 수량(케이블, 인서트, 배터리 같은 자잘한 항목 포함)을 나열하세요. 이 BOM이 재고 차감의 진실 출처입니다.\n3. 가격 및 할인 표시 규칙을 설정하세요. 한 가지 방법을 정하고 지키세요: (a) 번들 가격을 보여주며 “합계 대비 X 절약”을 분명히 하거나, (b) 마진 보고를 깔끔하게 하기 위해 할인을 구성품에 배분합니다. 여기서 제품 번들 가격 수학을 명확히 문서화하세요.\n4. 차감 시점을 선택하세요. 빠른 처리와 초과판매 방지를 원하면 주문 접수 시 차감, 백오더나 주문 편집이 잦으면 출하 시 차감. "예약 재고"를 쓰면 주문 접수 시 예약하고 출하 시 차감합니다.\n5. 출시 전에 엣지 케이스를 테스트하세요. 한 구성품의 저재고, 부분 출하, 대체, 키트의 일부만 반품되는 상황을 시도해 보세요.\n\n설정 검증을 위한 시나리오 예: 머그 1개와 커피 팩 2개가 포함된 "Starter Kit"를 판매합니다. 머그가 재고가 없다면 스토어프론트는 번들을 차단하거나 백오더로 표시해야 하며, 시스템은 머그를 예약하지 않고 커피 팩 2개만 차감해서는 안 됩니다.\n\n커스텀 워크플로를 만든다면 Koder.ai 같은 도구가 번들 규칙(SKU, BOM, 차감 타이밍)을 한 번 정의하고 웹과 백엔드 시스템 전반에 일관된 카탈로그와 재고 로직을 생성하는 데 도움이 됩니다.\n\n## 복잡한 상황(이행, 대체, 반품)을 수학적으로 깔끔하게 처리하기\n\n현실에서 하나의 항목이 없거나 고객이 교체를 원하거나 반품이 부분적으로 발생하는 순간 번들이 골칫거리가 됩니다. 정신을 잃지 않는 가장 쉬운 방법은 고객에 보이는 주문은 단일 번들 라인으로 단순하게 유지하되, 이행과 재고는 구성품 수준에서 추적하는 것입니다.\n\n한 구성품이 품절되면 번들을 부분 출하할지 아니면 기다릴지 사전에 결정하세요. 부분 출하를 허용하면 실제로 출하된 것에 대해서만 재고를 차감하고 나머지는 예약 상태로 유지해 초과판매를 방지하세요. 번들 라인은 "부분 이행됨"으로 남지만 재고 원장은 깨끗하게 유지됩니다.\n\n대체를 허용하려면 통제된 변경으로 취급하세요. 자의적인 무질서한 대체는 피하세요. 대체 규칙은 보고와 마진을 보존하도록 설정하세요.\n\n- 미리 정의된 그룹 내에서만 대체 허용(동일 사이즈, 유형 또는 비용대).\n- 이행 시에 "계획된 구성품"과 "실제 출하된 구성품"을 둘 다 기록.\n- 가격은 명시적 업차지나 크레딧이 승인되지 않는 한 번들 가격을 유지.\n\n- 대체품이 더 비용이 들면 그 추가 비용을 기록해 번들 마진을 정확히 유지.\n\n반품은 전체 키트 반품과 단일 구성품 반품의 두 가지 경로가 필요합니다. 예: $100에서 할인되어 $90에 팔린 Starter Kit가 있고, 병($40)과 브러시($60)가 포함되어 있다고 합시다. 전체 키트가 반품되면 두 구성품을 모두 재고로 되돌리고 $90을 환불합니다.\n\n만약 브러시만 반품되면 환불은 브러시의 단독 가격이 아니라 지불된 번들 가격의 비례 배분으로 계산하세요. 방어 가능한 간단한 방법은 목록 가격 비중으로 비례 계산하는 것입니다.\n\n- 비중 계산: 브러시 비중 = 60 / (40 + 60) = 60%.\n- 환불 = $90 × 60% = $54(세금 규칙은 별도 적용).\n- 재고는 브러시만 복귀시키고 마진 보고에서는 해당 구성품의 비용만 역전시킵니다.\n\n이 방식은 할인을 명확하게 유지하고 “공짜 환불”을 막으며 시간이 지나며 재고가 흐트러지는 것을 방지합니다.\n\n## 흔한 실수와 함정(및 회피 방법)\n\n번들이 실패하는 이유는 대부분 단순합니다: 카탈로그 규칙이 불명확하고 수학이 두 번 적용됩니다. 고치려면 가격, 마진, 재고의 단일 진실 출처를 선택하는 것이 중요합니다.\n\n가장 큰 재고 함정은 두 곳에서 재고를 차감하는 것입니다. 판매용 번들 SKU가 있으면 그 SKU가 “가상”인지(자체 재고 없음) 아니면 “사전포장”인지(자체 온핸드 단위 보유) 결정하세요. 가상 번들은 구성품만 차감해야 합니다. 사전포장 키트는 키트를 열기 전까지는 키트 SKU만 차감해야 합니다.\n\n할인은 반올림 때문에 더 크게 보일 수 있습니다. 번들 가격이 $49.99면 깔끔해 보이지만 각 구성품을 따로 반올림하면 암시된 할인액이 한 주문당 몇 센트씩 변동할 수 있습니다. 시간이 지나면 CS 노이즈와 보고 혼란이 생깁니다. 반올림 규칙을 정해 최종 번들 가격에서 한 번만 적용하세요.\n\n다음은 마진과 운영을 해치는 흔한 함정과 빠른 해결책입니다:\n\n- 포장, 피킹·패킹 인건비, 추가 인서트 같은 "숨은" 비용을 잊음: 번들당 취급비를 추가해 마진 계산을 정확히 유지하세요.\n- 키트 내에서 변형(사이즈, 색상, 지역)을 엄격한 매핑 없이 섞음: 각 번들 옵션에 어떤 구성품 SKU를 쓸지 명확한 규칙을 요구하세요.\n- 구성품 비용이나 가격을 업데이트하고도 번들을 재점검하지 않음: 구성품 변경 시 마진 검토 일정을 만드세요.\n- POS나 ERP가 구성품에 매출을 배분하는 방식이 보고 방식과 다름: 목록 가격 비중 배분 같은 하나의 방법을 정의하고 고수하세요.\n- 프로모션이 의도치 않게 중첩됨(번들 할인 + 쿠폰 + 자동 티어 할인): 스택 규칙을 사전에 설정하세요.\n\n이 로직을 코드로 구현한다면 구현 전에 규칙을 문서화하세요. Koder.ai에서는 번들 규칙(재고 차감, 반올림, 할인 중첩)을 계획 모드로 정리하면 번들을 추가할 때나 소스 코드를 내보낼 때 동작이 일관되도록 도와줍니다.\n\n## 번들 출시 전 빠른 체크리스트\n\n번들을 공개하기 전에 규칙이 일관적인지 10분만 확인하세요. 대부분의 문제는 나중에 “왜 손해를 봤지?” 혹은 “왜 재고가 틀리지?”로 드러나며, 둘 다 보통 불명확한 수학에서 시작합니다.\n\n고객에게 보이는 가격부터 시작하세요. "15% 절약"을 표시하면 이 숫자가 어디서 나온 기준 가격(현재 판매가, 오래된 MSRP가 아님)과 동일한지 확인하세요. 실제 쇼핑 상황에서 표시된 할인은 고객이 검증할 수 있는 값과 일치해야 합니다.\n\n그다음 실제 주문에서 발생할 비용으로 이익을 확인하세요. 제품 비용, 수수료, 포장, 이행 작업을 포함하세요. 모든 것이 완벽하게 돌아갔을 때만 마진 목표를 간신히 넘긴다면 그 제안은 위험합니다.\n\n재고는 다른 절반입니다. 번들이 자체 SKU인지, 어떻게 구성품을 차감하는지, 취소·반품 같은 엣지 케이스에서 어떻게 되는지 결정하세요. 재고 로직을 한 문장으로 설명할 수 없다면 압박 속에서 실패합니다.\n\n출시 전 실행할 엄격한 체크리스트:\n\n- 할인 증명: "you save" 메시지와 체크아웃 총액이 같은 기준 가격과 반올림 규칙을 사용.\n- 마진 증명: 제품 비용, 수수료, 포장, 이행 비용을 제하고도 번들 이익이 최소값 이상.\n- 재고 증명: 번들 하나 판매 시 항상 동일한 구성품 수량이 차감되고 반품/취소 시 이를 깨끗이 되돌림.\n- 저재고 규칙: 하나의 동작(판매 차단, 백오더 허용, 정의된 대체 제안) 선택하고 일관 적용.\n- 보고 증명: 수작업 스프레드시트 없이 몇 개의 번들이 팔렸고 구성품이 얼마나 소모되었으며 번들당 이익이 얼마인지 답할 수 있음.\n\nKoder.ai 같은 도구로 자동화한다면 규칙을 먼저 문서화하고 정확히 구현해 숫자가 확장되어도 안정적으로 유지되게 하세요.\n\n## 예시: 실수 숫자가 들어간 스타터 키트\n\n각각을 별도 판매도 하는 세 가지 아이템으로 구성된 "Starter Kit"를 상상해 보세요. 목표는 할인은 명확하게, 이익은 쉽게 확인 가능하게, 재고는 항상 정확하게 유지하는 것입니다.\n\n### 키트, 가격, 할인\n\n다음 구성품과 단순 가격·비용을 가정합니다:\n\n- 물병: 목록가 $20, COGS $8\n- 체육 수건: 목록가 $12, COGS $4\n- 프로틴 쉐이커: 목록가 $18, COGS $6\n\n별도로 사면 고객은 $20 + $12 + $18 = $50를 내게 됩니다(이것이 "합계" 목록 가격).\n\n이제 번들 가격을 $42로 정합니다. 할인액은 $50 - $42 = $8입니다. 할인 비율은 $8 / $50 = 16%입니다.\n\n이 방식이 제품 번들 가격 수학을 가장 깔끔하게 제시하는 방법입니다: 합계와 키트 가격, 절약액을 함께 보여주세요.\n\n### 번들의 COGS와 마진\n\n번들 COGS는 구성품 COGS 합계: $8 + $4 + $6 = $18.\n\n키트의 총이익은 $42 - $18 = $24.\n\n총마진 비율은 $24 / $42 = 57.1%.\n\n이 한 숫자로 번들을 일반 마진과 비교할 수 있습니다. 평소 목표가 60%라면 이 키트는 약간 여유가 적다는 것을 알고 전환율 상승이 그만큼 가치가 있는지 판단할 수 있습니다.\n\n### 재고 영향(키트 5개 판매 후 부분 반품)\n\n초기 온핸드 재고: 물병 40, 수건 30, 쉐이커 25.\n\n키트 5개 판매 시 각 구성품 5개 차감:\n\n물병 40 - 5 = 35, 수건 30 - 5 = 25, 쉐이커 25 - 5 = 20.\n\n이제 고객 한 명이 키트에서 수건만 반품했습니다. 수건 1개를 다시 넣습니다(수건 25 + 1 = 26).\n\n금전 처리 측면에서는 명확한 규칙을 고르세요: (a) 키트 부분 반품 불가, 또는 (b) 부분 환불은 항목 단독 가격이 아니라 키트 가격의 비중으로 환불. 단독 수건 가격($12)로 환불하면 수익성 있는 키트가 손실로 바뀔 수 있습니다.\n\n## 다음 단계: 규칙 문서화와 자동화\n\n번들이 수익성 있고 정확하게 유지되려면 모두가 같은 규칙을 따라야 합니다. 채널 확장 전에 팀이 참고할 수 있는 간단한 "번들 정책"을 작성하세요. 문제가 생기면 이 문서를 기준으로 해결할 수 있어야 합니다.\n\n평문으로 세 가지를 포함하세요: 번들 가격을 어떻게 정하고 할인을 어떻게 표시할지, 재고는 어떻게 차감할지(번들 SKU, 구성품 또는 둘 다), 반품은 번들 기준으로 할지 구성품 기준으로 할지.\n\n좋은 정책은 한 페이지에 담을 수 있습니다. 다음과 같은 짧은 체크리스트를 사용하세요:\n\n- 가격 규칙: 허용할 할인과 표시 방식(퍼센트, 고정가, 또는 "X 구매 시 Y" 등).\n- 마진 규칙: 어떤 원가 기준을 쓰고 최소 마진은 얼마인지.\n- 재고 규칙: 주문 시 무엇을 차감하고 구성품 품절 시 어떻게 처리할지.\n- 반품 규칙: 전체 키트만 허용할지 부분 반품을 허용할지, 개봉되거나 누락된 항목 처리 방식.\n- 변경 권한: 누가 번들 구성, 가격, 대체 규칙을 편집할 수 있는지.\n\n다음으로 실제 주문으로 엣지 케이스를 테스트하세요. 부분 반품, 대체, 백오더 구성품, 혼합 세금 카테고리, 월중 가격 변경 같은 시나리오별로 테스트 주문을 하나씩 만드세요. 스크린샷이나 노트를 저장해 시스템 업데이트 후 동일 테스트를 반복할 수 있게 하세요.\n\n정기적으로 마진 변동을 잡아내는 월간 검토를 설정하세요. 구성품 비용은 조용히 변하고, "좋은 거래"가 누구도 눈치 못 채게 손실 상품이 될 수 있습니다. 상위 번들과 구성품 비용, 실제 마진을 15분만 검토하는 일정 알림이면 충분한 경우가 많습니다.\n\n현재 도구로 규칙을 깔끔하게 표현할 수 없다면 필요한 기능(번들 설정, 검증, 보고)만 하는 작은 내부 앱을 만드세요. Koder.ai로 번들 규칙을 채팅으로 설명하면 React + Go + PostgreSQL 백오피스 툴을 생성해 안전하게 반복하고 스냅샷·롤백으로 논리를 조정할 수 있습니다.