技術的課題解決により商品点数、店舗数が国内トップのECサイトに
1999年にECサイトとしてスタートしたYahoo!ショッピングだが、2010年から2011年にかけて成長率が鈍化し、2012年にはついに前年割れとなってしまった。右肩上がりのECコマース市場を考えると、サービスそのものの存続が危ぶまれるほどの異常事態であった。そこで、Yahoo!ショッピングは2013年に「eコマース革命」を発表し、それまで出店者に義務付けられていた毎月の出店料と売上ロイヤルティを無料化。ビジネスモデルの変革により、2016年には商品点数を約3倍の約2億5000万点、店舗数を約16倍の48万店舗と日本一になるまで伸ばし、成長率も大きく回復した。その背後には、さまざまな課題の解決に取り組んできたエンジニアの努力があった。
まず、システムの巨大化という問題があった。それまではモノリシックな大規模システムを少人数で運用していたが、エンジニアが増えるにつれて開発効率の低下、ソースコードのデグレードなどのトラブルが日常的に発生するようになった。原因はプラットフォームとフロンドエンドが同じコードベース上で動作していたことだ。そこで、プラットフォームとフロンドエンドを完全に分離。さらに課金、商品管理など機能別にコンポーネントに分割してシンプルなインターフェイスを持たせ、コンポーネント単位で独立して開発できるようにすることで開発効率の向上を実現した。現在では当たり前の手法だが、10年以上もYahoo!ショッピングの屋台骨であった巨大システムを根本から変えるのはエンジニアにとって大きなチャレンジだった。
二重価格問題という課題もあった。例えば通常価格が2,000円で、セール時に50%引きで1,000円にする場合は問題ないが、通常価格を3,000円に変えてセール価格を1,500円にし、不当なお得感を演出するというやり方だ。これではユーザーの買い物体験を損ねてしまう。そこで、全商品について価格の変更履歴を一定期間分保存し、商品価格の表示時に自動でチェックを行った。チェックの結果が適切な場合はセール価格、そうでない場合は通常価格と表示するようにシステムを変更。すると不適切なセール価格の商品が0になり、ユーザーへの不当なお得感の提示をなくすことができた。
さらにもう1つの例として、新規ユーザーの購入率が低い課題が挙げられた。eコマース革命後、新規ユーザーのアクセスが増えていくのに従って、既存のユーザーと比べ商品を購入する割合がとても低いことが顕著になった。過去に商品を購入していれば注文履歴から商品をレコメンドできるが、注文履歴のない新規ユーザーには適用できない。そこで、新規ユーザーが検索したキーワードと同じもので検索した既存ユーザーをマッチングさせ、既存ユーザーの注文履歴をもとにレコメンドする方法を適用。これにより新規ユーザーにも精度の高いレコメンドが可能になり、新規ユーザーの購入率を3~4倍に伸ばすことができた。