OG 가격 폴백으로 Shopify 계열 상품 페이지를 파서로 처리 - #52
Conversation
- Shopify 계열은 표준 product:price:* 대신 구형 og:price:* 만 내보내 OG 경로가 가격을 놓쳤고, 최상위 노드가 ProductGroup 이라 JSON-LD 경로도 함께 미스했다. 두 경로가 다 미스해 매 요청이 Gemini fallback 으로 가면서 같은 사이트의 상품명이 요청마다 갈렸다 (prod 토너먼트 1350 의 20건 전부 SERVER_LLM) - 표준 태그를 먼저 보고 없을 때만 구형으로 폴백한다. amount 와 currency 를 각각 폴백해, 통화 태그만 단독으로 있는 페이지를 no_data 아닌 missing_field 로 가르는 기존 규칙이 구형 네임스페이스에서도 유지된다 - JSON-LD 의 ProductGroup 인식 추가는 택하지 않았다 - 지원하면 JSON-LD 가 우선순위상 먼저 이겨 이름이 색상 없는 한글로 바뀌고, 같은 상품의 다른 색상이 한 토너먼트에 올라왔을 때 구분이 사라진다 - og:price:amount 의 천단위 콤마는 기존 PRICE_NOISE 가 이미 제거해 추가 처리를 넣지 않았다. 통화는 extractor 가 보내는 Accept-Language 헤더로 KRW 가 정상 수신되는 것을 실측해 회귀 위험이 없음을 확인했다
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
머지하지 않고 닫는다. 실측으로 이 폴백의 수혜자가 없다는 것이 확인됐다. postarchivefaction.com 상품 90건 중 10건 표본 (2026-08-26, extractor 와 같은
더 중요한 것은 이 PR 이 상품명을 작업은 #53 에서 이어간다. 여기서 확인한 실측·근거는 그쪽 본문에 옮겨두었다. |
- Shopify 계열은 최상위가 ProductGroup 이고 실제 Product 는 hasVariant 안에 있어 노드 수집이 전부 미스했다. OG 경로도 표준 가격 태그가 없어 함께 미스해 매 요청이 LLM 으로 갔고, 비결정적이라 같은 사이트의 상품명이 요청마다 갈렸다 - 처음엔 OG 경로에 og:price 폴백을 넣어 푸는 방향으로 갔으나(#51, PR #52) 그 경로는 상품명을 og:title 즉 페이지 제목에서 가져온다. 사이트가 상품명 필드에 선언한 이름은 "컷아웃 부츠" 이고 그쪽이 정확해, JSON-LD 를 고치는 방향으로 전환하고 폴백은 폐기했다 - 변형을 상품 노드로 수집하지 않고 그룹 노드만 수집한다. 변형 이름에는 사이즈가 붙어 있어(컷아웃 부츠 - 250) 상품명으로 쓸 수 없다. 대신 그룹에 없는 가격·이미지만 첫 변형에서 보강한다 - 실측한 페이지의 ProductGroup 에는 offers 도 image 도 없었다 - 저장해둔 실제 페이지로 전후를 확인했다. 수정 전 MISSING_FIELD, 수정 후 컷아웃 부츠 / 800,000 KRW / https 이미지
- Shopify 계열은 최상위가 ProductGroup 이고 실제 Product 는 hasVariant 안에 있어 노드 수집이 전부 미스했다. OG 경로도 표준 가격 태그가 없어 함께 미스해 매 요청이 LLM 으로 갔고, 비결정적이라 같은 사이트의 상품명이 요청마다 갈렸다 - 처음엔 OG 경로에 og:price 폴백을 넣어 푸는 방향으로 갔으나(#51, PR #52) 그 경로는 상품명을 og:title 즉 페이지 제목에서 가져온다. 사이트가 상품명 필드에 선언한 이름은 "컷아웃 부츠" 이고 그쪽이 정확해, JSON-LD 를 고치는 방향으로 전환하고 폴백은 폐기했다 - 변형을 상품 노드로 수집하지 않고 그룹 노드만 수집한다. 변형 이름에는 사이즈가 붙어 있어(컷아웃 부츠 - 250) 상품명으로 쓸 수 없다. 대신 그룹에 없는 가격·이미지만 첫 변형에서 보강한다 - 실측한 페이지의 ProductGroup 에는 offers 도 image 도 없었다 - 저장해둔 실제 페이지로 전후를 확인했다. 수정 전 MISSING_FIELD, 수정 후 컷아웃 부츠 / 800,000 KRW / https 이미지
Situation
ProductGroup이라 Product 매칭에 안 걸리고, 실제 Product 는hasVariant배열 안에 있는데 파서가 그 키를 재귀하지 않는다.SERVER_LLM이었고 이름이 세 갈래로 나왔다.Stream Pants (Archive) - Charcoal러너 자켓 (Archive) 차콜차콜·스노우 블랙은 페이지에 없는 값 (본문 검색 0건)러너 자켓 (Archive)\n \n 차콜Task
og:title로 읽히므로 파서가 완결되어 이 사이트들이 결정론적 경로로 내려간다.ProductGroup인식까지 함께 넣을 것인가.Action
구현
product:price:amount/product:price:currency)를 먼저 보고, 없을 때만 구형(og:price:amount/og:price:currency)을 본다.og:title을 쓴다. 이 PR 이 바꾸는 것은 가격 한 필드뿐이고, 이름의 출처는 ProductGroup 을 JSON-LD 경로에서 인식해 상품명을 정확하게 #53 에서 다룬다.스코프 결정
ProductGroup인식 추가는 이 PR 에서 하지 않고 후속 이슈 #53 으로 분리했다. 이 PR 이 고치는 것은 가격 한 필드이고,ProductGroup은 상품명의 출처가 바뀌는 별개의 변경이기 때문이다.이 PR 이 고른 것은 LLM 이 지어내는 이름과
og:title사이였다.컷아웃 부츠(JSON-LD 의 상품명)는 파서가ProductGroup을 못 읽어 애초에 후보에 없었다. 실측 (2026-08-25, extractor 와 같은Accept-Language로 fetch):f26-cut-out-boots-blackf26-cut-out-boots-beigeog:title(현재 쓰는 값)Cut Out Boots (2026) - BlackCut Out Boots (2026) - BeigeProductGroup.name(#53 이후)컷아웃 부츠컷아웃 부츠hasVariant컷아웃 부츠 - 250등)컷아웃 부츠가 되어 OG 까지 내려오지 않는다. 페이지 제목보다 상품명 필드가 정확하므로 그게 맞는 방향이다.ProductGroup도 아니면서 구형 가격 태그만 쓰는 사이트를 계속 커버한다. 다만 실측한 사이트가 PAF 하나뿐이라 그런 사이트가 실제로 얼마나 있는지는 아직 근거가 없다.확인한 전제
680,000 KRW로 정상 수신된다. 헤더가 없으면 같은 페이지가84,100 JPY를 내주므로, 현재 헤더 설정에서만 성립하는 전제다.680,000), 기존 가격 정규화가 이미 콤마를 제거한다.Result
ProductGroup인 JSON-LD 는 여전히 미스한다. 구형 OG 태그도 없는 사이트는 계속 LLM 으로 가고, 이 사이트들의 상품명도 상품명 필드가 아니라 페이지 제목에서 온다. ProductGroup 을 JSON-LD 경로에서 인식해 상품명을 정확하게 #53 에서 JSON-LD 경로에ProductGroup을 더해 함께 해소한다.연관 이슈