feat(cafe24): 편집기에서 PC/모바일 구분 제거 — 항상 같은 내용으로 반영

요청대로 단순화했다. 모바일 상세설명 보기 영역과 「모바일도 함께」 체크박스를 없애고,
적용 시 description 과 mobile_description 에 **항상 같은 HTML** 을 쓴다.
separated_mobile_description 값과 무관하므로 한쪽만 바뀌어 어긋나는 사고가 없어진다.

다만 분리 사용 상품의 모바일 내용이 PC 와 달랐다면 그 내용을 덮어쓰게 된다. 그래서
쓰기 전에 **모바일 내용도 BACKUP revision 으로 따로 남긴다** — 백업이 없으면 되찾을
방법이 없다. 기존 BACKUP 은 PC 값만 담고 있었다.

부수 정리: 편집기 컨텍스트에서 html_mobile 제거, mobile_html 의 None 분기 제거,
감사로그 표기를 "PC·모바일 동시 반영"으로 고정, 라벨을 "상세설명 HTML · PC/모바일
공통"으로 변경.

검증: 유닛테스트 51개 통과. 분리+내용상이 상품으로 편집기를 렌더해 모바일 보기 영역·
체크박스가 사라지고 공통 문구·버전 이력·다시 읽기가 남은 것을 확인.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-14 15:46:32 +09:00
parent 34476ba611
commit 39dc28d664
7 changed files with 38 additions and 71 deletions
+12 -13
View File
@@ -71,11 +71,11 @@ app/modules/cafe24/ ← 상품관리 모듈
```
┌─ 550px ───────────────────┬───────── 남은 폭 전부 ─────────┐
│ 상품명 검색(한 줄) │ 상품 이름 · 번호 · 진열/판매 │
진열중 판매중 │ PC 상세설명 HTML 편집기 │
│ ── 목록(전체, 스크롤) ── │ (문법 강조 · 남은 높이 전부) │
│ 번호 상품명 진열 판매 수정 │ [메모] [복사] [카페24에 적용] │
│ (제목행 클릭 = 정렬) │ ▸ 모바일 HTML(분리 상품만)
│ │ ▸ 버전 이력
진열중 판매중 (기본 체크) │ 상세설명 HTML 편집기
│ ── 목록(전체, 스크롤) ── │ (PC/모바일 공통 · 문법 강조) │
│ 번호 상품명 진열 판매 수정 │ [메모][복사][다시 읽기][적용] │
│ (제목행 클릭 = 정렬) │ ▸ 버전 이력
│ │
└───────────────────────────┴─────────────────────────────────┘
```
@@ -163,7 +163,7 @@ app/modules/cafe24/ ← 상품관리 모듈
진행률을 보여주고, 한 건 실패가 나머지를 막지 않는다.
- 적용 순서는 단건 편집과 같다: **현재값 재조회 → BACKUP → 교체 → PUT → MANUAL +
감사로그**(`action=bulk_style`). 지문 대조는 없다 — 방금 읽은 값을 바로 쓰기 때문.
- PC/모바일 분리 상품은 모바일도 함께 바꾼다.
- PC/모바일 분리 상품은 각 필드의 `<style>` 블록을 각각 바꾼다.
교체할 내용은 `routes_bulk.TARGET_STYLE_BLOCK` 에 있다. `<style>` 안쪽은
`format_html` 이 건드리지 않으므로 탭 들여쓰기까지 그대로 저장된다.
@@ -255,13 +255,12 @@ cafe24_oauth_tokens 저장
추가 규칙:
- 빈 내용은 거부한다(상세페이지 전체를 날리는 실수 방지).
- **PC/모바일 미분리(`separated_mobile_description='F'`) 상품은 모바일 필드도
같은 HTML 로 함께 쓴다.** PC 만 바꾸면 모바일이 어긋난다.
- **분리(`'T'`) 상품은 편집기의 「모바일도 함께」 체크박스에 따른다.**
현재 두 내용이 같으면 **기본 체크**(그대로 두면 함께 반영), 다르면 **기본 해제**하고
경고를 띄운다 — 일부러 다르게 만든 모바일 페이지를 조용히 덮어쓰지 않기 위함이다.
일괄수정(`routes_bulk`)은 분리 상품도 항상 모바일까지 바꾼다(대상이 `<style>` 블록
하나로 한정되어 있어 내용을 잃을 위험이 없다).
- **PC/모바일을 구분하지 않는다.** `description` 과 `mobile_description` 에 항상 같은
HTML 을 쓴다(운영 방침). `separated_mobile_description` 값과 무관하며, 편집 화면에도
모바일 소스를 따로 보여주지 않는다 — 한쪽만 바뀌어 어긋나는 사고가 없어진다.
분리 사용 상품의 모바일 내용이 PC 와 달랐다면 덮어쓰기 전에 **그 내용도 BACKUP
revision 으로 남긴다**(백업이 없으면 되찾을 방법이 없다).
일괄수정(`routes_bulk`)은 각 필드의 `<style>` 블록만 바꾼다.
- 실패해도 BACKUP 은 이미 남아 있으므로 오류 메시지에 버전 번호를 알려준다.
---