В следующем руководстве объясняется, как вам следует реализовать свои каналы, чтобы дифференцировать цены на услугу в зависимости от соответствующего сотрудника или времени суток и/или дня недели.
Цена за персонал/время
Нужно настроить 4 вещи:
В фиде продавца установите один
Merchant.payment_option
для каждого варианта цены.- Установите желаемую
price
на цену услуги за определенное время/персонал payment_option_id
должен быть уникальным в рамках вашей интеграции, поскольку значенияpayment_option_id
являются общими для всех продавцов одного и того же агрегатора. Чтобы избежать путаницы и упростить устранение неполадок и управление, мы рекомендуем для каждого продавца (пере)определить все значенияpayment_option
, которые использует этот продавец, с уникальным идентификаторомpayment_option_id
(даже если идентичныйpayment_option
используется другим продавцом).- Для цены за персонал мы рекомендуем вам сгенерировать
payment_option_id
как комбинациюmerchant_id
,service_id
иstaff_id
для упрощения отслеживания и обеспечения уникальностиpayment_option_id
во всей вашей интеграции. - Для цены за раз мы рекомендуем вам сгенерировать
payment_option_id
как комбинациюmerchant_id
,service_id
и строки, представляющей это время (evening
,weekends
,sundayafternoon
...), чтобы упростить отслеживание и обеспечить уникальностьpayment_option_id
во всей вашей интеграции.
- При использовании для ценообразования на уровне доступности (вариант использования в этом руководстве) имя и описание в основном используются в целях отладки.
- Не устанавливайте более 100 значений
payment_option
для одного продавца. Если вы планируете получить более 100 значенийpayment_option
, запустите эту реализацию через своего контактного лица в Google. - Все остальные поля
payment_option
в этом случае можно игнорировать.
- Для цены за персонал мы рекомендуем вам сгенерировать
- Установите желаемую
В фиде доступности задайте для
Availability.payment_option_id
один массив элементов сpayment_option_id
дляpayment_option
, определенного вами на уровнеMerchant
.В ленте услуг установите для
Service.price
самое низкое значение диапазона цен для этой услуги и установите дляService.price_interpretation
значениеSTARTS_AT
Пример цены за одного сотрудника
В этом примере Роберт (id: 1) является более опытным парикмахером, чем Джейн (id: 2), и поэтому владелец салона решил забронировать для Роберта столик на 5 долларов дороже. Стоимость стрижки на короткие волосы по умолчанию составляет 20 долларов США, а стоимость стрижки на длинные волосы по умолчанию составляет 30 долларов США. Если пользователь выберет Роберта, сокращение будет стоить 25 или 35 долларов соответственно.
Имя сотрудника | Короткая стрижка | Стрижка на длинные волосы |
---|---|---|
Джейн | 20 долларов США* | 30 долларов США* |
Роберт | 25 долларов США | 35 долларов США |
*цена по умолчанию за услугу
{
"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
}
}
]
}
]
}
{
"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"
}
]
}
}
]
}
{
"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"]
}
]
}
]
}
Пример цены за раз
В данном примере салон открыт с 10:00 до 20:00. Владелец салона решил добавить дополнительную плату в размере 5 долларов США за бронирование после 18:00.
Пример доступности определен для субботы, 1 сентября 2018 г., в часовом поясе PT. 1535821200 — это 10:00 в этот день, 1535850000 — 18:00 в этот день и 1535857200 — 20:00.
Время суток | Короткая стрижка | Стрижка на длинные волосы |
---|---|---|
10:00 ~ 11:00 | 20 долларов | 30 долларов США |
11:00 ~ 12:00 | 20 долларов | 30 долларов США |
12:00 ~ 13:00 | 20 долларов | 30 долларов США |
13:00 ~ 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 долларов США |
{
"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
}
}
]
}
]
}
{
"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"
}
]
}
}
]
}
{
"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"]
}
]
}
]
}