Il seguente tutorial spiega come implementare i feed per differenziare i prezzi di un servizio in base al personale associato o all'ora del giorno e/o al giorno della settimana.
Prezzo per personale/tempo
È necessario impostare quattro elementi:
Nel feed del commerciante, imposta un
Merchant.payment_option
per ogni opzione di prezzo- Imposta il valore
price
desiderato sul prezzo del servizio per l'orario/il personale specifico payment_option_id
deve essere univoco nell'integrazione poiché i valoripayment_option_id
sono condivisi tra tutti i commercianti dello stesso aggregatore. Per evitare confusione e semplificare la risoluzione dei problemi, ti consigliamo, per ogni commerciante, di (ri)definire tutte lepayment_option
valori utilizzati da questo commerciante con un ID univocopayment_option_id
(anche se viene utilizzato un valorepayment_option
identico a un altro commerciante).- Per il prezzo per il personale, ti consigliamo di generare il
payment_option_id
come combinazione dimerchant_id
, il valoreservice_id
estaff_id
per facilitare il monitoraggio e garantire chepayment_option_id
è univoco nell'intera integrazione - Per il prezzo per ora, ti consigliamo di generare il
payment_option_id
come combinazione dimerchant_id
, il valoreservice_id
e una stringa che rappresenta questa volta (evening
,weekends
,sundayafternoon
...) per un monitoraggio più semplice e per garantirepayment_option_id
è univoco nell'intera integrazione
- Se utilizzati per i prezzi a livello di disponibilità (il caso d'uso di questo tutorial), il nome e la descrizione vengono utilizzati principalmente per scopi di debugging.
- Non impostare più di 100 valori
payment_option
per un singolo commerciante. Se prevedi di raggiungere più di 100 valoripayment_option
, esegui questa implementazione tramite il tuo contatto Google - Tutti gli altri campi
payment_option
possono essere ignorati per questo caso d'uso
- Per il prezzo per il personale, ti consigliamo di generare il
- Imposta il valore
Nel feed Disponibilità, imposta
Availability.payment_option_id
su un singolo array di elementi conpayment_option_id
dipayment_option
definita a livelloMerchant
Nel feed Servizio, imposta
Service.price
sul valore più basso del valore fascia di prezzo per questo servizio e impostaService.price_interpretation
suSTARTS_AT
Esempio di prezzo per personale
In questo esempio, Robert (ID: 1) è un parrucchiere più esperto di Jane (ID: 2) e, pertanto, il proprietario del salone ha deciso di rendere una prenotazione per Robert di 5 $ più costosa. Per impostazione predefinita, il costo di un taglio di capelli corti è di 20 $e il costo per un taglio di capelli lunghi a 30 $per impostazione predefinita. Se l'utente seleziona Robert, il taglio costerebbe rispettivamente 25 o 35 $.
Nome del personale | Taglio di capelli corti | Taglio di capelli lunghi |
---|---|---|
Jane | 20 $* | 30 $* |
Robert | 25 $ | 35 $ |
*prezzo predefinito per il servizio
Merchant Center
{ "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 } } ] } ] }
Servizi
{ "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" } ] } } ] }
Disponibilità
{ "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"] } ] } ] }
Esempio di prezzo per ora
In questo esempio, il salone è aperto dalle 10:00 alle 20:00. Il proprietario del salone ha deciso di aggiungere un costo aggiuntivo di 5 € per le prenotazioni dopo le 18:00.
L'esempio di disponibilità è definito per sabato 1° settembre 2018 nel fusorario PT. 1535821200 corrisponde alle 10:00 del giorno in questione, 1535850000 alle 18:00 e 1535857200 alle 20:00.
Ora del giorno | Taglio capelli corti | Taglio capelli lunghi |
---|---|---|
10:00 - 11:00 | 20 $ | 30 $ |
11:00-12:00 | 20 $ | 30 $ |
12:00 ~ 13:00 | 20 $ | 30 $ |
dalle 13:00 alle 14:00 | 20 $ | 30 $ |
14:00 ~ 15:00 | 20 $ | 30 $ |
15:00 ~ 16:00 | 20 $ | 30 $ |
16:00 ~ 17:00 | 20 $ | 30 $ |
17:00-18:00 | 20 $ | 30 $ |
18:00-19:00 | 25 $ | 35 $ |
19:00 ~ 20:00 | 25 $ | 35 $ |
Merchant Center
{ "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 } } ] } ] }
Servizi
{ "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" } ] } } ] }
Disponibilità
{ "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"] } ] } ] }