お支払いタイプの指定

payment-options

URL テンプレートを設定したら、次の手順に沿ってスロットにお支払い方法を追加できます。

  1. 有料スロットを特定する
  2. スロットの料金を設定する
    • 前払いを設定する
    • 無断キャンセル料またはキャンセル料を設定する
    • デポジットを設定する
    • クレジット カード必須を設定する

1. 有料スロットを特定する

料金は、サービス フィードまたは 空き情報フィードを使用して定義できます。サービスレベルで料金を定義すると、そのサービスまたはダイニング ルーム内のすべての空き状況スロットが固定料金に設定されます。一方、空き状況で料金を定義すると、特定の空き状況スロットの料金が設定されます。たとえば、次のような状況は、空き状況レベルで料金または手数料を設定することで対応できます。

  • 火曜日は料金が割引され、土曜日は料金が値上げされる。
  • 午後 5 時から午後 7 時までの空き状況には無断キャンセル料が適用される。
  • 6 人を超えるグループにはデポジットが必要。
  • 特定の部屋の予約にはクレジット カードが必要。

2. スロットの料金を設定する

前払い

この構成は、サービス料金を予約時に全額支払う必要があることを指定するために使用されます。前払いは、Avaibility フィードの payment フィールドを使用して、空き状況レベルで指定します。

前払いのサンプル

{
  "availability": [{
    "merchant_id": "dining-A",
    "service_id": "reservation",
    "start_sec": 1535853600,
    "duration_sec": 2700,
    "spots_total": 2,
    "spots_open": 2,
    "resources": {
    "room_id": "A-dining-room",
    "room_name": "Wine Tasting Room",
    "party_size": 2,
    "prepayment": {
      "price_info": {
        "price": {
          "price_micros": 200000000,
          "currency_code": "USD"
        },
        "price_type": "PER_PERSON"
        }
      }
    }
  }]
}

空き情報フィード

message Availability {
  ...
  // Optional prepayment information for this availability. Prepayment is only
  // available through the Payment Redirect Add-on
  Prepayment prepayment = 20;
}

前払いの定義

// A payment the user may be charged as part of their reservation.
message Prepayment {
  PriceInfo price_info = 1;
}

無断キャンセル料またはキャンセル料

予約した日時にユーザーが来店しなかった場合や、キャンセル期間後にキャンセルした場合は、無断キャンセル料またはキャンセル料を請求できます。キャンセル期間が指定されていない場合は、デフォルトでスロットの開始時刻になります。

無断キャンセル料を指定するには、サービス フィードに次の例のように no_show_fee フィールドを含めます。

無断キャンセル料 / キャンセル料のサンプル

説明:
この例では、予約者が予約した日時に来店しなかった場合、パートナーまたは販売者は、`no_show_fee.fee.price_micros` フィールドで指定されている固定料金 の 25 ドルを請求できます。この料金は、`scheduling_rules.min_advance_online_canceling` フィールドで指定されているように、予約の 4 時間(14,400 秒)以内にユーザーがキャンセルした場合にも請求されることがあります。
{
  "merchant_id": "merchant-1",
  "service_id": "service-2-b",
  "name": "Reservation",
  "description": "A dining reservation",
  "price": {
    "price_micros": 200000000,
    "currency_code": "USD"
  },
  "scheduling_rules": {
    "min_advance_online_canceling": 14400
  },
  "no_show_fee": {
    "fee": {
      "price_micros": 25000000,
      "currency_code": "USD"
    },
    "fee_type": "FIXED_RATE_DEFAULT"
  }
}

サービス フィード

message Service {
  ...
  // Defines a no show fee that may be charged to the user. Can be overridden
  // at the availability level. (optional)
  NoShowFee no_show_fee = 12;
}

空き情報フィード

message Availability {
  ...
  // Defines a no show fee that may be charged to the user. Overrides the
  // service no show fee if one was specified. Setting this to an empty
  // NoShowFee message removes any service-level no show fee. (optional)
  NoShowFee no_show_fee = 13;
}

無断キャンセル料の定義

// A fee that a user may be charged if they have made a booking but do not
// show up.
message NoShowFee {
  // The amount the user may be charged if they do not show up for their
  // reservation.
  Price fee = 1;

  // Defines how the fee is determined from the availability.
  PriceType fee_type = 3;
}

デポジット

デポジットは、予約の要件として初期料金を徴収するために使用されます。 デポジットは、予約時または後日請求できます。デポジットが返金される条件と、オンラインで予約をキャンセルできるタイミングを定義する必要があります。

デポジットを指定するには、サービス フィードに次の例のように deposit フィールドを含めます。

デポジットのサンプル

説明:
`min_advance_online_canceling` `deposit.min_advance_cancellation_sec`は、デポジットが返金されるタイミングを定義します。 この例では、デポジットで返金条件とは別にキャンセル時間を指定できます。この場合、ユーザーは 24 時間前(86, 400 秒)までオンラインでサービスをキャンセルできます。これにより、販売者は直前のキャンセルを直接知ることができます。ただし、ユーザーは予約の 4 時間前(14,400 秒)まで(キャンセルについて販売者またはパートナーに連絡することで)デポジットの払い戻しを受けることができます。これは、チェックアウト時の規約と確認メールに表示されます。
{
  "merchant_id": "merchant-1",
  "service_id": "service-2-b",
  "name": "Reservation",
  "description": "A dining reservation",
  "price": {
    "price_micros": 200000000,
    "currency_code": "USD"
  },
  "scheduling_rules": {
    "min_advance_online_canceling": 86400,
  },
  "deposit": {
    "deposit": {
      "price_micros": 25000000,
      "currency_code": "USD"
    },
    "min_advance_cancellation_sec": 14400,
    "deposit_type": "FIXED_RATE_DEFAULT"
  }
}

サービス フィード

message Service {
  ...
  // Defines how a deposit may be charged to the user. Can be overridden at the
  // availability level. (optional)
  Deposit deposit = 11;
}

空き情報フィード

message Availability {
  ...
  // Defines how a deposit may be charged to the user. Overrides the service
  // deposit if one was specified. Setting this to an empty Deposit message
  // removes any service-level deposit. (optional)
  Deposit deposit = 12;
}

デポジットの定義

// A deposit that the user may be charged or have a hold on their credit card
// for.
message Deposit {
  // Deposit amount.
  Price deposit = 1;

  // Minimum advance cancellation for the deposit.
  int64 min_advance_cancellation_sec = 2;

  // Defines how the deposit is determined from the availability.
  PriceType deposit_type = 3;
}
"deposit_type": "PER_PERSON"

クレジット カード必須

サービスによっては、本人確認の追加方法としてクレジット カードが必要になる場合があります。 ただし、前払い、デポジット、無断キャンセル料には使用しないでください。これらのユースケースが必要な場合は、明示的に構成する必要があります。クレジット カードを必須にすると、このサービスの予約数が大幅に減少することがよくあります。

チェックアウト時にクレジット カードの提示を必須にするには、フィールド require_credit_cardREQUIRE_CREDIT_CARD_ALWAYS に設定する必要があります。

クレジット カード必須のサンプル

{
  "merchant_id": "merchant-1",
  "service_id": "reservation",
  "name": "reservation",
  "description": "Food reservation",
  "require_credit_card": "REQUIRE_CREDIT_CARD_ALWAYS"
}

サービス フィード

message Service {
  ...
  // Indicates whether the user must provide a credit card in order to book this
  // service.
  // This value can be overridden at the availability level. (optional)
  RequireCreditCard require_credit_card = 13;
}

空き情報フィード

message Availability {
  ...
  // Indicates whether the user must provide a credit card in order to book this
  // availability slot.
  // If the value is not set, it is inherited from the service level if it's set
  // there. (optional)
  RequireCreditCard require_credit_card = 14;
}

クレジット カード必須の定義

// Defines whether a credit card is required in order to book an appointment.
enum RequireCreditCard {
  // The credit card requirement is not explicitly specified and the
  // behaviour is identical to the one specified for CONDITIONAL.
  REQUIRE_CREDIT_CARD_UNSPECIFIED = 0;

  // Google will require a credit card for the booking if any of the following
  // conditions are met:
  // * the availability has a price and the prepayment_type is REQUIRED
  // * the no_show_fee is set
  // * the deposit field is set.
  REQUIRE_CREDIT_CARD_CONDITIONAL = 1;

  // A credit card is always required in order to book this availability
  // regardless of other field values.
  REQUIRE_CREDIT_CARD_ALWAYS = 2;
}

追加の定義

料金範囲の定義

// Wrapper for a range of monetary amount treated as unbounded unless both
// values are set. At least one of min_amount and max_amount is required.
message PriceRange {
  // Minimum amount.
  Price min_price = 1;

  // Maximum amount. Should always be > min_price.
  Price max_price = 2;
}

料金情報の定義

// Container for price details.
message PriceInfo {
  oneof price_options {
    Price price = 1;

    // The upper and/or lower bound
    PriceRange price_range = 2
        ;
  }

  // Defines how price or price range is applied (per person or fixed)
  PriceType price_type = 3;
}

料金タイプの定義

// Defines how a total price is determined from an availability.
enum PriceType {
  // The price is for a fixed amount. This is the default value if the field is
  // not set.
  //
  // Examples:
  //   $50 deposit to reserve a table; $20 no show fee for a yoga class
  FIXED_RATE_DEFAULT = 0;

  // The price specified is per person, and the total price is calculated
  // according to the party size specified in Resources as price_micros *
  // party_size. A PER_PERSON price must be accompanied by a party size in the
  // availability resources. If it is not, a party size of one is used.
  //
  // Examples:
  //   $10 each for tickets to a museum
  PER_PERSON = 1;
}