| Screen ID |
Screen Title |
Screen Path |
| SHOP-PLP-01 |
쇼핑 메인 (SH_100_Main) |
/shop |
쇼핑 탭의 메인 화면. 1차/2차 카테고리 탐색, 필터·정렬, 상품 리스트(무한 스크롤)를 제공한다. 상품 카드 자체의 표시 스펙(이미지·가격·플래그 등)은 상품 카드 컴포넌트 스펙을 참고하고, 필터 상세 동작은 PLP 필터를 참고한다.
원본: 쇼핑 · 상품상세 마스터.md (SH_100 부분) + 쇼핑 정책.md 병합.
| 항목 |
KR / 공통 기준 |
JP |
| 좌측 버튼 |
장바구니 버튼 |
동일 |
| 가운데 텍스트 |
상품(N) — 현재 카테고리/필터 결과 총 상품 수 |
동일 |
| 우측 버튼 |
검색 버튼 |
동일 |
| 헤더 스크롤 |
고정 |
동일 |
| 장바구니 수량 표시 |
실제 개수 그대로 (9 → 9, 100 → 100) |
동일 |
| 초기 진입 기본 카테고리 |
전체상품 |
동일 |
| 쇼핑 탭 재클릭 / 앱 재시작 |
전체상품으로 초기화 |
동일 |
- 장바구니 수량 API:
GET /v1/carts → carts 배열 길이
| 항목 |
기준 |
| 기본 선택값 |
전체상품 |
| 형태 |
가로 스크롤 탭 |
| 선택 상태 표시 |
밑줄 + 굵은 글씨 |
| 전환 방식 |
탭 클릭 / 상품 리스트 좌우 스와이프 |
| 애니메이션 |
없음 |
| 데이터 출처 |
category-controller API |
| 화면 우측 스와이프 |
카테고리가 다음 순서로 전환 |
카테고리 목록: 전체상품 · 자켓 · 스웨트 & 니트 · 셔츠 · 티셔츠 · 스커트 · 바지 · 반바지 · 모자 · 수영복 & 언더웨어 · 가방 · 신발 · 악세사리 · 생활 · 스케이트
| 항목 |
기준 |
| 노출 시점 |
1차 카테고리 선택 직후 |
| 기본 선택값 |
해당 2차의 전체 |
| 위치 |
하단 GNB 위 고정 |
2차 전체 선택 |
1차 카테고리만 선택한 경우와 동일 API 호출 |
| 노출 조건 |
“전체 상품” 이외 1차 카테고리 선택 시 |
| 스와이프 연동 |
스와이프 시 2차 카테고리가 전환되고, 2차 카테고리 마지막에서 다시 1차 카테고리로 전환 |
2차 카테고리 매핑
| 1차 |
2차 |
| 자켓 |
전체, 라이트, 헤비 |
| 스웨트 & 니트 |
전체, 크루, 후드, 풀오버, 가디건 |
| 셔츠 |
전체, 긴팔 셔츠, 반팔 셔츠 |
| 티셔츠 |
전체, 긴팔 티셔츠, 반팔 티셔츠 |
| 스커트 |
전체 |
| 바지 |
전체, 치노, 데님, 트라우져, 스웨트, 워크, 카고, 기타 |
| 반바지 |
전체, 데님, 치노, 스웨트, 워크, 카고, 기타 |
| 모자 |
전체, 캡, 버킷, 비니, 페도라, 클래식 |
| 수영복 & 언더웨어 |
전체, 수영복, 속옷, 양말 |
| 가방 |
전체, 백팩, 스몰백, 토트백, 기타 |
| 신발 |
전체, 운동화, 구두, 슬리퍼, 스케이트 신발(SESK) |
| 악세사리 |
전체, 기타, 벨트, 지갑, 시계, 스카프, 열쇠고리, 쥬얼리, 장갑, 선글라스 |
| 생활 |
기프트 카드, 홈데코, 뷰티, 보드, 책, 기타 |
| 스케이트 |
스케이트덱, 트럭, 휠, 베어링, 그립, 파츠, 악세사리 |
운영 메모: 원문에 mainCategoryid / mainCategoryId 표기 혼재. 실제 구현은 서버 명세 기준 확인.
| 항목 |
기준 |
| 필터 옵션 |
세일상품만 / 품절상품제외 |
| 정렬 기본값 |
신상품 순 |
| 두 필터 동시 적용 |
가능 (서로 독립적) |
| 카테고리 변경 시 필터/정렬 |
유지 |
| 노출 위치 |
상단 영역, 정렬과 함께 접근 가능 |
필터 기준
| 필터 |
조건 |
| 세일상품만 |
visible = 1 AND discounted_rate > 0 |
| 품절상품제외 |
판매 가능한 사이즈 1개 이상 |
정렬 기준
| 정렬명 |
파라미터 |
| 신상품 순 |
sort=id%2Cdesc |
| 인기순 |
sort=popularity |
| 가격 낮은 순 |
sort=currentPrice%2Casc |
| 가격 높은 순 |
sort=currentPrice%2Cdesc |
| 항목 |
기준 |
| 레이아웃 |
2열 그리드 |
| 로딩 단위 |
20개씩 무한 스크롤 |
| 품절 상품 |
회색 처리 |
| 상품 클릭 |
scoreUp API 호출 → 상품 상세 이동 |
| 로딩 중 |
스켈레톤 UI 표시 |
| 뒤로가기 |
이전에 보던 스크롤 위치로 복귀 |
- 업로드 시 뉴어라이벌 플래그가 설정된다.
- 뉴어라이벌 플래그는 2주 후 자동 해제된다.
- 신상품 푸시 발송 여부 체크박스를 비워두면 포커스 브랜드 알림이 발송된다.
- 향후 수정만 하고 푸시를 다시 보낼 필요가 없으면 해당 체크박스를 체크해야 한다.
| 상태 |
메시지 |
| 상품 없음 (마스터, 2025-08-21) |
상품이 없습니다 |
| 필터 결과 없음 (마스터, 2025-08-21) |
조건에 맞는 상품이 없습니다 |
| 빈 상태 공통 (정책, 2025-10-29 — 최신) |
해당하는 상품이 존재하지 않습니다. |
| 네트워크 오류 |
상품을 불러올 수 없습니다 |
| 이미지 로딩 실패 |
빈 영역 (대체 이미지 없음) |
상품 없음/필터 결과 없음 메시지는 마스터와 정책 간 문구가 다르다. 최신 문서(정책, 2025-10-29)의 공통 문구 해당하는 상품이 존재하지 않습니다.를 채택한다. 자세한 내용은 미결 사항 참고.
| 케이스 |
동작 |
| 초기 진입 / 쇼핑 탭 재클릭 / 앱 재시작 |
전체상품 카테고리로 초기화 |
| 1차 카테고리 선택 |
2차 카테고리 노출 + 상품 목록 재조회 |
| 세일상품만 + 품절상품제외 동시 체크 |
두 조건 AND로 적용 |
| 무한 스크롤 도달 |
page 증가, isLast/last 확인 후 추가 로드 |
| 상품 클릭 |
POST /v1/score/scoreUp 호출 후 PDP 이동 |
| 장바구니 담기 후 메인 복귀 |
GET /v1/carts 재조회하여 수량 갱신 |
| 항목 |
내용 |
| 엔드포인트 |
GET /v1/products/new?page=0&mainCategoryId={}&size=20 |
| 호출 시점 |
초기 진입 / 1차 카테고리 선택 / 무한 스크롤 |
| 주요 활용 필드 |
productId, brandName, productName, initialPrice, currentPrice, discountRate, thumbnailUrl, isSoldout, isLast |
| 항목 |
내용 |
| 엔드포인트 |
GET /v1/products/newfilter |
| 호출 시점 |
필터 체크 / 정렬 변경 시 |
| 파라미터 |
sale=true, instock=true, sort=id%2Cdesc, sort=popularity, sort=currentPrice%2Casc, sort=currentPrice%2Cdesc |
| 항목 |
내용 |
| 엔드포인트 |
GET /v1/newFilter?mainCategoryid={number} |
| 호출 시점 |
1차 카테고리 선택 시 |
| 활용 필드 |
categoryName (탭 라벨), categoryId, subcategoryId |
| 항목 |
내용 |
| 엔드포인트 |
POST /v1/score/scoreUp |
| 호출 시점 |
상품 카드 클릭 시 |
| 요청 데이터 |
productId, sizeName, isSoldout, isLast, sort 등 |
| 확인 항목 |
확인 방법 |
정상 기준 |
| 1·2차 카테고리 선택값 |
탭/고정 탭 확인 |
의도한 카테고리 |
| 세일/품절 필터 상태 |
체크 상태 확인 |
파라미터 반영 여부 |
| 상품 목록 API |
네트워크 로그 |
page, size=20 포함 |
| 무한 스크롤 |
isLast / last 값 |
page 증가 여부 |
| 장바구니 수량 불일치 |
GET /v1/carts 재호출 여부 |
변경 후 복귀 시 재조회 |
| 증상 |
예상 원인 |
1차 조치 |
| 쇼핑 메인 — 상품 전체 미노출 |
상품 목록 API 실패 / 결과 0건 |
카테고리/필터 확인 → API 응답 확인 |
| 쇼핑 메인 — 무한 스크롤 멈춤 |
마지막 페이지 도달 또는 추가 호출 실패 |
isLast / last 및 page 증가 여부 확인 |
| 항목 |
내용 |
| 쇼핑 메인 빈 상태 문구 충돌 |
마스터(2025-08-21, 2종): 상품 없음 = 상품이 없습니다, 필터 결과 없음 = 조건에 맞는 상품이 없습니다. 정책(2025-10-29, 1종, 최신): 해당하는 상품이 존재하지 않습니다.(두 케이스 공통). 최신 문서 기준으로 정책의 공통 문구를 채택했으나, 케이스별로 문구를 분리 유지할지 운영팀 확인 필요 |
| 재고 관련 표시값 |
current_stock 계산 규칙은 공통 ERP 재고 매핑 참고 — 이 문서에서 재정의하지 않음 |
| 버전 |
날짜 |
변경 내용 |
| v1.0 |
2026-07-30 |
최초 작성 — 쇼핑 · 상품상세 마스터.md(SH_100) + 쇼핑 정책.md 병합 |