Skill: mnemosyn1154/coupang-shopping-relay (version 1.3.0)

--- name: coupang-shopping-relay description: 로그인된 Chrome browser relay로 쿠팡 검색, 비교, 장바구니 조회/추가/삭제/수량 변경, 주문 직전 검수를 수행하는 OpenClaw 스킬입니다. 쿠팡 쇼핑 자동화와 장바구니 정리가 필요할 때 사용합니다. version: 1.3.0 metadata: openclaw: skillKey: coupang-shopping-relay --- # Coupang Shopping Relay 쿠팡 쇼핑을 OpenClaw의 Chrome browser relay로 수행하는 스킬입니다. 이 스킬은 일반 사용자가 이미 로그인해 둔 Chrome 세션을 활용하는 것을 전제로 합니다. 직접 HTTP 요청, Playwright, 비공식 API, headless 브라우저로 쿠팡에 접속하지 마세요. ## 언제 사용하나 아래와 같은 요청에서 이 스킬을 사용하세요: - "쿠팡에서 생수 찾아줘" - "쿠팡 장바구니 보여줘" - "검색한 2번 상품 장바구니에 담아줘" - "장바구니에서 물티슈 삭제해줘" - "장바구니 3번 수량을 2개로 바꿔줘" 키워드 예시: - 쿠팡, coupang - 장바구니, 담아줘, 삭제, 수량 변경, 상품 검색, 쇼핑 ## 전제 조건 - OpenClaw에서 Chrome browser relay를 사용할 수 있어야 합니다. - 사용자는 Chrome에서 이미 쿠팡에 로그인되어 있어야 합니다. - 쿠팡이 사람 브라우저 세션으로 정상 열려야 합니다. - 이 스킬은 읽기와 검수에 강하고, 쓰기 액션은 반드시 재검수 루프를 전제로 합니다. 브라우저 릴레이를 쓸 수 없거나, 쿠팡 로그인 세션이 없으면 브라우저를 수동으로 열고 로그인한 뒤 다시 진행하도록 안내하세요. ## 운영 모드 이 스킬은 **단건 모드**와 **배치 모드** 두 가지로 동작합니다. - **단건 모드**: 사용자가 단일 상품을 요청한 경우. 기존과 동일하게 검색 → 후보 제시 → 사용자 확인 → 담기 → 재검수 루프를 따릅니다. - **배치 모드**: 사용자가 여러 재료/상품을 한 번에 요청한 경우 (예: "삼겹살, 대파, 양파 장바구니에 담아줘"). 자동으로 배치 모드로 전환됩니다. 배치 모드 판단 기준: 요청에 2개 이상의 상품/재료가 포함되어 있으면 배치 모드입니다. ## 배치 모드 동작 방식 ### 처리 루프 1. 사용자 요청에서 재료/상품 목록을 파싱 2. 각 재료별로: 검색 → 자동 상품 선택 → 장바구니 담기 → 다음 재료로 이동 3. 중간에 사용자에게 묻지 않음 4. 전부 끝난 후 최종 결과만 한 번에 보고 5. 사용자가 결과를 보고 "대파 다른 걸로 바꿔" 같은 수정 요청을 하면 그때만 후보를 보여줌 ### 자동 상품 선택 기준 사용자가 특정 상품을 지정하지 않은 경우 아래 우선순위로 자동 선택: 1. 로켓배송 (로켓와우, 로켓프레시 포함) 상품 우선 2. 로켓배송 중 판매량/리뷰 수가 가장 많은 상품 우선 3. 광고 상품은 건너뛰기 4. 옵션 선택이 필요한 상품은 가능하면 피하고, 옵션 없는 단일 상품 우선 5. 옵션이 불가피하면 가장 기본/인기 옵션을 자동 선택 선택한 상품과 탈락 후보 2~3개는 내부적으로 보관하고 있다가, 사용자가 물어보거나 교체를 요청하면 그때 보여줌. ### 실패 처리 - 하나가 실패해도 다음 재료로 계속 진행 - 전체 배치가 끝난 후 결과 보고에서 실패 항목만 따로 표시 - 실패 항목 보고 형식: 재료명, 어디까지 갔는지 (검색까지/상세까지/담기 클릭까지), 실패 증상 한줄 ### 성공 판정 기준 장바구니 담기 클릭 후 아래 중 하나라도 해당하면 성공으로 간주하고 다음으로 넘어감: - 장바구니 가기 버튼 또는 레이어가 나타남 - 장바구니 아이콘 숫자 증가 - 토스트/확인 문구 노출 위 세 가지 모두 안 보이면 그때만 실패로 기록하고 다음 재료로 진행. ### 중간 보고 금지 배치 모드에서는 중간 상태 보고를 하지 않음. "지금 대파 검색 중..." 같은 진행 상황 메시지 금지. 전부 끝난 후 최종 보고만. ### 검증 방식 개별 품목마다 장바구니 페이지로 이동해서 재검수하지 않음. 전체 배치 완료 후 장바구니를 한 번만 열어서 일괄 확인. ### 탭 관리 매 재료 시작 전에 탭을 초기화: 1. 현재 열린 탭 중 쿠팡 상세 페이지 탭을 모두 닫음 2. 쿠팡 검색 페이지(`https://www.coupang.com/np/search?q=`)에서 새로 시작 3. 이전 상품 상세 탭을 재사용하려 하지 않음 이렇게 하면 탭 꼬임과 ref 무효화 문제를 최소화할 수 있음. ### Snapshot 전 Wait 의무화 쿠팡은 비동기 로딩이 심하므로 wait 없이 찍은 snapshot은 신뢰하지 않음. 페이지 이동 후, 장바구니 담기 후, 검색 결과 로딩 후에는 반드시 핵심 요소가 로딩될 때까지 기다린 후 snapshot을 찍어야 함: - 검색 결과 페이지: 상품 카드가 하나 이상 로딩될 때까지 wait - 상품 상세 페이지: 장바구니 담기 버튼이 나타날 때까지 wait - 장바구니 페이지: 장바구니 품목 목록이 로딩될 때까지 wait - 장바구니 담기 클릭 후: 1~2초 대기 후 성공 UI(토스트, 레이어, 장바구니 가기 버튼) 확인 ### 최종 보고 형식 배치 완료 후 아래 형식으로 보고: ``` ✅ 성공 1. 삼겹살 — [상품명], 12,900원 2. 대파 — [상품명], 3,500원 3. 양파 — [상품명], 4,200원 ❌ 실패 4. 생강 — 검색까지 완료, 장바구니 담기 실패 (담기 버튼 클릭 후 반영 미확인) 💰 성공 품목 합계: 20,600원 실패 항목은 다시 시도할까요? ``` ### 배치 모드 실행 흐름 요약 ``` 사용자: "삼겹살, 대파, 양파, 마늘, 생강 담아줘" 에이전트 내부 처리 (사용자에게 보이지 않음): for 재료 in [삼겹살, 대파, 양파, 마늘, 생강]: 1. 불필요한 탭 정리 (상세 페이지 탭 모두 닫기) 2. 쿠팡 검색 페이지에서 재료 검색 3. wait → snapshot 4. 자동 선택 기준으로 상품 선택 (후보 2~3개 내부 보관) 5. 상품 상세 페이지 이동 6. wait → snapshot 7. 장바구니 담기 클릭 8. 1~2초 대기 → 성공 UI 확인 9. 성공/실패 기록 10. 다음 재료로 전체 완료 후: 1. 장바구니 페이지 이동 2. wait → snapshot 3. 실제 담긴 품목 일괄 확인 4. 최종 보고 사용자에게 보이는 것: 최종 보고 1회만 ``` ### 배치 모드에서 완화되는 규칙 단건 모드의 아래 규칙들은 배치 모드에서 적용하지 않음: - "검색 후 사용자가 명시적으로 선택하기 전까지 담지 마세요" → 배치 모드에서는 자동 선택 기준에 따라 바로 담기 - "한 번에 여러 개를 몰아서 처리하지 마세요" → 배치 모드에서는 연속 처리 허용 - "사용자가 '담아줘'라고 확인한 뒤에만 장바구니 버튼을 누릅니다" → 배치 모드에서는 확인 없이 진행 - "상태 변경 전에 대상을 한 번 더 짧게 확인하세요" → 배치 모드에서는 내부 검증만 하고 사용자에게 묻지 않음 ## 실행 원칙 1. 모든 작업은 Chrome browser relay를 통해 수행합니다. 2. 직접 네트워크 요청으로 coupang.com HTML을 가져오지 마세요. 3. Playwright나 다른 자동화 런타임을 새로 띄우지 마세요. 4. 사용자의 실제 Chrome 세션을 유지한 채로 탐색, 클릭, 입력, 읽기만 수행하세요. 5. **단건 모드** 기본 루프: `읽기 -> 후보 축소 -> 사용자 확인 -> 단일 쓰기 액션 -> 다시 읽기` 6. **단건 모드**에서는 장바구니 추가, 삭제, 수량 변경 같은 상태 변경 작업 실행 전에 대상을 한 번 더 짧게 확인하세요. 7. **단건 모드**에서는 검색 결과 클릭, 상세 페이지 이동, 장바구니 반영을 한 번에 여러 개를 몰아서 처리하지 마세요. 8. **배치 모드**에서는 위 5~7번 대신 배치 모드 동작 방식 섹션을 따릅니다. 9. 주문 제출, 결제수단 변경, 배송지 변경은 두 모드 모두에서 지원하지 않습니다. 10. 페이지 이동, 검색 결과 로딩, 장바구니 담기 후에는 반드시 wait로 핵심 요소 로딩을 확인한 뒤 snapshot을 찍습니다. wait 없이 찍은 snapshot은 신뢰하지 않습니다. ## 지원 범위 이 스킬이 지원하는 작업: - 상품 검색 - 검색 결과 요약 - 상품 상세 페이지 확인 - 장바구니 조회 - 장바구니 담기 - 장바구니 삭제 - 장바구니 수량 변경 - 주문/결제 직전 검수와 요약 이 스킬이 지원하지 않는 작업: - 최종 주문 제출 버튼 클릭 - 결제 승인 - 쿠팡 계정 로그인 자동화 - 비밀번호/인증번호 입력 자동화 - 봇 차단 우회 ## 기본 워크플로우 ### 상품 검색 1. Chrome relay로 쿠팡 홈 또는 검색 페이지를 엽니다. 2. 검색어를 입력하고 결과를 불러옵니다. 3. 광고가 명확하면 건너뛰고 실제 상품을 우선 읽습니다. 4. **단건 모드**: 사용자에게 5개 내외의 번호 목록으로 정리해 보여줍니다. 사용자가 고르기 전까지 상세 이동이나 담기를 연속으로 진행하지 않습니다. 검색 후에는 사용자가 명시적으로 선택하기 전까지 장바구니에 담지 마세요. 5. **배치 모드**: 자동 상품 선택 기준에 따라 최적 상품을 자동 선택하고 바로 담기를 진행합니다. 보여줄 항목 (단건 모드): - 번호 - 상품명 - 가격 - 로켓배송/로켓와우 같은 주요 배지 - 평점/리뷰 수가 보이면 포함 - 필요하면 상품 링크 ### 장바구니 조회 1. Chrome relay로 장바구니 페이지를 엽니다. 2. 현재 담긴 항목을 위에서부터 읽습니다. 3. 각 항목을 번호 목록으로 정리해 보여줍니다. 보여줄 항목: - 번호 - 상품명 - 옵션 또는 규격 - 수량 - 가격 동일하거나 비슷한 상품이 여러 개면 사용자가 헷갈리지 않도록 이름, 옵션, 가격을 함께 적으세요. ### 장바구니 담기 **단건 모드:** 1. 검색 결과나 사용자가 준 상품 페이지로 이동합니다. 2. 상품명, 가격, 옵션 선택 여부를 확인합니다. 3. 사용자가 명시적으로 "담아줘"라고 확인한 뒤에만 장바구니 버튼을 누릅니다. 4. 토스트, 장바구니 수량 변화, 장바구니 페이지 재확인 중 하나로 실제 담김을 확인합니다. 5. 확인이 안 되면 성공으로 단정하지 말고 불확실하다고 보고하세요. 6. 옵션이 필요한 상품이면 옵션을 임의로 고르지 말고 사용자에게 물어보세요. **배치 모드:** 1. 자동 상품 선택 기준에 따라 최적 상품의 상세 페이지로 이동합니다. 2. 상품명, 가격을 내부적으로 확인합니다. 사용자에게 묻지 않습니다. 3. 옵션이 필요하면 가장 기본/인기 옵션을 자동 선택합니다. 옵션 없는 상품을 우선합니다. 4. 장바구니 버튼을 바로 누릅니다. 5. 장바구니 가기 버튼/레이어, 아이콘 숫자 증가, 토스트/확인 문구 중 하나라도 보이면 성공으로 간주합니다. 6. 세 가지 모두 안 보이면 실패로 기록하고 다음 재료로 넘어갑니다. 7. 개별 품목마다 장바구니 페이지로 이동하여 재검수하지 않습니다. ### 장바구니 삭제 1. 가능하면 먼저 장바구니 목록을 최신 상태로 다시 읽습니다. 2. 사용자가 말한 대상이 어떤 항목인지 짧게 다시 확인합니다. 3. 해당 항목의 삭제 버튼을 누릅니다. 4. 삭제 확인 모달이 있으면 내용을 확인한 뒤 진행합니다. 5. 항목이 실제로 사라졌는지 장바구니를 다시 읽어 검증합니다. ### 장바구니 수량 변경 1. 가능하면 먼저 장바구니 목록을 최신 상태로 다시 읽습니다. 2. 사용자가 말한 대상 항목과 목표 수량을 짧게 다시 확인합니다. 3. 수량 선택 UI나 입력 UI를 사용해 변경합니다. 4. 필요하면 적용 버튼을 누릅니다. 5. 장바구니를 다시 읽어 목표 수량이 반영됐는지 검증합니다. ### 주문 직전 검수 1. 장바구니 또는 주문/결제 직전 화면으로 이동합니다. 2. 이번 주문 대상 품목과 비대상 품목을 분리해 읽습니다. 3. 배송지, 도착 예정, 품목 수량, 상품별 금액, 할인, 총 결제 예정 금액, 결제수단 라벨을 읽습니다. 4. 장바구니나 주문 요약이 길면 스크린샷으로 한 번 더 확인합니다. 5. 최종 주문 제출은 하지 않고, 사용자에게 확인용 요약만 제공합니다. ## 안전 규칙 1. 사용자가 장바구니 추가, 삭제, 수량 변경을 명확히 요청한 경우에만 상태를 바꿉니다. 2. 애매하면 반드시 한 번 물어봅니다. 3. 옵션이 필요한 상품은 사용자가 지정하기 전까지 임의 선택하지 않습니다. 4. "구매", "바로구매", "주문", "결제" 버튼은 기본 모드에서 누르지 마세요. 5. 배송지, 결제수단, 카드, 인증번호를 바꾸지 마세요. 6. 로그인 화면이나 추가 인증 화면이 뜨면 사용자가 직접 처리하도록 안내하고 대기하세요. 7. 장바구니에는 이번 주문 대상이 아닌 품목이 섞여 있을 수 있으므로, 결제 직전에는 반드시 주문 대상 품목만 따로 정리해 보여주세요. ## 차단 또는 실패 시 대응 아래 상황이 나오면 그 사실을 숨기지 말고 그대로 설명하세요: - 쿠팡 로그인 세션이 풀림 - 쿠팡이 추가 인증을 요구함 - CAPTCHA 또는 차단 페이지가 뜸 - 삭제/수량 변경 후 결과 확인이 되지 않음 - 검색 결과 클릭 후 상세 페이지 이동 확인이 되지 않음 - 장바구니 담기 후 신규 품목 반영 여부를 확인하지 못함 - 탭이 여러 개 생겨 포커스가 꼬임 - 장바구니 스냅샷이 잘리거나 불완전함 - 같은 상품이 여러 개여서 대상을 특정할 수 없음 이 경우 기본 대응: 1. 현재 화면 상태를 요약합니다. 2. 스냅샷 재수집, 탭 포커스 재정렬, 장바구니 직접 이동 중 하나를 먼저 시도합니다. 3. 그래도 해결되지 않으면 사용자가 직접 브라우저에서 필요한 수동 조치를 하도록 안내합니다. 4. 조치 후 이어서 진행할 수 있다고 알려줍니다. ## 메모리 운용 실전 운영에서는 실패와 성공 패턴을 누적해야 정확도가 올라갑니다. 1. 쓰기 액션을 수행한 세션이 끝나면 무엇이 안정적이었는지, 무엇이 흔들렸는지 짧게 기록합니다. 2. 특히 `상세 페이지 이동`, `장바구니 반영 확인`, `탭 포커스`, `장바구니 스냅샷 품질`을 따로 남기세요. 3. 특정 상품군에 대한 선호 규칙이 있으면 세션 메모리에 저장해 다음 탐색에 재사용하세요. 4. 비밀번호, 카드번호, 인증번호, 전체 주소, 개인통관고유부호 같은 민감정보는 저장하지 마세요. 5. 바로 복사해서 쓸 수 있는 시드 메모 파일은 [assets/coupang-relay-memory-template.md](assets/coupang-relay-memory-template.md)에 있습니다. ## 페이지 기준 자주 쓰는 페이지: - 홈: `https://www.coupang.com/` - 검색: `https://www.coupang.com/np/search?q=<검색어>` - 장바구니: `https://cart.coupang.com/cartView.pang` 필요한 세부 문서: - 읽기/쓰기 운영 루프와 실패 대응: [references/browser-relay-workflow.md](references/browser-relay-workflow.md) - 검색/상세/장바구니/주문 직전 화면 구조: [references/coupang-page-structure.md](references/coupang-page-structure.md) - 실패/성공 패턴을 누적하는 메모리 구조: [references/operating-memory.md](references/operating-memory.md) - 실제 라이브 테스트 기반 개선 로그: [references/improvement-log.md](references/improvement-log.md) ## 외부 스킬 참고 검색 결과 파싱 안정성과 상품 데이터 구조화 개선을 위해 ClawHub의 아래 스킬들을 참고: - `clawringhouse` — AI shopping concierge: 쇼핑 어시스턴트 패턴 참고 - `openclaw-ecommerce` — 가격 추적, 알림, 상품 데이터 구조화: 검색 결과에서 상품명, 가격, 배지, 리뷰 수를 구조화된 형태로 파싱하는 로직 참고


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