Skip to content
Pepin
予約システム2026-03-242026-09-1812分で読めます
予約システム導入ガイド設定

予約システム導入の失敗7パターン|Shopifyでの回避策

予約システム導入の失敗7パターン|Shopifyでの回避策

予約システムの導入が失敗するとき、原因は「アプリの機能が足りなかった」ことよりも「設定をひとつ外し忘れた」ことのほうが、はるかに多いです。Shopifyは予約枠を 商品として売る 仕組みなので、物販向けの設定がそのまま予約枠にも効いてしまいます。この噛み合わせを知らないまま公開すると、予約に送料が乗り、在庫が尽き、通知が届きません。

予約システム導入の判断

この記事が扱うのは 導入のときにやらかす失敗と、その回避 だけです。どのアプリを選ぶかは Shopify予約システム比較2026、来店予約の立ち上げ方は Shopifyで来店予約・店舗予約を受け付ける方法、予約ページの見た目は Shopify予約ページのカスタマイズ手順、無断キャンセルへの対処は 無断キャンセル対策5つ に分けてあります。

わたしは まるっと予約 というShopify予約アプリを作っている開発者です。サロンや教室の運営者ではないので、この記事に「お客様の声」は出てきません。代わりに、Shopify公式ヘルプで裏が取れる「仕様上そうなる」話だけを書きます。「導入の◯%が失敗」のような出所のわからない数字も使いません。

予約システムの導入は、なぜ失敗するのですか?

失敗のほとんどは、アプリを入れた瞬間ではなく 「Shopifyの既定値をそのまま通した瞬間」 に生まれます。

Shopifyには予約という独立した箱がありません。予約アプリは、予約枠を商品として登録し、その商品が売れたことを予約として扱います。つまり予約枠は、Shopifyから見れば ただの商品 です。配送も、在庫も、通知も、物販と同じ経路を流れます。

予約枠=商品という構造
Shopify公式ヘルプも、サービスを売る場合は商品として登録したうえで配送を不要にする、という手順を案内しています。予約は物販の仕組みの上に載っている、というのが前提です。

出典:Shopifyヘルプセンター「サービスまたはデジタル商品の販売」

この構造を知っていれば、失敗の型はあらかじめ数えられます。逆に知らないと、公開してからお客様の問い合わせで気づくことになります。

予約システムの導入でよくある失敗は、どの7つですか?

実際に起きるのは、だいたい次の7つです。どれも公開前に潰せます。

#失敗直接の原因
1予約に送料が乗る「配送が必要な商品」が有効
2ダブルブッキングする在庫の持ち方が物販と同じ
3注文の処理が割れる予約と物販が同じ注文に混在
4予約カレンダーが消えるテーマ変更でアプリが無効に戻る
5通知メールが届かない迷惑メール判定・テスト不足
6月の途中で受付が止まる無料プランの件数上限
7返金の判断が毎回変わるキャンセルポリシー未確定
失敗パターンの洗い出し

失敗1:予約枠に送料が乗ってしまう

どう起きるか

予約メニューを商品として登録し、価格を入れて公開します。お客様がカートに入れると、チェックアウトに送料が足されます。5,000円の施術を予約したはずのお客様が、5,660円を請求される。しかも配送先住所の入力を求められるので、そこで離脱します。

なぜ起きるか

Shopifyの商品には「配送が必要な商品」という設定があり、新規作成時は有効です。有効なまま公開すると、Shopifyはその予約枠を 配送する荷物 として扱い、配送プロファイルの送料を計算します。アプリの不具合ではなく、Shopifyの既定の挙動です。

回避策

  1. 1

    商品の配送セクションを開く

    管理画面の [商品管理] から予約用の商品を開きます。バリエーションがある場合は、バリエーションごとに開きます
  2. 2

    「配送が必要な商品」を無効にする

    [配送] セクションのチェックを外して保存します。バリエーション単位で設定が分かれるので、1つ外して安心しないこと
  3. 3

    一括編集でまとめて外す

    メニューが多いときは、商品一覧の一括編集で「配送が必要」の列を出し、まとめて無効にします
  4. 4

    自分でカートまで通す

    テスト注文でチェックアウトまで進み、送料行と配送先入力が消えていることを目で確認します

出典:Shopifyヘルプセンター「サービスまたはデジタル商品の販売」

物販と予約を同じストアで扱う場合、送料の条件(〇円以上で無料など)は予約枠の金額も拾ってしまうことがあります。予約枠を「配送不要」にしておくと、この計算からも外れます。送料設定そのものの組み立ては Shopifyの送料設定を徹底解説 にまとめています。

失敗2:物販の在庫と予約枠を、同じ数字で持ってしまう

どう起きるか

「14時の枠は1件だけ」と決めて、商品の在庫数を1に設定します。ところが同じ時間帯に2件の予約が入ります。あるいは逆に、在庫が0になった瞬間に予約ページから枠ごと消えてしまい、キャンセルが出ても復活しません。

なぜ起きるか

原因はたいてい 「在庫切れの場合でも販売を続ける」 がオンになっていることです。この設定が有効だと、Shopifyは在庫が0以下になっても購入を止めません。物販では欠品時の機会損失を防ぐ便利な設定ですが、予約枠に効かせると定員が意味を失います。

もうひとつは、在庫追跡そのものを予約アプリ側と商品側で二重に持ってしまうケースです。枠の残数をアプリが管理しているのに、商品にも在庫数を入れると、どちらが正なのかが決まりません。

出典:Shopifyヘルプセンター「在庫追跡の設定」

回避策

メリット
推奨する持ち方枠の残数は予約アプリのカレンダー側に一本化し、商品側の在庫追跡はアプリの案内どおりに揃える。物販の在庫とは別ロケーションに分ける
デメリット
やりがちな持ち方予約枠の残数を商品の在庫数で管理し、「在庫切れでも販売を続ける」も有効のまま。定員を超えて予約が通り、当日その場で謝ることになります

同じ日に物販の在庫も動かす予定があるなら、予約用の商品を別ロケーションに割り当てておくと、在庫の動きが読めるようになります。

失敗3:予約と物販が同じ注文に混ざり、処理が割れる

どう起きるか

お客様が「体験レッスンの予約」と「持ち帰り用の商品」を同じカートで購入します。注文画面を開くと、フルフィルメントのカードが2つに分かれています。どちらを発送済みにすればいいのか分からず、片方を放置したまま「未発送」の注文が積み上がります。

なぜ起きるか

これはShopifyの仕様です。配送が必要なアイテムと、配送が不要なアイテム(=予約枠)が1つの注文に混ざると、外部ロジスティクス(3PL)以外のロケーションでは フルフィルメントカードが別々に分割されます 。公式ヘルプでも、混合注文を頻繁に扱うなら配送不要のアイテムを専用ロケーションに割り当てることが推奨されています。

出典:Shopifyヘルプセンター「サービスまたはデジタル商品の販売」

回避策

  1. 01

    予約枠を専用ロケーションに置く

    「予約」という名前のロケーションを作り、予約用の商品だけをそこに割り当てます。注文画面でどちらが予約かが一目で分かります
  2. 02

    予約分のカードは即フルフィルメント

    予約枠には発送がないので、受け付けた時点で完了扱いにするルールを決めます。放置された未発送が消えます
  3. 03

    発送通知の文面を分ける

    予約分に「発送しました」というメールが飛ぶと混乱します。通知の出し分けは、予約アプリ側の通知に寄せるのが素直です

物販と予約をひとつのストアで回す設計そのものは、Shopifyで物販と予約を同時に扱う一元管理の作り方 で扱っています。

ロケーションと通知の設定

失敗4:テーマを変えたら、予約カレンダーが消える

どう起きるか

予約の受付は問題なく動いていました。ある日、サイトのデザインを変えようとして新しいテーマを公開します。翌朝、予約が1件も入っていません。商品ページを開くと、予約カレンダーが跡形もなく消えています。

なぜ起きるか

Shopifyのアプリブロックと埋め込みアプリは テーマごとに設定を持ちます 。公式ヘルプにこう書かれています。

テーマにアプリをインストールした後、公開済みのテーマを変更した場合、それらのアプリはデフォルトでは有効になっていないため、新しいテーマで再度有効にする必要があります。

出典:Shopifyヘルプセンター「アプリでテーマを拡張する」

さらに、アプリブロックは互換性のあるテーマでしか使えず、セクションによってはブロックを受け付けないこともあります。テーマを変えるというのは、予約導線を作り直すのと同じ作業量だと考えたほうが安全です。

回避策

  1. 1

    公開する前にプレビューで確認する

    新しいテーマを公開せず、テーマエディタで予約カレンダーのブロックを追加し、プレビューで表示を確かめます
  2. 2

    埋め込みアプリも別枠で有効にする

    サイドバーの [埋め込みアプリ] は、アプリブロックとは別の設定です。両方を新テーマで有効にします
  3. 3

    テーマを複製してから触る

    公開中のテーマを複製し、複製側で作業します。戻せる状態を先に作っておきます
  4. 4

    切り替えは受付の少ない時間に

    公開直後にスマートフォンで予約を1件通し、カレンダーと通知が動くことを確認してから告知します

テーマを更新したときも同じことが起きます。「アップデートしたら予約が止まっていた」を防ぐには、テーマに触った日は必ず自分で1件予約を入れる、という運用ルールにしてしまうのが確実です。

失敗5:予約の通知メールが、迷惑メール扱いで届かない

どう起きるか

予約は入っています。管理画面にも記録があります。ところが当日、お客様が来ません。連絡すると「予約できたのか分からなかったので、キャンセルされたと思っていました」と言われます。確認メールが迷惑メールフォルダに入っていたパターンです。

なぜ起きるか

Shopify公式ヘルプも、通知が受信されない場合はまず スパムフォルダーまたは迷惑メールフォルダー を確認し、それでも解決しなければ別のメールプロバイダのアドレスを案内するよう書いています。つまり、届かないことは起こりうる前提で運用されています。

出典:Shopifyヘルプセンター「お客様への通知の設定」

導入時に厄介なのは、メールの経路が 2本ある ことです。Shopify本体が出す注文確認メールと、予約アプリが出す予約確認・リマインドメールは別系統で、片方だけテストして安心してしまいがちです。

回避策

公開前に通すテスト

  • Gmail・Outlook・携帯キャリアのアドレスで、それぞれ受信テストをする
  • Shopifyの注文確認メールと、予約アプリの予約確認メールを両方受け取る
  • 迷惑メールフォルダに入っていないかを、受信箱だけでなくフォルダごと確認する
  • 前日リマインドが送られる時刻を、実際に1日待って確認する
  • 予約完了ページに「メールが届かない場合はこちら」の連絡先を置く

メールだけに頼らない作りにしておくのも有効です。予約完了画面にカレンダー追加(ICS)を置く、SMSやLINEを併用する、といった二重化で「届かなかった」の被害が小さくなります。自動メールの組み立て方は Shopifyで予約の自動メールを設定するチュートリアル にあります。

通知メールのテスト

失敗6:無料プランの件数上限に、月の途中で当たる

どう起きるか

無料プランで予約アプリを入れ、うまく動いたので告知を打ちます。反響があって予約が伸びた月の半ばで、突然お客様が予約できなくなります。上限に達していたことに、問い合わせが来るまで気づきません。

なぜ起きるか

予約アプリの無料プランには、ほぼ必ず件数の上限があります。ここで見落としやすいのが 「月間」なのか「累計」なのか という違いです。累計だと、使い始めて数週間で二度と無料枠が戻らないことになります。

わたしが開発している まるっと予約 を例にすると、2026年9月18日時点のApp Storeリスティングはこうなっています。

累計10件
Freeプラン
月ごとにリセットされない上限
月間30件
Starterプラン
月額19.99ドル
件数無制限
Growthプラン
月額49.99ドル

出典:Shopify App Store「まるっと予約|来店・イベント予約」

Freeは累計10件、Starterは月間30件。言葉が1つ違うだけで、運用できる期間がまったく変わります。他社アプリも無料枠の数え方はばらばらなので、 リスティングの料金表を自分の目で読む 以外に確かめる方法はありません。

料金はドル建てで請求されます。円換算の「月◯円」を前提に予算を組むと、為替で崩れます。App Storeのリスティングに書かれているドル額を、そのまま比較の軸にしてください。

回避策

  1. 1

    想定件数を先に出す

    月の予約件数を、繁忙月の数字で見積もります。平均ではなく、いちばん多い月で考えます
  2. 2

    上限の数え方を読む

    「月間」か「累計」か、キャンセル分が戻るのかを、リスティングの文言で確認します
  3. 3

    告知の前に有料プランへ上げる

    SNSやチラシで告知する月は、先にプランを上げておきます。止まってから上げても、離れたお客様は戻りません
  4. 4

    上限が近づいたときの検知を決める

    管理画面を見る頻度を決めるか、上限通知の有無をアプリ側で確認しておきます

プラン別の比較そのものは Shopify予約システム比較2026 にまとめてあります。

失敗7:キャンセルポリシーを決めずに公開する

どう起きるか

予約は取れるようになりました。キャンセル条件は「お問い合わせください」とだけ書いて公開します。1か月後、「前日キャンセルだけど返金してほしい」「友人に譲りたい」「3回目の日程変更をしたい」という連絡が積み上がり、判断が毎回変わります。同じ条件のお客様に違う対応をしてしまい、そこから揉めます。

なぜ起きるか

ポリシーがないのではなく 明示していない ことが問題です。日本語ストアの場合、もうひとつ落とし穴があります。Shopifyのポリシーテンプレートの自動生成は、英語(およびフランス語・イタリア語・スペイン語)でしか使えません。日本語で運営しているなら、返品ポリシーは自分で書く必要があります。

出典:Shopifyヘルプセンター「ストアポリシーを追加する」

法律の面でも、締め方が雑だと効きません。消費者契約法第9条第1項第1号は、解除に伴う違約金を定める条項のうち 同種の契約の解除に伴い事業者に生ずべき平均的な損害の額を超える部分 を無効としています。同条第2項は、お客様から説明を求められたときに算定根拠の概要を説明するよう努めることも求めています。

出典:e-Gov法令検索「消費者契約法」第9条

一律「いかなる場合も返金不可」と書くより、時期で段階を分けたほうが、根拠を説明しやすくなります。ただし個別の条項が有効かどうかは事情によって変わります。金額の設定で迷ったら、最終的な判断は弁護士など専門家に確認してください。

回避策

  1. 1

    期日で機械的に決める

    「7日前まで全額返金/3日前まで50%/前日以降は返金なし」のように、日付だけで判定できる形にします
  2. 2

    日程変更を返金と切り離す

    「同月内で1回まで変更可」のように別ルールにすると、返金の話にならずに済む件数が増えます
  3. 3

    中止側の条件も先に書く

    悪天候や最少催行人数など、店舗から中止する条件を先に書いておきます
  4. 4

    3か所に同じ文面を置く

    ストアのポリシーページ、予約ページ、予約確認メールに同じ文面を載せます。ポリシーページは /policies/refund-policy で直接リンクできます

前払いを取るかどうかで、キャンセルの重みも変わります。金額の決め方は Shopify予約のデポジット(前払い)はいつ・いくら取る? に、当日来ない人への対処は 無断キャンセル対策5つ にまとめています。

予約システムの導入前に、失敗を潰すチェックリストはありますか?

公開ボタンを押す前に、このリストを上から通してください。7つの失敗のうち6つは、ここで止まります。

公開前チェック

  • 予約用の商品すべてで「配送が必要な商品」を無効にした
  • テスト注文をカートからチェックアウトまで通し、送料行が出ないことを見た
  • 枠の残数をどこで管理するかを決め、二重に持っていない
  • 「在庫切れの場合でも販売を続ける」の状態を予約商品で確認した
  • 予約用のロケーションを分け、混合注文の処理手順を決めた
  • テーマを複製してから編集し、公開後に予約を1件通した
  • Shopifyの注文確認と、予約アプリの予約確認を別々に受信テストした
  • 繁忙月の予約件数で、プランの上限に当たらないことを確かめた
  • キャンセル・変更・中止の条件を期日付きで書き、3か所に載せた
  • スマートフォンで、お客様と同じ画面を最初から最後まで通した
公開前チェックの完了

導入から公開までの順番

  1. 1日目

    アプリを入れて枠を作る

    設定

    メニューと受付時間を登録します。この段階では公開しません
  2. 2日目

    商品側の設定を直す

    設定

    配送・在庫・ロケーションを、予約用に揃えます
  3. 3日目

    自分で予約を通す

    検証

    スマートフォンから1件予約し、メールを2系統とも受け取ります
  4. 4日目

    ポリシーを書いて載せる

    文面

    期日で判定できる文面を、3か所に置きます
  5. 5日目

    公開して、また1件通す

    公開

    公開後にもう一度テストしてから告知します

よくある質問

Shopify固有のものに絞ると、予約枠に送料が乗ってしまうケースです。商品の「配送が必要な商品」が既定で有効なまま公開されることで起きます。お客様から見ると、施術やレッスンの予約なのに配送先の入力を求められ、金額も合いません。公式ヘルプが案内しているとおり、商品(およびバリエーション)ごとに配送を不要にしてから公開してください。1つの商品で外しても、バリエーション側に残っていることがあります。

試す分には問題ありませんが、告知を打つ前にプランを上げるかどうかを決めておいてください。無料プランの上限が「月間」なのか「累計」なのかで、使える期間がまったく変わります。累計10件のような設計だと、数週間で受付が止まります。上限に当たってから気づくと、その間に来たお客様は予約できないまま離れてしまいます。件数の数え方は、必ずApp Storeのリスティングで確認してください。

本当です。Shopify公式ヘルプに、公開済みのテーマを変更した場合はアプリが既定で有効になっておらず、新しいテーマで再度有効にする必要があると明記されています。アプリブロックと埋め込みアプリは別々の設定なので、両方を確認してください。公開中のテーマを複製して作業し、公開後に自分で1件予約を通す運用にしておけば、気づかないまま止まっている時間をなくせます。

まず迷惑メールフォルダです。Shopifyのヘルプでも、通知が受信されない場合はスパムフォルダーを確認し、解決しなければ別のメールプロバイダのアドレスを案内するよう書かれています。次に疑うのは、テストした経路が片方だけだったケースです。Shopify本体の注文確認メールと、予約アプリが出す予約確認メールは別系統なので、両方を自分で受け取って確認してください。

日付だけで判定できるところまでです。「7日前まで全額返金/3日前まで50%/前日以降は返金なし」のように書けば、都度の判断がなくなります。あわせて日程変更のルールと、店舗側から中止する条件も書いてください。なお消費者契約法第9条は、解除に伴う違約金のうち平均的な損害の額を超える部分を無効としています。金額設定に迷う場合は、弁護士など専門家に確認してください。

予約枠を専用のロケーションに割り当てておけば、注文画面で見分けがつきます。配送が必要な商品と配送が不要な商品が同じ注文に入ると、Shopifyはフルフィルメントのカードを分割します。公式ヘルプも、混合注文を頻繁に扱うなら配送不要のアイテムを専用ロケーションに割り当てることを勧めています。予約分は受け付けた時点で完了扱いにする、と先にルールを決めておくと未処理が溜まりません。

まとめ:予約システムの導入は、公開前の30分で決まる

予約システムの導入で起きる失敗は、派手なトラブルに見えて、その正体はだいたい設定値ひとつです。Shopifyが予約枠を商品として扱う以上、物販の既定値が予約にも効いてしまう。この一点さえ押さえていれば、7つの型はどれも公開前に潰せます。

  • 予約枠は商品なので、配送・在庫・通知は物販と同じ経路を通る
  • 「配送が必要な商品」を外し忘れると、予約に送料が乗って離脱する
  • テーマを変えるとアプリは既定で無効に戻る。公開後に1件通して確認する
  • 通知はShopifyと予約アプリの2系統。両方を自分で受け取ってテストする
  • 無料プランの上限は「月間」か「累計」かで意味が変わる
  • キャンセル条件は期日で機械的に決め、3か所に同じ文面を置く

やることは、公開ボタンを押す前に自分で1件予約を通すことだけです。それで気づけない失敗は、この記事の範囲ではほとんど残りません。

まるっと予約について

まるっと予約 は、わたしが開発しているShopify向けの予約アプリです。予約カレンダーの設置、スタッフや部屋などのリソース管理、お客様自身によるキャンセルまで、Shopifyの中で完結します。

正直に書いておくと、公開が2026年3月と新しく、App Storeのレビューはまだ0件です。Built for Shopifyのバッジも取得していません。レビュー数や実績で選ぶなら、他の予約アプリのほうが安心できる材料は多いです。判断の材料として Shopify予約システム比較2026 も置いてあります。

2026年9月18日時点の情報です。Shopifyの画面と設定項目、およびアプリの料金プランは変更されることがあります。料金はApp Storeのリスティングを、設定手順はShopify公式ヘルプを、それぞれ最新の内容で確認してください。法的な判断については専門家にご相談ください。

→ Shopifyを無料で試してみる

→ まるっと予約を7日間無料で試す

この記事は、時間予約・来店予約・イベント予約に対応するShopify予約システム「まるっと予約」の開発元であるPepinが執筆しています。

予約システム導入ガイド設定トラブル対応
Share
SHIN

この記事の執筆者

SHIN

Pepin代表、Webエンジニアとして10年以上の経歴を持ち、
Shopifyアプリ・ストア開発 / webサービス開発 / メディア運営などマルチに活動。

まずは、課題の共有から。

アプリの導入も、Shopifyそのものの相談も歓迎です。内容が固まっていなくても問題ありません。通常2営業日以内に返信します。