증상
등록 47/47이 registered: true, reason: null로 전부 성공. 그런데 전량 이미지 0장이었다. 실물을 눈으로 볼 때까지 아무도 몰랐다.
원인
외부 데이터의 형식을 가정했다. 엔트리가 {name, sources:[{url, priority}...]} 구조인데 v.get("url")로 flatten해서 전부 None이 됐다. URL이 빈 문자열이 되니 수집이 아예 안 돌았고, 그래도 등록 자체는 성공했다.
해법
image_count == 0이면 warning + 상단 집계로 표면화한다규율
수집=이미지, 등록=이미지, 번역=번역본 — "있어야 할 것 0개"는 조용히 넘기지 않는다.
빈 레코드가 가격만 얹은 채 등록을 통과해 판매까지 갔다
스크래핑이 실패한 잔재 — 본문도 속성도 없는 레코드 — 에 가격 하나만 붙어 등록 검증을 통과했고, 판매중 상태로 발견됐다. 주문이 들어오면 발주 자체가 불가능하다. 소싱처 미연결은 "어디서 사는지 모른다"지만 이건 상품이 없다.
빈 레코드의 네 가지 지표(정상 건과 대조):
"상세설명 참조")★ 등록 검증에 "가격 있음"만 있고 "핵심 산출물 있음"이 없으면, 실패 잔재가 정상 건과 같은 문을 통과한다.