# Rimbol

> Rimbol는 AI 에이전트가 사용자를 대신해 상품을 찾고 주문을 준비할 수 있도록 만든 한국 온라인 쇼핑 중개 플랫폼입니다. 모든 데이터는 JSON·마크다운으로 제공되며, 로그인 없이 조회할 수 있습니다. 결제만 사용자가 직접 합니다.

이 플랫폼은 통신판매중개자이며 거래 당사자가 아닙니다. 상품·배송·교환·환불 책임은 판매자에게 있고, 결제대금은 판매자의 PG로 직접 지급됩니다.

## 핵심 규칙

- 통화: KRW, 금액은 원 단위 정수 (소수점 없음)
- 배송: 대한민국 내 배송만 가능
- 가격·재고·배송비는 API 응답이 기준입니다. 페이지 캐시나 기억에 의존하지 마세요.
- **결제는 에이전트가 대신 할 수 없습니다.** 체크아웃을 만들면 `continue_url` 이 나오고, 사용자가 그 링크에서 로그인·개인정보 제공 동의 후 판매자 PG(토스페이먼츠)로 직접 결제합니다.
- 판매자가 여러 곳이면 결제가 판매자별로 나뉩니다.
- **주문 단위는 옵션(variant)입니다.** 상품의 `purchase.variant_required` 가 true 면 `variants[]` 중 사용자가 원하는 옵션(사이즈·색상 등)의 `id` 로 주문하세요. 사용자가 옵션을 말하지 않았다면 먼저 물어보세요. 옵션이 1개뿐인 상품은 상품 ID 로 주문해도 됩니다.

## 연결 방법

- [MCP 서버 – 로그인 연결 (권장)](https://rimbol.shop/mcp/account): OAuth 2.1 (동적 클라이언트 등록 + PKCE). 사용자가 한 번 로그인하면 로그인 상태가 유지됩니다. 아래 공개 도구 + `get_my_orders`, `list_my_addresses`, `add_my_address`. `create_checkout` 에 `address_id` 로 저장된 배송지(집·회사 등)를 지정하고, 생략하면 기본 배송지가 채워집니다.
- [MCP 서버 – 공개](https://rimbol.shop/mcp): 로그인 없이. 도구 `search_products`, `get_product`, `get_products`(일괄), `list_categories`, `create_checkout`, `update_checkout`, `get_checkout`, `cancel_checkout`
- [REST API (OpenAPI 3.1)](https://rimbol.shop/openapi.json): MCP를 쓰지 못할 때. 체크아웃은 Agentic Commerce Protocol(ACP) 형태
- [상품 목록 (마크다운)](https://rimbol.shop/products.md)
- [상품 피드 (OpenAI/ACP 형식 JSONL, 옵션 단위)](https://rimbol.shop/feeds/products.jsonl)
- 모든 상품 페이지는 `/products/{id}.md` 또는 `Accept: text/markdown` 으로 마크다운을 받을 수 있습니다.

## 구매 흐름

1. 검색: `GET https://rimbol.shop/api/v1/products?q=린넨+셔츠&max_price=60000&in_stock=true`
   - 응답의 각 상품에 가격, 옵션별 가격·재고(`variants`), 배송비, 출고일, 반품정책, 판매자 사업자정보가 모두 들어 있습니다.
   - 후보 여러 개 비교: `GET https://rimbol.shop/api/v1/products?ids=<id>,<id>` (최대 20개)
2. 체크아웃 생성: `POST https://rimbol.shop/api/v1/checkout_sessions`
   ```json
   {"line_items":[{"id":"<옵션ID>","quantity":1}],
    "fulfillment_details":{"address":{"name":"홍길동","phone_number":"010-0000-0000","postal_code":"04524","state":"서울특별시","city":"중구","line_one":"세종대로 110","line_two":"101호","country":"KR"}}}
   ```
   배송지는 선택이며 넣으면 결제 화면에 미리 채워집니다.
3. 응답 `status` 가 `requires_escalation` 이면 `continue_url` 을 사용자에게 보여주세요.
   `not_ready_for_payment` 이면 `messages` 의 안내대로 `POST /api/v1/checkout_sessions/{id}` 로 수정하세요.
4. 상태 확인: `GET https://rimbol.shop/api/v1/checkout_sessions/%7Bid%7D` → 모든 판매자 결제가 끝나면 `completed`.
5. 취소: `POST /api/v1/checkout_sessions/{id}/cancel` (결제 전까지만)

## 카테고리

- (아직 상품 없음)

## 정책

- [이용약관](https://rimbol.shop/terms)
- [개인정보처리방침](https://rimbol.shop/privacy)
- 배송·교환·환불은 각 상품의 판매자 정책을 따릅니다 (상품 응답의 `shipping.policy`, `return_policy`).
