
Una vez que hayas configurado tu plantilla de URL, puedes agregar pagos a tus espacios completando los siguientes pasos.
- Cómo identificar espacios pagados
- Establece los precios de las ranuras.
- Establece pagos por adelantado
- Cómo establecer tarifas por no presentarse o por cancelación
- Establecer depósitos
- Establece que se requiere tarjeta de crédito
1. Cómo identificar espacios pagados
Puedes definir tus precios con el feed de servicios o el feed de disponibilidad. Si defines el precio a nivel del servicio, establecerás un precio fijo para todos los horarios disponibles dentro de ese servicio o comedor. En cambio, definir el precio en la disponibilidad significa que estableces el precio para un horario específico. Por ejemplo, las siguientes situaciones se podrían controlar estableciendo precios o comisiones a nivel de la disponibilidad:
- Los precios se reducen los martes y aumentan los sábados.
- Se aplican cargos por no presentarse a la disponibilidad entre las 5 p.m. y las 7 p.m.
- Se requieren depósitos para grupos de más de 6 personas.
- Las reservas en ciertas salas requieren una tarjeta de crédito.
2. Cómo establecer precios de espacios
Prepago
Esta configuración se usa para especificar que el importe del servicio debe pagarse en su totalidad en el momento de la reserva. El prepago se especifica a nivel de la disponibilidad a través del campo payment del feed de Avaibility.
Muestra de prepago
{ "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" } } } }] }
Feed de disponibilidad
message Availability {
...
// Optional prepayment information for this availability. Prepayment is only
// available through the Payment Redirect Add-on
Prepayment prepayment = 20;
}Definición de prepago
// A payment the user may be charged as part of their reservation. message Prepayment { PriceInfo price_info = 1; }
Tarifas de cancelación o por no presentarse
Se le pueden cobrar tarifas por no presentarse o por cancelación a un usuario si no asiste a su reserva o si cancela después del período de cancelación. Si no se especifica un período de cancelación, se usará de forma predeterminada la hora de inicio del intervalo.
Para especificar una tarifa por no presentarse, en el feed de servicios, debes incluir el campo no_show_fee, como se muestra en el siguiente ejemplo:
Ejemplo de tarifa por no presentarse o cancelación
Descripción:
En el ejemplo, el socio o el comercio están autorizados a cobrar un cargo de tarifa fija de USD 25, como se especifica en el campo "no_show_fee.fee.price_micros", si el titular de la cita no asiste a ella. Esta comisión también se puede cobrar si el usuario cancela la cita dentro de las 4 horas (14,400 segundos) anteriores a la cita, como se especifica en el campo "scheduling_rules.min_advance_online_canceling".{ "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" } }
Feed de servicios
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;
}Feed de disponibilidad
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;
}Definición de tarifa por no presentarse
// 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; }
Depósito
Los depósitos se usan para cobrar un cargo inicial como requisito para una reserva. Los depósitos se pueden cobrar en el momento de la reserva o más adelante. Es posible que debas definir en qué condiciones se puede reembolsar un depósito y cuándo se puede cancelar una reserva en línea.
Para especificar un depósito, en el feed de servicios, debes incluir el campo deposit, como se muestra en el siguiente ejemplo:
Muestra de depósito
Descripción:
Los campos `min_advance_online_canceling` y `deposit.min_advance_cancellation_sec`definen cuándo se puede reembolsar el depósito. Ten en cuenta que, en el ejemplo, un depósito puede especificar una hora de cancelación por separado de las condiciones de reembolso. En este caso, el usuario podrá cancelar el servicio en línea hasta con 24 horas de anticipación (86,400 segundos). Esto garantiza que se informe directamente al comercio sobre las cancelaciones tardías. Sin embargo, es posible que el usuario aún cumpla con los requisitos para recibir un reembolso del depósito hasta 4 horas antes (14,400 segundos) de la reserva (comunicándose contigo o con el comercio para cancelar), lo que se mostrará en las condiciones en la confirmación de compra y en el correo electrónico de confirmación.{ "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" } }
Feed de servicios
message Service {
...
// Defines how a deposit may be charged to the user. Can be overridden at the
// availability level. (optional)
Deposit deposit = 11;
}Feed de disponibilidad
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;
}Definición de depósito
// 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; }
Se requiere tarjeta de crédito
Es posible que un servicio requiera una tarjeta de crédito como una forma adicional de verificar la identidad. Sin embargo, no se debe usar para prepagos, depósitos ni tarifas por no presentarse. Si se requieren esos casos de uso, se deben configurar de forma explícita. Solicitar una tarjeta de crédito suele generar una disminución significativa en las reservas de este servicio.
Para exigir que se proporcione una tarjeta de crédito durante la confirmación de compra, debes establecer el campo require_credit_card en REQUIRE_CREDIT_CARD_ALWAYS.
Muestra de Credit Card Required
{
"merchant_id": "merchant-1",
"service_id": "reservation",
"name": "reservation",
"description": "Food reservation",
"require_credit_card": "REQUIRE_CREDIT_CARD_ALWAYS"
}Feed de servicios
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;
}Feed de disponibilidad
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;
}Definición de Require Credit Card
// 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; }
Definiciones Adicionales
Definición del intervalo de precios
// 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; }
Definición de PriceInfo
// 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; }
Definición del tipo de precio
// 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; }