[連載第6回]自分でキャンプ場を運営するならどうする?架空の妄想キャンプ場運営をkintoneでやってみた!

公開日:

更新日:

注意

本記事は情報提供を目的としており、本記事の内容は無保証、サポートの対象外です。
サポート窓口、問合せ窓口にご質問をいただいても対応いたしかねますのでご了承ください。

こんにちは!

すっかりビリヤニ(インドの炊き込みご飯)やスパイスカレー作りにはまって、在宅ワークのお昼ごはんがほぼスパイス系になってしまい、家族から「家に帰るとインドカレー屋さんみたいな匂いがする」と言われるようになった gusukuのサポートの中の人 にら です。

そんなスパイスまみれな今日この頃、今月のキャンプは和歌山の地で、テントではなくコテージ泊をしてきました。
自前のテントの『全部自分で選んだお気に入りの物で囲まれたポータブル別荘感』が大好きなのですが、コテージの『誰かの秘密基地をお借りしてる感』もとても良かったです。何より、お腹が弱い私にとってコテージ内に清潔なトイレがついているのが最高でした。

わざわざ和歌山まで持って行ったギー(精製バター)を入れ忘れてちょっと物足りない、ソーセージ入りビリヤニ風炊き込みご飯

キャンプしてみたいけどハードルが高い…と思っておられる方は、コテージ泊がおすすめです。軒先にバーベキュースペースが設けられているコテージであれば、素敵に晴れて暑い日も、運悪く雨の日も外で余裕でビリヤニを作れますので、お天気にかかわらず外ゴハン効果でおいしさ3倍が約束されます!

テントの設営や撤収の時間が不要なので、ゆったり過ごせるのもとってもいいですよ~!

それではまた引き続き、架空のキャンプ場のオープン準備を進めます!

注意

なお、架空のキャンプ場ですのでこの世には存在しません。本当にキャンプ場を運営しているわけではなく、キャンプ場についての設定はすべてフィクションです!

キャンプ場予約のキャンセル料支払いの仕組み作成

さて、前回までで予約からチェックインの仕組みがほぼ完成しました。今回は、キャンセル料の支払いをクレジットカードで行ってもらうための仕組みを Stripe と kintone、そして gusuku Customine を組み合わせて作ります。

キャンセル料既定の確認

キャンセル料の規定は下記です。

  • 利用日初日の8日前まではキャンセル料は発生しない
  • 利用日初日の7日前~前日までは利用料金の50%
  • 利用日初日当日キャンセルおよび不泊は100%

ですので、利用日初日の7日前以降にキャンセルされた場合や不泊の場合に、顧客に対してキャンセル料を支払いを依頼するメールを送り、クレジットカードでの支払を行ってもらいます。

キャンセル料請求~支払の流れ

キャンセルの流れは下記です。

  1. [顧客🏠] 予約完了メールにキャンセルしたい旨返信する
  2. [キャンプ場⛺] キャンセルメールを受信したら、該当する予約の「キャンセル連絡日」フィールドにメールを受信した日付を入力すると、チェックイン日付とキャンセル連絡日フィールドの日付によって、キャンセル料が計算される
  3. キャンセル料がなければ…
    • [キャンプ場⛺] プロセス管理の「キャンセル料なしキャンセルする」ボタンを押し、キャンセル料なしキャンセルに進む。その旨メールを返信してキャンセル完了
  4. キャンセル料があれば…
    • [キャンプ場⛺] 「支払依頼を行う」ボタンをクリックして、Stripeのチェックアウトセッションを作成し、顧客にメールを送る
    • [顧客🏠] メールで送られた支払ページで、クレジットカードでキャンセル料を支払う
    • [キャンプ場⛺] キャンセル料支払い完了メールを送る
  5. チェックアウトセッションの24時間の期限内に支払いがされなかったら
    • [キャンプ場⛺] (Stripeのチェックアウトセッションは発行から24時間で有効期限が切れるため)24時間に顧客が支払い完了しない場合、再度「支払依頼を行う」ボタンをクリックして、Stripeのチェックアウトセッションを作成し、顧客にメールを送る

※3については、kintone プロセス管理の設定で、アクションが実行できる条件を指定してあります。

キャンセル料支払い処理の作成

キャンセル料の計算

キャンセル連絡を受領したら、レコードの編集画面で「キャンセル連絡日」を入力します。チェックイン日付と入力されたキャンセル日を比較し、キャンセル料を計算して「キャンセル料」フィールドに金額をセットします。

下記は、予約アプリの支払い情報タブの情報です。

支払の管理

24時間以内に支払いがされなかった場合に、1つの予約に対して、支払完了までに複数のチェックアウトセッションを作成することになるので、1つの予約に対して複数の支払を管理する必要があります。

下記は、新たに作成した「支払管理」アプリです。
支払い状況や、Stripeのチェックアウトセッションの情報を管理します。

予約管理アプリから、関連レコードで支払状況を確認できるようにしました。

kintoneの画面から、チェックアウトセッションを作成するkintoneアプリのWebhookのカスタマイズを呼び出す

チェックアウトセッション作成のカスタマイズは、24時間以内に支払いがされなかった時に、再度チェックアウトセッションを作成することを想定して、ステータスが変わったときではなく、ボタンを押すと、チェックアウトセッションを作成する kintone アプリの Webhook のカスタマイズを呼び出すようにしています。

Stripe のチェックアウトセッションを作成するカスタマイズ

カスタマイズでのチェックアウトセッションの作成方法は、下記のサポートサイトの記事で詳しく紹介していますのでご確認ください。
Stripeのチェックアウトセッションをカスタマイズで作成する方法

このカスタマイズでは、kintoneアプリのWebhookのカスタマイズを予約アプリに対して作成し、下記の処理を行います。

  1. 支払明細アプリのレコードを識別するための支払いコードを採番する
  2. チェックアウトセッションの有効期限である24時間後を計算する
  3. 支払管理アプリにレコードを追加する
  4. 追加したレコードを取得する
  5. やること「Stripe のチェックアウトセッションを作成する」で、チェックアウトセッションを作成する
    • 必須項目である商品名や単価の情報は、4で取得したレコードの値をセットする
  6. 4で取得したレコードに、Stripeによって生成された下記の値をセットする
    • チェックアウトセッションID
    • 支払URL
ポイント

カスタマインでは、今回使用したJob Runnerの「Stripe のチェックアウトセッションを作成する」だけでなく、kintoneアプリのカスタマイズ(画面のカスタマイズ)で使用する「Stripe のチェックアウトセッションを作成する」もあるため、どちらでもチェックアウトセッションは作成できます。

今回のカスタマイズで Job Runner でカスタマイズした理由は、Job Runnerには「SendGrid でメールを送信する」があるため、Stripeが作成してくれた支払URLを、続きのカスタマイズで顧客にメールで送れるためです。

ですので本来はこの後、顧客に支払URLを送るの処理が続きますが、ブログの記事がとても長くなったので割愛します。。

顧客が支払完了した時の処理

こちらのサポートサイトの記事で詳しく書いたので見てください!

チェックアウトセッションの支払が完了すると、Stripeから支払完了のWebhookの通知を送信してくれるため、それをカスタマインで受け取って kintone アプリの Webhookのカスタマイズを実行し、支払の完了をkintoneアプリに反映します。

24時間以内に支払いがされなかった時の処理

24時間以内に支払いがされなかった場合の運用については、いくつかの方法が考えられます。

Stripeのチェックアウトセッションを作成する際に、その時点の現在日時を支払管理アプリの「チェックアウト有効期限」フィールドにセットして、
その日時フィールドの値を使用してkintone基本機能のリマインダーの条件通知を使って期限が過ぎたことを通知したり、
カスタマインのカスタマイズで、一覧画面で期限を過ぎても支払いが完了していないレコードの背景色を変えたり…などが考えられます。

そんな方法の中で今回は、カスタマインの定期実行タスクのカスタマイズを1時間に1回実行し、支払期限が過ぎている支払い管理アプリのレコードの「支払状況」を「未払のままタイムアウト」をセットするカスタマイズを作成しました。

また、通知の一環として、支払の元になっている予約管理レコードのコメントに「支払がキャンセルされた」ことを投稿し、支払いが何度もキャンセルされている予約を見つけやすいようにしています。

支払管理アプリから、「支払状況」が支払依頼中 かつ、「チェックアウト有効期限」が現在未満のレコードを取得し、
「支払状況」フィールドに「未払のままタイムアウト」とセットします。これで支払管理アプリへの値セットは完了です。

次に、支払管理アプリが持つ「予約コード」を条件に、おおもとの予約管理アプリのレコードを取得します。
そして、そのレコードにコメントを投稿することで、何度依頼しても払ってくれない顧客を見つけやすくします。

ポイント

定期実行タスクのカスタマイズは、1時間に1回、1日に1回など任意のタイミングで実行できるため、時間が来たら××したい…といった用途に向いています。

また、定期実行タスクのカスタマイズは、処理対象のレコードは「条件を組み立ててレコードを取得する」などで検索条件で指定します。今回のカスタマイズは、フィールドの値が処理を実行した日時より前のレコード、という検索条件を指定できたので、定期実行タスクに向いている例でした。

なお、前半のカスタマイズのように、kintoneアプリのWebhookのカスタマイズの場合、kintoneアプリのカスタマイズ(画面のカスタマイズ)から、任意のレコードを「このレコード処理して!」のように渡せるので、処理してほしいレコードを画面から渡したいときは、kintoneアプリのWebhookのカスタマイズが向いています。

ただ、1回のアクションで一度に渡せるレコードは最大500件ですので、それを超えそうなときはご注意ください。

もう一つ
ポイント

今回は支払いが完了しない場合はコメントを投稿する処理にしましたが、支払が完了していなければ定期実行タスクのカスタマイズでチェックアウトセッションを作成し、URLをSendGridで送るところまで自動化することも可能です。

ということで

一旦これで、kintoneのカスタマイズは完了しましたー!
妄想キャンプ場はオープンできそうです!!!(しません)

次回の妄想キャンプ場は?

エブリサイトで予約サイトを作ります!
ただ、やりたい事がたくさんあるので、どれを作成するか悩み中…

次回以降も楽しみにしていただけると嬉しいです!

投稿者プロフィール

アバター画像
にら
gusukuのチャットサポートの中の人です。
kintone認定資格は5冠。
趣味はキャンプ、最近登山もはじめました。