User API guide/nl: Difference between revisions
Created page with "Bekijk [https://simplybook.me/api_example/index.html een voorbeeld van een API-gebaseerde boekingsinterface] en lees ook [https://simplybook.me/api_example/scheduler.js de broncode] van deze oplossing. <br><br><br>" Tags: Mobile edit Mobile web edit |
Created page with "Gebruik onze ontwikkelaars-API om uw eigen boekingsinterface te maken. U kunt elke gewenste oplossing ontwerpen, van de eenvoudigste widget tot een multifunctionele applicatie met functionaliteit die is aangepast aan uw bedrijfsspecifieke behoeften." |
||
| (9 intermediate revisions by the same user not shown) | |||
| Line 112: | Line 112: | ||
<br><br> | <br><br> | ||
'''Codevoorbeeld voor het ophalen van de lijst met services''' | |||
''' | |||
<br><br> | <br><br> | ||
<nowiki>$services = $client- | <nowiki>$services = $client->getEventList(); | ||
// | // retourneert array(array( | ||
// 'id' = | // 'id' => 1, - service-id | ||
// 'name' = | // 'name' => 'Service 1', - naam van de service | ||
// 'description' = | // 'description' => 'Beschrijf uw service...', - beschrijving van de service | ||
// 'duration' = | // 'duration' => 60, - duur van de service | ||
// 'hide_duration' = | // 'hide_duration' => 0, - vlag om duur voor klanten te verbergen, | ||
// 'picture' = | // 'picture' => null, - bestandsnaam van de afbeelding of null | ||
// 'picture_path' = | // 'picture_path' => '/uploads/apidemo/event__picture/small/', - volledig pad naar afbeelding, | ||
// 'position' = | // 'position' => 1 - positie van dienst | ||
// 'is_active' = | // 'is_active' => 1, - de dienst is geactiveerd | ||
// 'is_public' = | // 'is_public' => 1, - de dienst kan door klanten worden geboekt | ||
// ), ...)</nowiki> | // ), ...)</nowiki> | ||
<br><br> | <br><br> | ||
'''Codevoorbeeld voor het ophalen van een lijst met dienstverleners''' | |||
''' | |||
<br><br> | <br><br> | ||
<nowiki>$services = $client- | <nowiki>$services = $client->getUnitList(); | ||
// | // retourneert array(array( | ||
// 'id' = | // 'id' => 1, - id van de dienstverlener | ||
// 'name' = | // 'name' => 'Provider 1', - naam van de uitvoerder | ||
// 'phone' = | // 'phone' => '111111111', - telefoonnummer van de uitvoerder | ||
// 'description' = | // 'description' => 'Beschrijf uw uitvoerder...', - beschrijving van de uitvoerder | ||
// 'email' = | // 'email' => 'test@gmail.com', - e-mailadres van de uitvoerder, | ||
// 'is_active' = | // 'is_active' => 1, - de uitvoerder is geactiveerd | ||
// 'is_visible' = | // 'is_visible' => 1, - de artiest is zichtbaar voor klanten, | ||
// 'picture' = | // 'picture' => null, - bestandsnaam van foto of null, | ||
// 'picure_path' = | // 'picure_path' => '/uploads/apidemo/unit_group__picture/small/', - volledig pad naar foto | ||
// 'position' = | // 'position' => 1, - positie van artiest | ||
// 'qty' = | // 'qty' => 1, aantal artiesten | ||
// ), ...)</nowiki> | // ), ...)</nowiki> | ||
<br><br> | <br><br> | ||
De volgende stap voor een klant is het kiezen van een datum en tijdstip voor zijn dienst. We hebben een Bootstrap-datumkiezer gebruikt in het API-gebruikvoorbeeld, maar u kunt ook deze of een andere kalender gebruiken. Om de eerste datum van uw kalender in te stellen, gebruikt u de methode getFirstWorkingDay. Deze methode kan het werknemers-id als parameter gebruiken en geeft de volgende datum terug waarop de geselecteerde werknemer (of standaard alle werknemers in het bedrijf) beschikbaar is voor boeking. Om tijdvakken binnen een geselecteerde datum weer te geven, hebt u de methoden getWorkCalendar en getStartTimeMatrix nodig. De eerste methode geeft u informatie over de begin- en eindtijd van de werkdag en over vrije dagen. De tweede methode retourneert de lijst met tijdvakken die voor een bepaalde datum kunnen worden geboekt. | |||
<br><br> | <br><br> | ||
''' | '''Codevoorbeeld voor het ophalen van informatie over werkdagen''' | ||
<br><br> | <br><br> | ||
<nowiki>$jaar = 2015; | |||
<nowiki>$ | $maand = 3; // maart | ||
$ | $artiestId = 1; // kan null zijn | ||
$ | $werkdagenInfo = $client->getWorkCalendar($jaar, $maand, $artiestId); | ||
$ | // retourneert array( | ||
// | // '2015-03-01' => array('van' => '09:00:00', 'to' => '18:00:00', 'is_day_off' => 0), | ||
// '2015-03-01' = | // '2015-03-02' => array('from' => '09:00:00', 'to' => '18:00:00', 'is_day_off' => 0), | ||
// '2015-03-02' = | |||
// ... | // ... | ||
//);</nowiki> | //);</nowiki> | ||
<br><br> | <br><br> | ||
''' | '''Codevoorbeeld voor het ophalen van de starttijdmatrix''' | ||
<br><br> | <br><br> | ||
<nowiki>$dateFrom = '2015-03-03'; | <nowiki>$dateFrom = '2015-03-03'; | ||
| Line 176: | Line 169: | ||
$performerId = 1; | $performerId = 1; | ||
$qty = 1; | $qty = 1; | ||
$availableTime = $client- | $availableTime = $client->getStartTimeMatrix($dateFrom, $dateTo, $serviceId, $performerId, $qty); | ||
// | // retourneert array( | ||
// '2015-03-03' = | // '2015-03-03' => array('09:00:00', '09:30:00', '10:00:00', ....), | ||
// '2015-03-04' = | // '2015-03-04' => array('09:00:00', '09:30:00', '10:00:00', ....), | ||
//);</nowiki> | //);</nowiki> | ||
<br><br> | <br><br> | ||
Een andere handige methode die u wellicht nodig hebt, is calculateEndTime. Elke dienst kan een eigen duur hebben, en ook de werknemers van uw bedrijf kunnen van dag tot dag verschillende werktijden hebben. Met deze methode kunt u een klant op de juiste manier de einddatum en -tijd van de door hem geboekte dienst tonen. | |||
<br><br> | <br><br> | ||
''' | '''Codevoorbeeld voor het berekenen van de eindtijd van een boeking''' | ||
<br><br> | <br><br> | ||
<nowiki>$startDateTime = '2015-03-03 09:00:00'; | <nowiki>$startDateTime = '2015-03-03 09:00:00'; | ||
$serviceId = 1; | $serviceId = 1; | ||
$performerId = 1; | $performerId = 1; | ||
$availableTime = $client- | $availableTime = $client->calculateEndTime($startDateTime, $serviceId, $performerId); | ||
// | // retourneert '2015-03-03 10:00:00' | ||
</nowiki> | </nowiki> | ||
<br><br> | <br><br> | ||
Wanneer een klant op de knop 'Boeking bevestigen' klikt, moet u de methode 'book' aanroepen. Dit is de belangrijkste functie die alle noodzakelijke validaties uitvoert en een nieuwe boeking registreert in het Simplybook-systeem. Deze functie verzamelt informatie over de boeking, klantgegevens zoals naam en telefoonnummer en enkele aanvullende parameters. Zie alle parameterbeschrijvingen van deze methode in [https://simplybook.me/api/doc de lijst met API-functies]. Het antwoord van de boekingsmethode bevat een unieke code en andere details van de nieuwe boeking of een lijst met fouten als er problemen zijn opgetreden, zodat u deze informatie kunt gebruiken om het boekingsresultaat op een handige en intuïtieve manier aan een klant te tonen. | |||
<br><br><br> | <br><br><br> | ||
= '''GEBRUIK VAN API SECRET KEY''' = | |||
=''' | |||
<br><br> | <br><br> | ||
In | In sommige gevallen kan de boekingsmethode om bevestiging vragen, bijvoorbeeld als u betalingen van klanten accepteert en u de boeking pas bevestigt nadat de betaling is ontvangen. De Simplybook API-methode confirmBookng gebruikt het boekingsnummer en een beveiligde handtekening als parameters (een andere methode die een beveiligde handtekening vereist is cancelBookng). Voor het genereren van een beveiligde handtekening moet u uw geheime API-sleutel gebruiken. Zie het onderstaande voorbeeld voor hoe u dit kunt doen. U vindt de geheime sleutel in de beheerdersinterface onder de link 'Instellingen' van API Custom Feature in de lijst 'Custom Features'. | ||
<br><br> | <br><br> | ||
'''Codevoorbeeld van het boeken van een dienst en de bevestiging daarvan met behulp van een geheime API-sleutel''' | |||
''' | |||
<br><br> | <br><br> | ||
<nowiki>$additionalFields = array( | <nowiki>$additionalFields = array( | ||
'6740d3bce747107ddb9a789cbb78abf3' = | '6740d3bce747107ddb9a789cbb78abf3' => 'value1', | ||
'b0657bafaec7a2c9800b923f959f8163' = | 'b0657bafaec7a2c9800b923f959f8163' => 'value2' | ||
); | ); | ||
$clientData = array( | $clientData = array( | ||
'name' = | 'name' => 'Client name', | ||
'email' = | 'email' => 'client@email.com', | ||
'phone' = | 'phone' => '+13152108338' | ||
); | ); | ||
$bookingsInfo = $client- | $bookingsInfo = $client->book($eventId, $unitId, $date, $time, $clientData, $additionalFields); | ||
if ($bookingsInfo->require_confirm) { | |||
if ($bookingsInfo- | foreach ($bookingsInfo->bookings as $booking) { | ||
$sign = md5($booking->id . $booking->hash . YOUR_API_SECRET_KEY); | |||
$result = $client->confirmBooking($booking->id, $sign); | |||
echo ' | |||
Confirm result | Confirm result | ||
'; | '; | ||
var_dump($result); | |||
} | |||
}</nowiki> | }</nowiki> | ||
<br><br> | <br><br> | ||
'''Codevoorbeeld voor het ophalen van intakeformulieren''' | |||
''' | |||
<br><br> | <br><br> | ||
<nowiki>$fields = $client- | <nowiki>$fields = $client->getAdditionalFields($eventId); | ||
// | // retourneert - array(array( | ||
// 'name' = | // 'name' => 'b0657bafaec7a2c9800b923f959f8163', - veldnaam | ||
// 'title' = | // 'title' => 'Test digits', - veldtitel | ||
// 'type' = | // 'type' => 'digits', - veldtype | ||
// 'values' = | // 'values' => null, - beschikbare waarden voor select veldtype | ||
// 'default' = | // 'default' => null, - standaardwaarde voor veld | ||
// 'is_null' = | // 'is_null' => null, - is veld nullable | ||
// 'on_main_page' = | // 'on_main_page' => 1, | ||
// 'pos' = | // 'pos' => 1, - veldpositie | ||
// 'value' = | // 'value' => null | ||
// )), ...)</nowiki> | // )), ...)</nowiki> | ||
<br><br><br> | <br><br><br> | ||
= '''AANGEPASTE FUNCTIES VAN SIMPLYBOOK''' = | |||
='''SIMPLYBOOK | |||
<br><br> | <br><br> | ||
Als uw bedrijf specifieke extra functionaliteit nodig heeft, kunt u enkele van onze extra aangepaste functies activeren. De volledige lijst met aangepaste functies met een gedetailleerde beschrijving is beschikbaar in uw beheerdersinterface onder de link 'Aangepaste functies'. Nadat de benodigde aangepaste functie is ingeschakeld, worden de bijbehorende API-methoden geactiveerd, zodat u ze in uw code kunt gebruiken. | |||
<br><br><br> | <br><br><br> | ||
=''' | = '''BOEKINGSFUNCTIONALITEIT CODEFLOW''' = | ||
<br><br> | <br><br> | ||
Autoriseer in Simplybook API met behulp van de functie '''loginClient.getToken(companyLogin, apiKey);'''. | |||
Controleer of de aangepaste functie Servicecategorieën is geactiveerd door [https://simplybook.me/en/api/doc#isPluginActivated isPluginActivated("event_category")]. Zo ja, geef dan de lijst met categorieën weer met [https://simplybook.me/en/api/doc#getCategoriesList getCategoriesList()]. | |||
Haal een lijst met diensten (evenementen) en uitvoerders (eenheden) op met behulp van de functies [https://simplybook.me/en/api/doc#getEventList getEventList()] en [https://simplybook.me/en/api/doc#getUnitList getUnitList()]. Als de array "unit_map" beschikbaar is voor een dienst, betekent dit dat deze dienst alleen door de opgegeven uitvoerders kan worden geleverd. | |||
Als de aangepaste functie 'Any Employee Selector' is geactiveerd [https://simplybook.me/en/api/doc#isPluginActivated (isPluginActivated("any_unit"))] en er geen speciale duur is ingesteld voor de combinatie van dienstverlener en uitvoerder in de array 'unit_map', dan moet de gebruiker de optie 'Any provider' kunnen selecteren of de dienstverlener handmatig kunnen kiezen. Handmatige selectie van uitvoerders mag echter niet mogelijk zijn als [https://simplybook.me/en/api/doc#getCompanyParam getCompanyParam("any_unit__hide_other_units")] is ingeschakeld. | |||
Gebruik [https://simplybook.me/en/api/doc#getStartTimeMatrix getStartTimeMatrix ($from als huidige datum, $to als huidige datum, $eventId, $unitId, $count als waarde voor geselecteerde deelnemers)] om beschikbare tijdvakken voor een bepaalde datum op te halen. '''$unitId''' moet null zijn als de optie Alle medewerkers is geselecteerd. | |||
Als de selectie 'Any Employee' actief is en een werknemer is geselecteerd, roep dan [https://simplybook.me/en/api/doc#getAvailableUnits getAvailableUnits($eventId, $dateTime, $count)] aan om de beschikbare $unitId op te halen | |||
Als de aangepaste functie voor intakeformulieren is geactiveerd, roep dan [https://simplybook.me/en/api/doc#isPluginActivated isPluginActivated("event_field")] de functie [https://simplybook.me/en/api/doc#getAdditionalFields getAdditionalFields($eventId)] aan om de lijst met velden op te halen die de klant moet invullen. | |||
Roep [https://simplybook.me/en/api/doc#book boek($eventId, $unitId, $date, $time, $clientData, $additional, $count, $batchId)] aan om een boeking te maken. | |||
<br><br> | <br><br> | ||