プラットフォーム & SaaS

IM ベューティーグロウ

美容マーケットプレイスの事例研究です。サロン検索、予約、パッケージ、商品販売のためのAPIを共有するウェブアプリケーションとモバイルアプリケーションを扱います。

サロン検索、注目のサロン、人気商品を表示するIM Beauty Glowのホームページ
ホーム

プロジェクト概要

実際の運用業務を軸に構築された、一体化したプラットフォーム。

IM Beauty Glowは、一般消費者向けの美容・サロンマーケットプレイスであり、Next.jsストアフロントとReact Native連携アプリという対をなす構成で構築されています。両者はリクエストのフィールド名に至るまで、まったく同一のバックエンドAPI契約を共有しています。ゲストはサロンを検索し、個別サービスやセットになったパッケージ・オファーを予約し、サロンの商品を購入し、どちらの画面からでも予約や注文を同じように管理できます。サロン側も同じプラットフォームを通じて自ら登録し、自身の情報を管理します。

01

課題

このプロダクトは、相互に関連する運用上の課題を解決する必要がありました。

ゲストは目の前にあるどのデバイスからでもサロン訪問の調査・予約・支払いができることを期待しており、モバイルの予約フローがウェブサイトの料金や空き状況のルールと知らぬ間に食い違えば、信頼はたちまち損なわれます。また本製品では、個別サービス、割引パッケージ、期間限定オファーという3種類の異なる商品を、3つの別々のシステムに分けることなく一つの予約フローで販売する必要がありました。

02

技術的アプローチ

意図的な技術的アプローチがこのシステムを形作りました。

ウェブアプリはサロンの検索、サービス、パッケージ・オファー、カート、チェックアウト、支払い、アカウント管理まで、コマース領域をエンドツーエンドで担っており、型付けされたAPI層の背後で予約・カート・税金・支払いのロジックをプレゼンテーション層から切り離しています。モバイルアプリはこの契約を再実装するのではなく、正確に踏襲する形で構築しました。オファーやパッケージの予約に対応させる前に、まず実際に稼働しているウェブおよびバックエンドの検証ルールを確認し、その上で既存の予約フローを拡張し、サービス・オファー・パッケージという3種類の予約元を、ウェブアプリが既に送信していたものと同じエンドポイントおよび同じオプションの識別子を通じて受け付けられるようにしました。パッケージとオファーの価格はサーバー側が常に正としており、端末側で再計算されることはないため、両アプリ間で割引にずれが生じることはありません。

サロン向けセルフオンボーディング

プロダクトを詳しく見る。

サロンが自らオンボーディングするための「List Your Salon」フローです。オーナー情報、事業プロフィール、所在地、サービス内容、営業時間を、一つのガイド付き複数ステップフォームで入力します。

複数ステップの登録フォームを備えたIM Beauty Glowのサロン向けセルフオンボーディングランディングページ

サロン詳細

プロダクトを詳しく見る。

サロン詳細ページです。料金付きのサービスカタログ、人気の専門スタッフ、そのまま予約できる操作を備えており、ゲストがウェブでも連携アプリでも利用する同一の画面です。

サービス一覧と人気の専門スタッフを表示する、Amber Beauty StudioのIM Beauty Glowサロン詳細ページ

プロダクトとインターフェース

構築したもの

  • 一般消費者向けウェブストアフロント(サロン検索、予約、カート、チェックアウト、アカウント)
  • iOS/Android連携アプリ(React Native)
  • サロン向けセルフオンボーディングフロー(「List Your Salon」)
  • サービス・パッケージ・オファー共通の予約フロー
  • SEOパイプライン(ビルド時に生成されるサイトマップと.htaccess)
  • プッシュ通知連携(OneSignal、Notifee)

プラットフォームの幅広さ

コアケイパビリティ

  • サロンの検索、サービス予約、パッケージ/オファーの予約を一つの共通フローで実現
  • Web・モバイル双方にまたがる商品カタログ、カート、チェックアウト
  • 予約、注文、レビュー履歴を1つのアカウントに同期
  • サーバー側で確定するパッケージ・オファー価格 — デバイス上での再計算は一切行わない
  • サロンによるセルフオンボーディングと掲載管理
  • 予約や注文更新に関するプッシュ通知
  • 両アプリで共通のAPI仕様のもと、厳格なTypeScriptを採用

根拠

検証済みの範囲と成果

  1. リクエストのフィールド名に至るまで、まったく同一のバックエンド契約に基づいて構築された、ウェブとモバイルの2つのクライアントアプリケーション
  2. ウェブストアフロントの47のルーティングページと、連携モバイルアプリの29画面
  3. 既存の検証契約を正確に踏襲することで、バックエンドを一切変更せずにパッケージとオファーの販売にまで拡張した予約フロー
  4. デッドコードとモックデータの除去作業の後、モバイルのコードベース全体でTypeScriptエラー・ESLintエラーがゼロであることを検証済み

質問と回答

IM ベューティーグロウに関するよくある質問

More questions? Feel free to reach out.

関連プロジェクトについて相談する →
IM ベューティーグロウとは何ですか?

IM Beauty Glowは、一般消費者向けの美容・サロンマーケットプレイスであり、Next.jsストアフロントとReact Native連携アプリという対をなす構成で構築されています。両者はリクエストのフィールド名に至るまで、まったく同一のバックエンドAPI契約を共有しています。ゲストはサロンを検索し、個別サービスやセットになったパッケージ・オファーを予約し、サロンの商品を購入し、どちらの画面からでも予約や注文を同じように管理できます。サロン側も同じプラットフォームを通じて自ら登録し、自身の情報を管理します。

IM ベューティーグロウでは何を構築しましたか?

この取り組みには 一般消費者向けウェブストアフロント(サロン検索、予約、カート、チェックアウト、アカウント), iOS/Android連携アプリ(React Native), サロン向けセルフオンボーディングフロー(「List Your Salon」), サービス・パッケージ・オファー共通の予約フロー, SEOパイプライン(ビルド時に生成されるサイトマップと.htaccess), プッシュ通知連携(OneSignal、Notifee) が含まれます。

IM ベューティーグロウにおける Muhammad Muzammil Qureshi の役割は何ですか?

Muhammad Muzammil Qureshi は 最高技術責任者(CTO) として、本事例で説明されている技術方針、アーキテクチャ、デリバリー、運用体制全般に責任を持ちました。

IM ベューティーグロウを支える技術は何ですか?

IM ベューティーグロウは Next.js 15 · React 19 · TypeScript · Tailwind CSS v4 · React Native 0.86 を使用しています。

サービス、パッケージ、オファーを予約する際、ウェブアプリとモバイルアプリの整合性はどのように保たれていますか。

Next.jsのウェブアプリは、検索、サービス、パッケージ・オファー、カート、チェックアウト、アカウントといったコマース領域を担っており、型付けされたAPI層の背後で予約・カート・税金・支払いのロジックをプレゼンテーション層から切り離しています。React Native連携アプリはこの契約を正確に踏襲しており、パッケージとオファーの価格は端末側で再計算されるのではなくサーバー側が常に正であるため、両アプリ間で割引にずれが生じることはありません。

IM Beauty Glowでは、ゲストは個別サービス以外も予約できますか。

はい。同一の予約フローが、個別サービス、割引パッケージ、期間限定オファーという3種類の予約元を、一つのエンドポイントとウェブアプリが既に送信しているものと同じオプションの識別子を通じて受け付けます。そのため、パッケージとオファーは別の予約システムを構築することなく追加されました。

サロンはどのようにしてIM Beauty Glowプラットフォームに参加するのですか。

サロンは「List Your Salon」フローを通じて自らオンボーディングを行い、事業情報、所在地、サービス内容、営業時間を登録します。登録後は、ゲストが利用するのと同じプラットフォーム上で、公開プロフィール、予約、商品販売を管理します。

IM Beauty Glowのローンチ前には、どのような検証が行われましたか。

ウェブストアフロントは47のルーティングページ、連携モバイルアプリは29画面から成り、いずれもリクエストのフィールド名に至るまで同一のバックエンド契約に基づいて構築されています。モバイルのコードベースは、デッドコードとモックデータの除去作業の後、TypeScriptエラー・ESLintエラーがゼロであることを検証済みです。

Let's build what's next

Have a complex system that needs to be built right?

Whether you are starting from an idea, replacing an existing platform, or scaling a system, let's talk.

Better Technology.
Brighter Possibilities.