API dokumentáció

Használja fejlesztői API-nkat saját foglalási felületének létrehozásához. Bármilyen megoldást tervezhet, a legegyszerűbb widgetektől kezdve a multifunkcionális alkalmazásig, amely az Ön üzleti sajátosságainak megfelelően testre szabott funkciókkal rendelkezik.

A Simplybook alkalmazásprogramozási interfész a JSON-RPC 2.0 protokollt használja .

Tekintse meg az API-alapú foglalási felület példáját, és olvassa el a megoldás forráskódját is.

Engedélyezés

A Simplybook API-módszerek hitelesítést igényelnek. A Simplybook API-ban történő engedélyezéshez szükség van egy hozzáférési kulcsra - access-tokenre. A hozzáférési kulcs megszerzéséhez meg kell hívnia a http://user-api.simplybook.me/login szolgáltatás JSON-RPC getToken módszerét a személyes API-kulcs átadásával. Az API-kulcsot az adminisztrációs felületen másolhatja: menjen a 'Plugins' linkre, és válassza ki az API plugin 'Settings' (Beállítások) menüpontját. Ezután a Simplybook API távoli elérését kell engedélyeznie. A kérésednek a következő fejléceket kell tartalmaznia: 'X-Company-Login', 'X-Token'.

A hozzáférési azonosító megszerzése történhet az ügyféloldalról vagy a szerverről, ami a biztonságosabb megoldás.

A példáinkból származó javascript JSON-RPC-kliens könyvtárat és php JSON-RPC-kliens könyvtárat használhatja saját megoldásainak fejlesztéséhez.


Ügyfél API(vállalati közszolgáltatás) engedélyezés

Engedélyezés az ügyféloldali kódból

A token-kulcs megszerzése.


    var loginClient = new JSONRpcClient({
        'url': 'https://user-api.simplybook.me' + '/login',
        'onerror': function (error) {},
    });
    var token = loginClient.getToken( YOUR_COMPANY_LOGIN, YOUR_API_KEY);
    

JSON-RPC-kliens inicializálása


    this.client = new JSONRpcClient({
        'url': 'https://user-api.simplybook.me',
        'headers': {
            'X-Company-Login': YOUR_COMPANY_LOGIN,
            'X-Token': token
        },
        'onerror': function (error) {}
    });
    

Engedélyezés a kiszolgáló oldali kódból

A token-kulcs megszerzése.


    $loginClient = new JsonRpcClient('https://user-api.simplybook.me' . '/login/');
    $token = $loginClient->getToken(YOUR_COMPANY_LOGIN, YOUR_API_KEY);
    

JSON-RPC-kliens inicializálása.


    $client = new JsonRpcClient( 'https://user-api.simplybook.me' . '/', array(
        'headers' => array(
            'X-Company-Login: ' .  YOUR_COMPANY_LOGIN,
            'X-Token: ' . $token
        )
    ));
    

Felhasználó/Admin API(cégadminisztrációs szolgáltatás) engedélyezése

Engedélyezés az ügyféloldali kódból

A token-kulcs megszerzése.


    var loginClient = new JSONRpcClient({
        'url': {$api_url} + '/login',
        'onerror': function (error) {},
    });
    var token = loginClient.getUserToken( YOUR_COMPANY_LOGIN,  YOUR_USER_LOGIN,  YOUR_USER_PASSWORD);
    

JSON-RPC-kliens inicializálása.


    this.client = new JSONRpcClient({
        'url': 'https://user-api.simplybook.me' + '/admin/',
        'headers': {
            'X-Company-Login': YOUR_COMPANY_LOGIN,
            'X-User-Token': token
        },
        'onerror': function (error) {}
    });
    

Engedélyezés a kiszolgáló oldali kódból

A token-kulcs megszerzése.


    $loginClient = new JsonRpcClient('https://user-api.simplybook.me' . '/login/');
    $token = $loginClient->getUserToken({YOUR_COMPANY_LOGIN, YOUR_USER_LOGIN, YOUR_USER_PASSWORD);
    

JSON-RPC-kliens inicializálása.


    $client = new JsonRpcClient('https://user-api.simplybook.me' . '/admin/', array(
        'headers' => array(
            'X-Company-Login: ' . YOUR_COMPANY_LOGIN,
            'X-User-Token: ' . $token
        )
    ));
    

Adatok lekérése a Simplybook szerverről

A foglalási oldal általában egy olyan oldal, ahol az ügyfelek kiválasztják az általuk igényelt szolgáltatást, az alkalmazottat és a találkozó időpontját. Ezután az ügyfél megadja néhány elérhetőségi adatot, és megerősíti a foglalást. Az összetettebb megoldások magukban foglalhatják különböző további mezők kitöltését, néhány csoportos vagy több időpontra szóló foglalás elkészítését és így tovább. Ismertessük a legegyszerűbb foglalási oldal létrehozásának munkafolyamatát. Ha további funkciókat szeretne hozzáadni az oldalához, itt találja a Simplybook API-módszerek teljes listáját .

Tehát az első dolog, amit meg kell jelenítenie, az a szolgáltatások és a foglalkoztatottak listája. Ezeket az adatokat a getEventList és a getUnitList metódusokkal szerezheti meg. Mindkettő egy listát ad vissza, amelyben minden egyes elemről teljes információ található, így számos lehetőséged van arra, hogy hogyan jelenítsd meg a szolgáltatásokat és az alkalmazottakat az oldaladon. Az alkalmazottak szűréséhez használja a szolgáltatáslista unit_map tulajdonságát, ez tartalmazza a kiválasztott szolgáltatást nyújtani képes alkalmazottak adatait.

Kódpélda a szolgáltatások listájának beszerzésére


    $services = $client->getEventList();
    // returns array(array(
    //     'id' => 1, - service id
    //     'name' => 'Service 1', - service's name
    //     'description' => 'Describe your service...', - service description
    //     'duration' => 60, - service duration
    //     'hide_duration' => 0, - Hide duration to clients flag,
    //     'picture' => null, - file name of picture or null
    //     'picture_path' => '/uploads/apidemo/event__picture/small/', - full path to picture,
    //     'position' => 1 - service position
    //     'is_active' => 1, - the service is activated
    //     'is_public' => 1, - the service is allowed to book by clients
    // ), ...)
    

Kódpélda a szolgáltatási előadók listájának lekérdezésére


    $services = $client->getUnitList();
    // returns array(array(
    //    'id' => 1, - performer id
    //    'name' => 'Provider 1', - performer name
    //    'phone' => '111111111', - perfomer phone number
    //    'description' => 'Describe your performer...', - performer description
    //    'email' => 'test@gmail.com', - perfomer email,
    //    'is_active' => 1, - the performer is activated
    //    'is_visible' => 1, - the perfomer is visible for clients,
    //    'picture' => null, - file name of picture or null,
    //    'picure_path' => '/uploads/apidemo/unit_group__picture/small/', - full path to picture
    //    'position' => 1, - performer position
    //    'qty' => 1, performer quantity
    // ), ...)
    

A következő lépés, hogy az ügyfél válassza ki a szolgáltatás időpontját. Az API-használati példában egy Bootstrap date-pickert használtunk, de használhatod ezt vagy bármilyen más naptárat is. A naptár első dátumának beállításához használja a getFirstWorkingDay módszert. A módszer paraméterként elfogadja a munkavállaló azonosítóját, és visszaadja a következő dátumot, amikor a kiválasztott munkavállaló (vagy alapértelmezés szerint bármelyik munkavállaló a vállalaton belül) foglalható.{""|t} A kiválasztott dátumon belüli idősávok megjelenítéséhez a getWorkCalendar és a getStartTimeMatrix módszerekre van szükség. Az első módszer információt ad a munkanap kezdő és befejező időpontjáról, valamint a szabadnapokról. A második pedig az adott dátumra foglalható idősávok listáját adja vissza.

Kódpélda a munkanapokra vonatkozó információk megszerzésére


    $year = 2020;
    $month = 3; // March
    $performerId = 1; // Can be null
    $workDaysInfo = $client->getWorkCalendar($year, $month, $performerId);
    // returns array(
    //     '2020-03-01' => array('from' => '09:00:00', 'to' => '18:00:00', 'is_day_off' => 0),
    //     '2020-03-02' => array('from' => '09:00:00', 'to' => '18:00:00', 'is_day_off' => 0),
    //     ...
    //);
    

Kódpélda a kezdési idő mátrix megszerzésére


    $dateFrom = '2020-03-03';
    $dateTo = '2020-03-04';
    $serviceId = 1;
    $performerId = 1;
    $qty = 1;
    $availableTime = $client->getStartTimeMatrix($dateFrom, $dateTo, $serviceId, $performerId, $qty);
    // returns array(
    //     '2015-03-03' => array('09:00:00', '09:30:00', '10:00:00', ....),
    //     '2015-03-04' => array('09:00:00', '09:30:00', '10:00:00', ....),
    //);
    

Egy másik hasznos módszer, amire szükséged lehet, a calculateEndTime. Minden szolgáltatásnak saját időtartama lehet, és a vállalat alkalmazottai is eltérő munkarendben dolgozhatnak napról napra. Így ennek a módszernek a segítségével az ügyfél számára helyesen mutathatja meg a lefoglalt szolgáltatás végét és időpontját.

Kódpélda a foglalás végének kiszámítására


    $startDateTime = '2020-03-03 09:00:00';
    $serviceId = 1;
    $performerId = 1;
    $availableTime = $client->calculateEndTime($startDateTime, $serviceId, $performerId);
    // returns '2020-03-03 10:00:00'
    

Amikor az ügyfél a foglalás megerősítése gombra kattint, meg kell hívnia a book módszert. Ez a fő funkció, amely elvégzi az összes szükséges érvényesítést és regisztrálja az új foglalást a Simplybook rendszerben. A foglalással kapcsolatos információkat, az ügyfél adatait, mint a név és a telefonszám, valamint néhány további paramétert vesz fel. Lásd a módszer összes paraméterének leírását az API-funkciók listájában. A foglalási módszer válasza tartalmaz egy egyedi kódot és az új foglalás egyéb részleteit, vagy a hibák listáját, ha valamilyen probléma merült fel, így ezt az információt felhasználhatja arra, hogy a foglalás eredményét az ügyfélnek kényelmesen és intuitív módon mutassa meg


API titkos kulcs használata

Bizonyos esetekben a foglalási mód megkövetelheti a visszaigazolást, pl. ha Ön elfogadja az ügyfelektől a fizetést, akkor a foglalást csak akkor erősíti meg, ha a fizetés már megtörtént. A Simplybook API confirmBookng módszere a booking-id-t és a biztonságos aláírást veszi fel paraméterként (egy másik módszer, amely biztonságos aláírást igényel, a cancelBookng). A biztonságos aláírás létrehozásához a titkos API-kulcsot kell használni. Az alábbi példában láthatja, hogyan lehet ezt megtenni. A titkos kulcsot az admin felületen találja meg az API plugin "Beállítások" linkje alatt a "Plugins" listában.

Kódpélda a szolgáltatásfoglalásra és annak megerősítésére a titkos API kulcs használatával


    $additionalFields = array(
	'6740d3bce747107ddb9a789cbb78abf3' => 'value1',
	'b0657bafaec7a2c9800b923f959f8163' => 'value2'
    );

    $clientData = array(
        'name' => 'Client name',
        'email' => 'client@email.com',
        'phone' => '+13152108338'
    );

    $bookingsInfo = $client->book($eventId, $unitId, $date, $time, $clientData, $additionalFields);

    if ($bookingsInfo->require_confirm) {
       foreach ($bookingsInfo->bookings as $booking) {
           $sign = md5($booking->id . $booking->hash . YOUR_API_SECRET_KEY);
           $result = $client->confirmBooking($booking->id, $sign);
           echo '<br>Confirm result</b><br />';
           var_dump($result);
        }
    }
    

Kódpélda további mezők lekérdezésére


    $fields = $client->getAdditionalFields($eventId);
    // returns - array(array(
    //		'name' => 'b0657bafaec7a2c9800b923f959f8163', - field name
    //		'title' => 'Test digits', - field title
    //		'type' => 'digits', - field type
    //		'values' => null, - available values for select field type
    //		'default' => null, - default value for field
    //		'is_null' => null, - is filed nullable
    //		'on_main_page' => 1,
    //		'pos' => 1, - field position
    //		'value' => null
    // )), ...)
    

Simplybook bővítmények

Ha az Ön vállalati sajátosságai további funkciókat igényelnek, akkor aktiválhatja néhány további bővítményünket. A teljes plugin lista részletes leírással az adminisztrációs felületen a 'Plugins' link alatt érhető el. A szükséges plugin aktiválása után a megfelelő API-módszerek aktiválódnak, így Ön használhatja azokat a kódjában.

Foglalási funkcionalitás codeflow

Engedélyezés a Simplybook API-ban loginClient.getToken(companyLogin, apiKey); function.


Ellenőrizze, hogy a Service categories plugin aktiválva van-e az isPluginActivated('event_category') segítségével, ha igen, akkor megjeleníti a kategóriák listáját getCategoriesList().


A getEventList() és getUnitList() függvények segítségével a szolgáltatások (események) és az előadók (egységek) listájának lekérdezése. Ha az 'unit_map' tömb elérhető a szolgáltatáshoz, az azt jelenti, hogy ezt a szolgáltatást csak az adott előadók nyújthatják.


Ha az Any Employee selector plugin aktiválva van isPluginActivated('any_unit') és nincs speciális időtartam beállítva a szolgáltatás-teljesítő párhoz az 'unit_map' tömbben, akkor a felhasználónak lehetővé kell tenni, hogy kiválaszthassa az Any provider opciót vagy manuálisan válassza ki a szolgáltatót. A teljesítők kézi kiválasztása azonban nem lehet lehetséges, ha a getCompanyParam('any_unit__hide_other_units') opció engedélyezve van.


A getStartTimeMatrix ($from mint aktuális dátum, $to mint aktuális dátum, $eventId, $unitId, $count mint a kiválasztott résztvevők értéke ) segítségével megkapja az adott dátumhoz rendelkezésre álló idősávokat. a $unitId értéknek nullnak kell lennie, ha a Bármely alkalmazott opció van kiválasztva.


Ha a Bármely alkalmazott szelektor aktív és Bármely alkalmazott volt kiválasztva, hívja a getAvailableUnits($eventId, $dateTime, $count) parancsot a rendelkezésre álló $unitId megadásához


Ha a Additional fields plugin aktiválva van isPluginActivated('event_field') hívja meg a getAdditionalFields($eventId) függvényt, hogy megkapja az ügyfél által kitölthető mezők listáját.


A book($eventId, $unitId, $date, $time, $clientData, $additional, $count, $batchId) hívása a foglaláshoz.


Miért választják ügyfelek ezrei a SimplyВook.me API-t?

Világos és egyszerű kezelőfelület. Saját foglalási szolgáltatásának felépítése egyszerű

Könnyedén csatlakoztathatja az összes szükséges funkciót

Valós idejű időbeosztás - ügyfelei bárhol és bármikor foglalhatnak időpontot, a nap 24 órájában, a nap 24 órájában

Alkalmazásunk rengeteg további hasznos funkciót kínál. Kattintson ide, ha többet szeretne megtudni funkcióinkról.

API

Hagyja, hogy ügyfelei az alkalmazás elhagyása nélkül foglaljanak szolgáltatásokat!

Tegye weboldalát vagy alkalmazását relevánsabbá, vonzóbbá és jövedelmezőbbé azáltal, hogy az ügyfelei a helyi vállalkozások felfedezése után olyan műveleteket végeznek, amelyeket meg kívánnak tenni. API-nk segítségével könnyedén beépíthet egy "Foglalás most" gombot közvetlenül a weboldalára, így ügyfelei valós időben, éjjel vagy nappal is ütemezhetnek időpontot.

API-nk hozzáférést biztosít az összes foglalási adathoz, amelyre szüksége van ahhoz, hogy ütemezési funkciókat építsen ki és alkalmazzon ügyfelei számára.

Ha összekötjük az ügyfelet az Ön üzleti menetrendjével, a kereskedelem egy teljesen új rétegét hidaljuk át. Úgy gondoljuk, hogy a közvetlen időpontfoglalás az Ön alkalmazásán vagy weboldalán lehetővé teszi számunkra, hogy ne csak ügyfélpotenciált, hanem ügyfélkiszállítást is nyújtsunk Önnek.