# 「9種セット」を中身ごとに分けて、偽の商品が80個できていた

> ポケモンカードの9種セットは1つの商品なのに、中身ごとに分けて、実在しない商品が80個できていた。入口を止め、親22件を戻し、子190件を外し、偽の商品を消した記録。

- URL: https://koshinstudio.com/notes/fake-products/
- 公開: 2026-10-08
- 書いた人: Koshin（https://koshinstudio.com/about/）
- サイト: Koshin Studio

  English version (https://koshinstudio.com/en/notes/fake-products/)

トレカダッシュ 開発の記録 ／ 2026年10月

  iOS アプリ「トレカダッシュ」の商品リストを点検していて、ポケモンカードの「30th CELEBRATION カードセット」の周りに、実在しない商品が 80 個あることが分かりました。公式の商品は、9 つだけです。残りの 80 は、「9 種セット」を、中身ごとに分けてしまった結果、作られた偽の商品でした。HANDOFF の記録で、何が起きて、どう直したかを書きます。

  このサイトには、トレカダッシュの作品ページがあります（トレカダッシュ (https://koshinstudio.com/works/torecadash/)）。ここに書くのは、開発の記録です。

## 9 種セットは、「1 つの商品」だった

  店が出している「カードセット（9 種セット）」の抽選は、1 つの商品です。カタログには、「9 種類セット」（10,800 円）として登録されています。ところが、アプリの商品照合（複数の商品が書いてある記事を、商品ごとに分ける処理）が、この題名を、中身ごとに分けていました。「メガミュウツー X」や「ニャビー」のように、9 種の中身の名前が、それぞれ別の商品として扱われたのです。

  その結果、こうなっていました。

    状態 | 件数

    分けられた元の記事（親）が、非表示になっていた | 22

    分けて作られた記事（子） | 190（うち表示中 63）

    子のために作られた、偽の商品 | 80

  画面には、1 つの抽選が、中身ごとの別々の抽選のように、並んでいました。

## 直し方：入口を止める、そして戻す

- 入口で、分けないようにする。「カードセット」＋「N 種」という形の題名は、分割しません。

- 親を戻す。非表示にされた親 22 件を、「9 種類セット」の商品に戻しました。戻し方は、記事ごとに違います（表示に戻したもの 5 件、同じ店に表示中の 9 種セットがあって重複とみなしたもの 3 件、締切が切れていたもの 13 件、締切が無かったもの 1 件）。

- 子を外す。子 190 件は、「誤った分割」の印（hiddenByWrongSplit）を付けて非表示にして、商品との結び付きを外しました。

- 偽の商品を消す。80 個を削除しました。消す前に、参照しているものが 0 であることを確かめて、元の内容を控えに保存してあります。

  ただし、例外があります。「スターターセット ex ニャオハ／ホゲータ／クワッス 3 種セット」のように、題名に、商品名がすべて書いてある出品は、これまでどおり分けます。「N 種セット」は、1 つの商品として売られている、というのが、今回分かったことでした。

## 同じ点検で見つかった、ほかの偽の商品

- カードではないもの。アパレル、フィギュア、大会、音楽 CD の商品が、9 月 3 日から 10 月 3 日にも、作られていました。商品を作る入口に、カードではない名前の関門（looksLikeNonCardMerchOrEventName）を足して、全カタログで誤爆 0 を確かめました。25 件を削除しました。

- 単品のカード。スニダン（スニーカーダンク）の出品に由来する、単品カードの商品を、合計 30 件、削除しました。その単品カードには、「定価」が付いているものがありました。「定価がある」ことは、「公式の裏取りがある」証拠にならない、と分かりました。裏取りの証拠は、imageIsOfficial です。

- 3 パックを 1 つにした商品。複数の弾名を並べた、非公式の商品を、1 つ削除しました。紐付く 49 記事は、すべて期限切れでした。

  これらを見張るために、監査（audit_catalog_clean.js）を足しました。単品カードの商品、複数の弾名の商品、応募ページの題名と商品の食い違い、商品から写した定価のズレ、カードではない名前の商品、の五つを、毎回数えます。

## 分かったこと

> 「分ける」処理には、「分けない」条件が要る。

- 1 つの商品を、複数に分けると、偽の商品が増える。分割は、「本当に複数の商品か」を確かめてから行う必要があります。

- 消す前に、参照を数える。参照がゼロであることと、控えを取ってあることを確かめてから、削除しました。

- 偽の商品は、入口と中身の両方で止める。入口の関門だけでは、すでにできたものが残ります。監査が、残りを数えます。

  この記事は、HANDOFF（§272）の記録（2026年10月7日）から書きました。件数は、記録に書かれたものです。

  この話に出てくるもの

- 「9種セット」の正体は御三家9商品だった (https://koshinstudio.com/notes/torecadash-9set/) — 同じ商品の、突き合わせの記録

- 「重複は実質ゼロ」と数えたのに、監査は112組を出していた (https://koshinstudio.com/notes/dup-zero/) — 同じ日の、別の記録
