feat(cafe24): 진열중·판매중 기본 체크 + 분리 상품 모바일 동시 반영 선택
1) 필터 기본값 진열중·판매중을 기본 체크로 바꿨다. 체크박스는 해제 상태면 아무 값도 보내지 않아 기본값이 체크면 "사용자가 일부러 해제함"을 구분할 수 없다. 그래서 폼에 표식(f=1)을 넣어, 표식이 없으면 첫 방문(기본값), 있으면 실제 체크 상태를 따르게 했다. 표식은 목록 링크·적용 후 리다이렉트에도 이어 붙어 해제 상태가 유지된다. 2) 분리 상품의 모바일 반영 "소스를 수정하면 PC와 모바일이 같이 수정되는 것 아닌가" 라는 지적대로, PC/모바일 분리 사용 상품은 지금까지 PC 만 바뀌고 있었다(미분리 상품은 원래 함께 반영). 편집기에 「모바일도 함께」 체크박스를 추가했다. 현재 두 내용이 같으면 기본 체크라 그대로 적용하면 함께 반영되고, 내용이 다르면 기본 해제하고 경고를 띄운다 — 일부러 다르게 만든 모바일 페이지를 조용히 덮어쓰는 것이 더 큰 사고이기 때문이다. 미분리 상품은 종전처럼 항상 함께 반영하며 체크박스를 보여주지 않는다. 검증: 유닛테스트 51개 통과. 필터 판정을 5가지 경우로 확인(첫 방문·둘 다 체크·하나만· 둘 다 해제·검색 링크) — 둘 다 해제가 f=1 표식으로 유지됨. 편집기 렌더를 3가지 상태로 확인(분리+동일=기본체크, 분리+상이=기본해제+경고, 미분리=체크박스 없음). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -88,6 +88,10 @@ app/modules/cafe24/ ← 상품관리 모듈
|
||||
해당 상품이 빠지기 때문이다.
|
||||
- **필터**는 `진열중`/`판매중` 체크박스이며 **중복 선택 시 AND** 다. 문서에 없는 API
|
||||
파라미터에 기대지 않고 받아온 뒤 파이썬에서 걸러낸다.
|
||||
**기본값은 둘 다 체크**다. 체크박스는 해제 상태면 아무 값도 보내지 않으므로,
|
||||
폼에 표식(`f=1`)을 함께 넣어 "첫 방문"과 "사용자가 일부러 해제함"을 구분한다.
|
||||
표식이 없으면 기본값(둘 다 체크)으로 보고, 있으면 실제 체크 상태를 따른다.
|
||||
이 표식은 `_list_query` 가 링크·리다이렉트에도 이어 붙여 해제 상태가 유지된다.
|
||||
- **정렬**은 제목행 클릭(오름↔내림 토글). 브라우저에서 처리하므로 전체를 받아둔
|
||||
덕분에 목록 전체가 대상이 된다.
|
||||
- **상품 클릭 시 오른쪽만 교체**한다(`/pane` 조각을 fetch → 삽입). 목록을 다시 받지
|
||||
@@ -253,7 +257,11 @@ cafe24_oauth_tokens 저장
|
||||
- 빈 내용은 거부한다(상세페이지 전체를 날리는 실수 방지).
|
||||
- **PC/모바일 미분리(`separated_mobile_description='F'`) 상품은 모바일 필드도
|
||||
같은 HTML 로 함께 쓴다.** PC 만 바꾸면 모바일이 어긋난다.
|
||||
분리(`'T'`) 상품은 모바일을 건드리지 않고, 화면에 "모바일은 따로 반영" 을 알린다.
|
||||
- **분리(`'T'`) 상품은 편집기의 「모바일도 함께」 체크박스에 따른다.**
|
||||
현재 두 내용이 같으면 **기본 체크**(그대로 두면 함께 반영), 다르면 **기본 해제**하고
|
||||
경고를 띄운다 — 일부러 다르게 만든 모바일 페이지를 조용히 덮어쓰지 않기 위함이다.
|
||||
일괄수정(`routes_bulk`)은 분리 상품도 항상 모바일까지 바꾼다(대상이 `<style>` 블록
|
||||
하나로 한정되어 있어 내용을 잃을 위험이 없다).
|
||||
- 실패해도 BACKUP 은 이미 남아 있으므로 오류 메시지에 버전 번호를 알려준다.
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user