콘텐츠로 이동

[WORKSOUT] 쇼핑 메인

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/cartscarts 배열 길이
항목 기준
기본 선택값 전체상품
형태 가로 스크롤 탭
선택 상태 표시 밑줄 + 굵은 글씨
전환 방식 탭 클릭 / 상품 리스트 좌우 스와이프
애니메이션 없음
데이터 출처 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 병합