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

English version

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

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

このサイトには、トレカダッシュの作品ページがあります(トレカダッシュ)。ここに書くのは、開発の記録です。

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

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

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

状態件数
分けられた元の記事(親)が、非表示になっていた22
分けて作られた記事(子)190(うち表示中 63)
子のために作られた、偽の商品80

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

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

  1. 入口で、分けないようにする。「カードセット」+「N 種」という形の題名は、分割しません。
  2. 親を戻す。非表示にされた親 22 件を、「9 種類セット」の商品に戻しました。戻し方は、記事ごとに違います(表示に戻したもの 5 件、同じ店に表示中の 9 種セットがあって重複とみなしたもの 3 件、締切が切れていたもの 13 件、締切が無かったもの 1 件)。
  3. 子を外す。子 190 件は、「誤った分割」の印(hiddenByWrongSplit)を付けて非表示にして、商品との結び付きを外しました。
  4. 偽の商品を消す。80 個を削除しました。消す前に、参照しているものが 0 であることを確かめて、元の内容を控えに保存してあります。

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

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

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

分かったこと

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

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

この話に出てくるもの

ほかの記録

コメント

感想や、記事の間違いの指摘は、ここへ。書くには、GitHub のアカウントが要ります。

押すと、giscus(giscus.app)と GitHub に接続します。押さなければ、接続しません。詳しくはあつかいに書いています。