En el siguiente instructivo, se explica cómo implementar feeds para diferenciar los precios de un servicio según el tiempo o el miembro del personal asociado o el día de la semana.
Precio por personal o tiempo
Hay 4 elementos que se deben configurar:
En el feed del comercio, configura un
Merchant.payment_option
para cada precio. opción- Establece el
price
deseado en el precio del servicio para el horario o el personal específicos. payment_option_id
debe ser único en tu integración, ya que los valores depayment_option_id
se comparten entre todos los comercios del mismo agregador. Para evitar confusiones y simplificar la solución de problemas y de Google, recomendamos que, para cada comercio, redefines Valores depayment_option
que este comercio usa con unpayment_option_id
(incluso si se usa unpayment_option
idéntico con otro comercio).- Para el precio por personal, te recomendamos que generes el
payment_option_id
como una combinación demerchant_id
,service_id
ystaff_id
para facilitar el seguimiento y asegurarte de quepayment_option_id
sea único en toda la integración. - Para el precio por tiempo, te recomendamos que generes el
payment_option_id
como una combinación demerchant_id
,service_id
y una cadena que represente este tiempo (evening
,weekends
,sundayafternoon
, etc.) para facilitar el seguimiento y garantizar quepayment_option_id
sea único en toda la integración.
- Cuando se usan para los precios a nivel de la disponibilidad (el caso de uso de este instructivo), el nombre y la descripción se usan principalmente para fines de debugging.
- No configures más de 100 valores de
payment_option
para un solo comercio. Si esperas alcanzar más de 100 valores depayment_option
, haz que tu contacto de Google ejecute esta implementación. - Se pueden ignorar todos los demás campos
payment_option
para este caso de uso.
- Para el precio por personal, te recomendamos que generes el
- Establece el
En el feed de disponibilidad, establece
Availability.payment_option_id
en un solo array de elementos con elpayment_option_id
delpayment_option
que definido en el nivelMerchant
En el feed de servicios, establece
Service.price
en el valor más bajo de las intervalo de precios de este servicio y estableceService.price_interpretation
enSTARTS_AT
Ejemplo de precio por personal
En este ejemplo, Robert (id: 1) es una peluquera con más experiencia que Jane (ID: 2) y, por lo tanto, el propietario del salón decidió hacer una reserva por Roberto USD 5 más caros. El costo de un corte de cabello corto es de USD 20 de forma predeterminada y el costo para un corte de cabello largo a USD 30 de forma predeterminada. Si el usuario selecciona Robert, el corte costaría USD 25 o USD 35, respectivamente.
Nombre del personal | Corte de cabello corto | Corte de cabello largo |
---|---|---|
Jane | USD 20* | USD 30* |
Roberto | $25 | $35 |
*Precio predeterminado del servicio
Comercios
{ "metadata": { "processing_instruction": "PROCESS_AS_COMPLETE", "generation_timestamp": 1503638100, "total_shards": 1 }, "merchant": [ { "category": "beauty_salon", "merchant_id": "beauty-per-staff-price", "name": "Beauty Salon", "url": "www.merchantspublicsite.com", "telephone": "+1 123-456-7890", "geo": { "latitude": 37.422113, "longitude": -122.084041, "address": { "locality": "Mountain View", "country": "US", "region": "CA", "street_address": "1600 Amphitheatre Pkwy", "postal_code": "94043" } }, "payment_option": [ { "payment_option_id": "beauty-per-staff-price-haircut-short-1", "name": "Short haircut (Robert)", "description": "Short hair haircut price for Robert", "price": { "currency_code": "USD", "price_micros": 25000000 } }, { "payment_option_id": "beauty-per-staff-price-haircut-short-default", "name": "Short haircut (Default)", "description": "Normal short hair haircut price", "price": { "currency_code": "USD", "price_micros": 20000000 } }, { "payment_option_id": "beauty-per-staff-price-haircut-long-1", "name": "Long haircut (Robert)", "description": "Long hair haircut price for Robert", "price": { "currency_code": "USD", "price_micros": 35000000 } }, { "payment_option_id": "beauty-per-staff-price-haircut-long-default", "name": "Long haircut (Default)", "description": "Normal long hair haircut price", "price": { "currency_code": "USD", "price_micros": 30000000 } } ] } ] }
Servicios
{ "metadata": { "processing_instruction": "PROCESS_AS_COMPLETE", "generation_timestamp": 1535437200, "total_shards": 1 }, "service": [ { "service_id": "haircut-short", "prepayment_type": "NOT_SUPPORTED", "merchant_id": "beauty-per-staff-price", "price": { "currency_code": "USD", "price_micros": 20000000 }, "localized_service_name": { "value": "Haircut (shorter than shoulder)", "localized_value": [ { "locale": "en", "value": "Haircut (shorter than shoulder)" } ] }, "localized_description": { "value": "Awesome haircut for short hair", "localized_value": [ { "locale": "en", "value": "Awesome haircut for short hair" } ] } }, { "service_id": "haircut-long", "prepayment_type": "NOT_SUPPORTED", "merchant_id": "beauty-per-staff-price", "price": { "currency_code": "USD", "price_micros": 30000000 }, "localized_service_name": { "value": "Haircut (longer than shoulder)", "localized_value": [ { "locale": "en", "value": "Haircut (longer than shoulder)" } ] }, "localized_description": { "value": "Awesome haircut for long hair", "localized_value": [ { "locale": "en", "value": "Awesome haircut for long hair" } ] } } ] }
Disponibilidad
{ "metadata": { "processing_instruction": "PROCESS_AS_COMPLETE", "generation_timestamp": 1535178900, "total_shards": 1 }, "service_availability": [ { "availability": [ { "spots_total": 1, "start_sec": 1535806800, "spots_open": 1, "duration_sec": 3600, "recurrence": { "repeat_until_sec": 1535846340, "repeat_every_sec": 3600 }, "service_id": "haircut-short", "merchant_id": "beauty-per-staff-price", "resources": { "staff_name": "Robert", "staff_id": "1" }, "payment_option_id": ["beauty-per-staff-price-haircut-short-1"] }, { "spots_total": 1, "start_sec": 1535806800, "spots_open": 1, "duration_sec": 3600, "recurrence": { "repeat_until_sec": 1535846340, "repeat_every_sec": 3600 }, "service_id": "haircut-long", "merchant_id": "beauty-per-staff-price", "resources": { "staff_name": "Robert", "staff_id": "1" }, "payment_option_id": ["beauty-per-staff-price-haircut-long-1"] }, { "spots_total": 1, "start_sec": 1535806800, "spots_open": 1, "duration_sec": 3600, "recurrence": { "repeat_until_sec": 1535846340, "repeat_every_sec": 3600 }, "service_id": "haircut-short", "merchant_id": "beauty-per-staff-price", "resources": { "staff_name": "Jane", "staff_id": "2" }, "payment_option_id": ["beauty-per-staff-price-haircut-short-default"] }, { "spots_total": 1, "start_sec": 1535806800, "spots_open": 1, "duration_sec": 3600, "recurrence": { "repeat_until_sec": 1535846340, "repeat_every_sec": 3600 }, "service_id": "haircut-long", "merchant_id": "beauty-per-staff-price", "resources": { "staff_name": "Jane", "staff_id": "2" }, "payment_option_id": ["beauty-per-staff-price-haircut-long-default"] } ] } ] }
Ejemplo de precio por tiempo
En este ejemplo, el salón está abierto de 10:00 a.m. a 20:00 p.m. El propietario del salón decidió para agregar un costo adicional de USD 5 para las reservas realizadas después de las 6:00 p.m.
El ejemplo de disponibilidad se define para el sábado 1 de septiembre de 2018 en la región PT la zona horaria. 1535821200 corresponde a las 10:00 de ese día, 1535850000 corresponde a las 18:00 de ese día y 1535857200 corresponde a las 20:00.
Hora del día | Corte de cabello corto | Corte de cabello largo |
---|---|---|
10:00 a.m. ~ 11:00 p.m. | $20 | $30 |
De 11:00 a.m. a 12:00 p.m. | $20 | $30 |
12:00 p.m. - 13:00 p.m. | $20 | $30 |
13:00 ~ 14:00 | $20 | $30 |
2:00 p.m. a 5:00 p.m. | $20 | $30 |
De 3:00 p.m. a 4:00 p.m. | $20 | $30 |
4:00 p.m. - 4:00 p.m. | $20 | $30 |
De 17:00 a 18:00 | $20 | $30 |
6:00 p.m. - 7:00 p.m. | $25 | $35 |
De 19:00 a 20:00 | $25 | $35 |
Comercios
{ "metadata": { "processing_instruction": "PROCESS_AS_COMPLETE", "generation_timestamp": 1503638100, "total_shards": 1 }, "merchant": [ { "category": "beauty_salon", "merchant_id": "beauty-per-time-price", "name": "Beauty Salon", "url": "www.merchantspublicsite.com", "telephone": "+1 123-456-7890", "geo": { "latitude": 37.422113, "longitude": -122.084041, "address": { "locality": "Mountain View", "country": "US", "region": "CA", "street_address": "1600 Amphitheatre Pkwy", "postal_code": "94043" } }, "payment_option": [ { "payment_option_id": "beauty-per-time-price-haircut-short-evening", "name": "Short haircut (Evening)", "description": "Short hair haircut price for the evening", "price": { "currency_code": "USD", "price_micros": 25000000 } }, { "payment_option_id": "beauty-per-time-price-haircut-short-default", "name": "Short haircut (Normal)", "description": "Short hair haircut price for the rest of the day", "price": { "currency_code": "USD", "price_micros": 21000000 } }, { "payment_option_id": "beauty-per-time-price-haircut-long-evening", "name": "Long haircut (Evening)", "description": "Long hair haircut price for the evening", "price": { "currency_code": "USD", "price_micros": 35000000 } }, { "payment_option_id": "beauty-per-time-price-haircut-long-default", "name": "Long haircut (Normal)", "description": "Long hair haircut price for the rest of the day", "price": { "currency_code": "USD", "price_micros": 31000000 } } ] } ] }
Servicios
{ "metadata": { "processing_instruction": "PROCESS_AS_COMPLETE", "generation_timestamp": 1535437200, "total_shards": 1 }, "service": [ { "service_id": "haircut-short", "prepayment_type": "NOT_SUPPORTED", "merchant_id": "beauty-per-time-price", "price": { "currency_code": "USD", "price_micros": 2100000 }, "localized_service_name": { "value": "Haircut (shorter than shoulder)", "localized_value": [ { "locale": "en", "value": "Haircut (shorter than shoulder)" } ] }, "localized_description": { "value": "Awesome haircut for short hair", "localized_value": [ { "locale": "en", "value": "Awesome haircut for short hair" } ] } }, { "service_id": "haircut-long", "prepayment_type": "NOT_SUPPORTED", "merchant_id": "beauty-per-time-price", "price": { "currency_code": "USD", "price_micros": 31000000 }, "localized_service_name": { "value": "Haircut (longer than shoulder)", "localized_value": [ { "locale": "en", "value": "Haircut (longer than shoulder)" } ] }, "localized_description": { "value": "Awesome haircut for long hair", "localized_value": [ { "locale": "en", "value": "Awesome haircut for long hair" } ] } } ] }
Disponibilidad
{ "metadata": { "processing_instruction": "PROCESS_AS_COMPLETE", "generation_timestamp": 1535178900, "total_shards": 1 }, "service_availability": [ { "availability": [ { "spots_total": 1, "start_sec": 1535821200, "spots_open": 1, "duration_sec": 3600, "recurrence": { "repeat_until_sec": 1535849940, "repeat_every_sec": 3600 }, "service_id": "haircut-short", "merchant_id": "beauty-per-time-price", "payment_option_id": ["beauty-per-time-price-haircut-short-default"] }, { "spots_total": 1, "start_sec": 1535821200, "spots_open": 1, "duration_sec": 3600, "recurrence": { "repeat_until_sec": 1535849940, "repeat_every_sec": 3600 }, "service_id": "haircut-long", "merchant_id": "beauty-per-time-price", "payment_option_id": ["beauty-per-time-price-haircut-long-default"] }, { "spots_total": 1, "start_sec": 1535850000, "spots_open": 1, "duration_sec": 3600, "recurrence": { "repeat_until_sec": 1535857140, "repeat_every_sec": 3600 }, "service_id": "haircut-short", "merchant_id": "beauty-per-time-price", "payment_option_id": ["beauty-per-time-price-haircut-short-evening"] }, { "spots_total": 1, "start_sec": 1535850000, "spots_open": 1, "duration_sec": 3600, "recurrence": { "repeat_until_sec": 1535857140, "repeat_every_sec": 3600 }, "service_id": "haircut-long", "merchant_id": "beauty-per-time-price", "payment_option_id": ["beauty-per-time-price-haircut-long-evening"] } ] } ] }