クックパッドマートを支えるアカウントたち

クックパッドマートの開発に携わっているソフトウェアエンジニアの塩出(@solt9029)です。

生鮮食品ECサービスのクックパッドマートでは、注文ユーザー向けのECアプリを中心として、商品を販売する店舗向けの管理画面、生鮮食品の流通を支えるドライバー向けのWebアプリなど、様々なアプリケーションを開発・提供しています。

今まで利用者の課題を解決するために、それぞれのアプリケーションの認証機能やアカウントの仕組みについて、色々な工夫や挑戦をしました。本記事をはじめとして、2022年7月19日〜7月26日(平日のみ)にかけて、クックパッドマートの様々なアプリケーションを支えるアカウントの仕組みやそれらを用いて解決した課題、より良いユーザー体験を実現するために工夫した点を紹介する予定です。

本記事では、クックパッドマート自体の紹介をはじめ、クックパッドマートで日々開発しているアプリケーションの概要と、それぞれに用いられているアカウントの仕組みについて簡単に紹介します。

クックパッドマートとは

クックパッドマートは、弊社が力を入れて取り組んでいる新規事業の1つです。生鮮食品を中心として扱っているECプラットフォームで、街の販売店や地域の生産者がクックパッドマートに参加しています。コンビニエンスストア・ドラッグストア・駅・マンションなどの様々な場所にユーザーの受け取り場所として専用の冷蔵庫が設置されており、ユーザーはアプリから注文を行い、専用の冷蔵庫から商品を受け取ることができます。

クックパッドマートの専用冷蔵庫

ECアプリ

クックパッドマートで生鮮食品を中心とした商品を注文するためのモバイルアプリです。iOSとAndroidの両方で「クックパッドマート」のアプリを提供しています。商品の注文だけでなく、お気に入り商品の登録やレビュー投稿など、様々な機能を提供しています。

ECアプリ

ECアプリでは、インストール後に気軽に買い物を始めてもらうため、利用開始時にユーザー登録のフローを設けていません。しかし、ユーザー登録無しの状態では、機種変更時のデータの引き継ぎができない点や、ユーザーとのコミュニケーション手段がプッシュ通知に限られてしまう点などの課題がありました。

そこで、ECアプリにログイン機能を導入することにしました。その際、ユーザー登録無しの状態で利用していたデータを、ログイン後も引き続き利用するために、ログイン後のユーザーに持ち越す仕組みをバックエンド側で実現する必要がありました。また、その処理は非同期で数十秒〜数分の実行時間がかかるものであったため、ECアプリ上で見せ方や状態管理を工夫する必要がありました。

7月20日(水)・21日(木)に公開予定の記事では、ECアプリのログイン機能導入の背景や体験設計およびその実装を紹介します。また7月22日(金)に、ログイン後のユーザーデータ統合の処理について、バックエンドの仕組みを紹介します。

店舗向け管理画面

クックパッドマートでは、商品を販売する店舗向けに管理画面を提供しています。店舗向け管理画面では、商品の登録・営業日の管理・日々の出荷作業に必要な情報の確認・売上情報の閲覧など、様々な機能があります。

店舗向け管理画面

今までは、店舗向け管理画面の認証のために、ユーザー登録の仕組みを設けていませんでした。専用のチャットアプリ上で管理画面のログインURLを都度発行する方式を取っていました。このログイン方式では、「店舗スタッフごとの権限管理や操作ログの監査ができない」という明確な課題や、「店舗とクックパッドのユーザーは分離された概念となり、クックパッドにおけるサービス共有資産が活用できない」という中長期的な課題がありました。

そこで店舗の認証方法を、クックパッドのユーザーを利用したものに移行しました。認証方法の移行の際、複数の認証方法の並存の実現や、データ設計やログイン体験の変更など、多くの困難な課題を解決する必要がありました。

7月25日(月)に公開予定の記事では、店舗の認証方法の移行の背景や経緯、実現のために求められた要件や解決した課題について紹介します。

ドライバー向けWebアプリ

クックパッドマートでは、生鮮食品の流通を担当するドライバー向けのWebアプリを開発しています。ドライバー向けWebアプリでは、配送経路・時間・対象商品などを確認する機能や、配送状況を随時共有するための機能などがあります。ドライバーの役割に応じて大きく異なる情報や操作が必要となるため、ドライバー向けWebアプリとして複数のアプリケーションが存在します。

ドライバー向けWebアプリ

ドライバー向けWebアプリでは、アカウントの仕組みを整える上で、ECアプリや店舗向け管理画面とは大きく異なる要件がありました。例えば、全てのアカウントをクックパッド側で管理する必要がある点・運送会社や役割に応じて詳細に権限管理をする必要がある点などです。

そこでドライバー向けWebアプリでは、クックパッドのユーザーを利用せず、弊社内で利用している認証サービスであるAzure ADを利用することにしました。Azure ADを利用することによって、クックパッド側でのアカウント管理や権限管理など、運用しやすい状態に保つことができました。

7月26日(火)に公開予定の記事では、ドライバー向けWebアプリの詳細や、Azure ADを使った権限管理や運用体制の詳細について紹介します。

最後に

本記事では、クックパッドマートで開発・提供している代表的なアプリケーションを紹介しました。次回以降の記事では、それぞれのアプリケーションのアカウントの仕組みについて、以下の日程でより詳細を紹介する予定です。

最後になりますが、クックパッドマートでは事業成長のためにスピードを高めて開発に取り組んでおり、様々な技術に触れる機会も多くとても楽しい環境です!弊社では絶賛エンジニア募集中なので、興味を持って頂けた方はぜひ採用情報をご覧ください。

info.cookpad.com