W tym samouczku wyjaśniamy, jak wdrożyć pliki danych, aby rozróżniać ceny usługi na podstawie powiązanych pracowników lub pory dnia i/lub dnia tygodnia.
Cena za pracownika na czas
Masz do ustawienia 4 ustawienia:
W pliku danych sprzedawcy ustaw 1 element
Merchant.payment_option
dla każdej opcji ceny- Ustaw
price
na cenę usługi obowiązującą w określonym czasie lub pracownika. payment_option_id
musi być unikalna w całej integracji, ponieważ wartościpayment_option_id
są wspólne dla wszystkich sprzedawców tego samego agregatora. Aby uniknąć nieporozumień oraz uprościć rozwiązywanie problemów i zarządzanie nimi, zalecamy w przypadku każdego sprzedawcy (ponowne) zdefiniowanie wszystkich wartościpayment_option
, których używa, za pomocą unikalnego atrybutupayment_option_id
(nawet jeśli inny sprzedawca używa identycznego atrybutupayment_option
).- W przypadku ceny dla pracownika zalecamy wygenerowanie
payment_option_id
jako kombinacji wartościmerchant_id
,service_id
istaff_id
, aby ułatwić śledzenie i zadbać o to, abypayment_option_id
był unikalny w całej integracji - W przypadku cen według czasu zalecamy wygenerowanie
payment_option_id
jako kombinacji elementówmerchant_id
,service_id
i ciągu reprezentującego ten czas (evening
,weekends
,sundayafternoon
...), aby ułatwić śledzenie i zadbać o to, bypayment_option_id
był unikalny w całej integracji
- W przypadku cen na poziomie dostępności (przykład użycia tego samouczka) nazwa i opis są używane głównie do celów debugowania
- Nie ustawiaj więcej niż 100 wartości
payment_option
dla jednego sprzedawcy. Jeśli spodziewasz się osiągnięcia więcej niż 100 wartościpayment_option
, zrealizuj tę implementację przez osobę kontaktową w Google - Wszystkie pozostałe pola
payment_option
można w tym przypadku użycia zignorować
- W przypadku ceny dla pracownika zalecamy wygenerowanie
- Ustaw
W pliku danych dostępności ustaw
Availability.payment_option_id
na tablicę pojedynczego produktu zpayment_option_id
wartościpayment_option
określonej na poziomieMerchant
W pliku danych o usługach ustaw
Service.price
na najniższą wartość z przedziału cenowego dla tej usługi, aService.price_interpretation
naSTARTS_AT
payment_option
Przykład ceny za pracownika
W tym przykładzie Robert (identyfikator: 1) jest bardziej doświadczonym fryzjerem niż Anna (identyfikator: 2), dlatego właścicielka salonu postanowiła zarezerwować go dla Roberta drożej o 5 zł. Domyślny koszt strzyżenia krótkich włosów to 20 zł, a przypadku długich włosów – 30 zł. Jeśli użytkownik wybierze Roberta, kwota będzie kosztować odpowiednio 25 PLN lub 35 PLN.
Imię i nazwisko pracownika | Strzyżenie krótkie | Strzyżenie długich włosów |
---|---|---|
Janina | $20* | $30* |
Robert | 25 HKD | $35 |
*cena domyślna za usługę
Sprzedawcy
{ "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 } } ] } ] }
Usługi
{ "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" } ] } } ] }
Dostępność
{ "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"] } ] } ] }
Przykład ceny według czasu
W tym przykładzie salon jest otwarty od 10:00 do 20:00. Właściciel salonu samochodowego postanowił doliczyć dodatkowy koszt w wysokości 5 USD za rezerwacje po godzinie 18:00.
Przykład związany z dostępnością został zdefiniowany dla soboty, 1 września 2018 r. w strefie czasowej PT. 1535821200 to 10:00 tego dnia, 1535850000 to 18:00 tego dnia i 1535857200 – 20:00.
pora dnia, | Strzyżenie krótkie | Strzyżenie długich włosów |
---|---|---|
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 HKD | $35 |
19:00 ~ 20:00 | 25 HKD | $35 |
Sprzedawcy
{ "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 } } ] } ] }
Usługi
{ "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" } ] } } ] }
Dostępność
{ "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"] } ] } ] }