Company administration service methods: Difference between revisions

No edit summary
Line 1: Line 1:
You can find full list of Company administration service API methods [https://simplybook.me/api/doc#/admin here].
== Methods ==
==Methods==
 
=== addClient ===
 
<code>addClient($clientData)</code>
 
Parameters:
 
* '''$clientData''' Object
 
Returns Integer.
 
Adds new client with specified data. You can specify name, email, phone, address1, address2, city, zip,
country_id. If client record with specified data exists  method will return an id of this record. Otherwise data
will be stored to database and method will return an id of newly created record. NOTE: name is mandatory field.Also email, phone number or both of them can be mandatory fields. You should call
<code>getCompanyParam('require_fields')</code> method to check which fields are required.
 
Method returns an error:
 
* -32061 Client name value is wrong
* -32062 Client email value is wrong
* -32063 Client phone value is wrong
 
 
Example:
 
  {
    name: "Frances T. Perez",
    phone: "+1502-810-4521",
    email: "FrancesTPerez@teleworm.us",
    address1: "3872 Earnhardt Drive",
    address2: "Louisville, KY 40219",
    city: Louisville,
    zip: 3872
  }
 
 
----
 
=== addDeviceToken ===
 
<code>addDeviceToken($token, $device)</code>
 
Parameters:
 
* '''$token''' String- device token
* '''$device''' String- device type (android or apple)
 
Returns boolean.
 
Subscribe a mobile device to push notifications about new bookings or changes in already created bookings.Use <code>'apple'</code> or <code>'android'</code> for <code>device</code> parameter.
 
 
----
 
=== book ===
 
<code>book($eventId, $unitId, $clientId, $startDate, $startTime, $endDate, $endTime, $clientTimeOffset, $additional, $count, $batchId, $recurringData)</code>
 
Parameters:
 
* '''$eventId''' Integer
* '''$unitId''' Integer
* '''$clientId''' Integer
* '''$startDate'''
* '''$startTime'''
* '''$endDate''' null
* '''$endTime''' null
* '''$clientTimeOffset''' Integer
* '''$additional''' array|Object- additional params and fields.
* '''$count''' Integer- bookings count, min. 1 (using for group bookings batch). (optional)
* '''$batchId''' Integer- add booking to multiple bookings batch. (optional)
* '''$recurringData''' Array- make booking recurrent. (optional)
 
Returns Object.
 
Book service. Returns object with appointment information or throw exception
If appointment requires confirm, in result object will be require_confirm = true
You can use $count > 1 or $batchId != null at the same time.
 
 
----
 
=== calculateEndTime ===
 
<code>calculateEndTime($startDateTime, $eventId, $unitId)</code>
 
Parameters:
 
* '''$startDateTime''' Stringa date and time string in format &#039;Y-m-d H:i:s&#039;, eg. &#039;2001-10-02 13:30:00&#039;.
* '''$eventId''' Integer
* '''$unitId''' Integer
 
Returns String|Boolean.
 
Returns end datetime if booking is available, else return false
 
 
----
 
=== cancelBatch ===
 
<code>cancelBatch($id, $bookingIds)</code>
 
Parameters:
 
* '''$id''' Integer
* '''$bookingIds''' Array
 
Returns boolean.
 
Cancel batch of bookings. Signature is NOT required.First id is used for information in notifications
 
 
----
 
=== cancelBooking ===
 
<code>cancelBooking($id)</code>
 
Parameters:
 
* '''$id''' Integer
 
Returns Boolean.
 
Cancel booking. Signature is NOT required
 
 
----
 
=== createBatch ===
 
<code>createBatch()</code>
 
No arguments.
Returns Integer.
 
Create booking batch
Returns batch id
 
 
----
 
=== deleteDeviceToken ===
 
<code>deleteDeviceToken($token)</code>
 
Parameters:
 
* '''$token''' String- device token
 
Returns boolean.
 
Unsubscribe to push notifications gloabl or company
 
 
----
 
=== editBook ===
 
<code>editBook($shedulerId, $eventId, $unitId, $clientId, $startDate, $startTime, $endDate, $endTime, $clientTimeOffset, $additional)</code>
 
Parameters:
 
* '''$shedulerId''' Integer
* '''$eventId''' Integer
* '''$unitId''' Integer
* '''$clientId''' Integer
* '''$startDate''' String- in Y-m-d format
* '''$startTime''' String- in H:i:s format
* '''$endDate''' String- in Y-m-d format
* '''$endTime''' String- in H:i:s format
* '''$clientTimeOffset''' Integer
* '''$additional''' array|Object- additional params and fields.
 
Returns Object.
 
Edit existing booking
 
 
----
 
=== editClient ===
 
<code>editClient($clientId, $clientData)</code>
 
Parameters:
 
* '''$clientId''' Integer
* '''$clientData''' Object
 
Returns Integer.
 
Edits client's record. See <code>[[#addClient|addClient]]</code> method description for list of available fields.Method returns an id of client's record.
 
 
----
 
=== getAdditionalFields ===
 
<code>getAdditionalFields($eventId)</code>
 
Parameters:
 
* '''$eventId''' Integer
 
Returns Array.
 
Return additional fields for certain event if [[Plugins#Additional_fields|Additional fields plugin]] is
activated. Returns empty array otherwise. Call [[#isPluginActivated|isPluginActivated('event_field')]] API
method to check if 'event_field' plugin activated.
 
 
----
 
=== getAnyUnitData ===
 
<code>getAnyUnitData()</code>
 
No arguments.
Returns Object|null.
 
Returns information about [[Plugins#Any_Employee_selector|Any Employee selector plugin]] configuration. Returns
null if plugin not enabled.Example:
  {
    "description" : "Select this option, if you want to find an available time with any of the employees",
    "hide_other_units" : 1, // 1 or 0
    "image" : null,
    "name" : "Any employee",
    "picture_path" : null,
    "random_selection" : 0 // 1 or 0
  }
 
 
----
 
=== getAvailableUnits ===
 
<code>getAvailableUnits($eventId, $dateTime, $count)</code>
 
Parameters:
 
* '''$eventId''' Integer
* '''$dateTime''' Stringa date and time string in format Y-m-d H:i:s
* '''$count''' Integer
 
Returns Array.
 
Returns available unit ids for present data or empty array if all units are not allowed
Eg.: <code>[1, 2, 3]</code>
 
 
----
 
=== getBookingCancellationsInfo ===
 
<code>getBookingCancellationsInfo($dateStart, $dateEnd)</code>
 
Parameters:
 
* '''$dateStart''' Stringa date string in format &#039;Y-m-d&#039;. Pass null to get data from first day of current week.
* '''$dateEnd''' Stringa date string in format &#039;Y-m-d&#039;. Pass null to get data filtered to last day of current week.
 
Returns Array.
 
Returns statistics about created bookings and cancellations for a time period. Data presented as array of hashes for
each type of operation (created or cancelled booking) groped by clients. <code>"type"</code> field can be either
"create", "cancel" or "nopayment_cancel". If <code>"user_id"</code> not specified then bookings where created or
cancelled by admin or employee. Data with type <code>"nopayment_cancel"</code> represents bookings cancelled
automatically by system.Example:
  3 bookings where created by admin or employee and 2 bookings where automatically cancelled by system.
  [{
    "cnt" : 3,
    "firstname" : null,
    "lastname" : null,
    "login" : null,
    "type" : "create",
    "user_id"" : null
  }, {
    "cnt" : 2,
    "firstname" : null,
    "lastname" : null,
    "login" : null,
    "type" : "nopayment_cancel",
    "user_id"" : null
  }]
 
 
----
 
=== getBookingComment ===
 
<code>getBookingComment($id)</code>
 
Parameters:
 
* '''$id''' Integer
 
Returns String.
 
Returns booking comment
 
 
----
 
=== getBookingDetails ===
 
<code>getBookingDetails($id)</code>
 
Parameters:
 
* '''$id''' integerbooking id
 
Returns Array.
 
Returns detailed bookings object by booking id. See [[#getBookingDetails_response|response example]].
 
 
----
 
=== getBookingLimitUnavailableTimeInterval ===
 
<code>getBookingLimitUnavailableTimeInterval($startDateTime, $endDateTime, $eventId)</code>
 
Parameters:
 
* '''$startDateTime''' stringa date and time string in format &#039;Y-m-d H:i:s&#039;
* '''$endDateTime''' stringa date and time string in format &#039;Y-m-d H:i:s&#039;
* '''$eventId''' integer
 
Returns Array.
 
Returns time intervals not available for bookings because of configuration of [[Plugins#Limit bookings|Limit bookings]]
plugin for period of time. Returns empty array if plugin not available.
 
 
----
----
====getCompanyParam====


<code>getCompanyParam(key)</code>
=== getBookingRevenue ===


Params:
<code>getBookingRevenue($dateStart, $dateEnd, $unitGroupId, $serviceId)</code>
* '''key''' string


Returns string.
Parameters:


<code>getCompanyParam</code> API method returns configuration value for specified key. Method return invalid params error (code [[Errors handling#Error codes|-32602]]) in case if specified key not allowed. See [[#Company_params|list of available keys]].
* '''$dateStart''' null
* '''$dateEnd''' null
* '''$unitGroupId''' integer
* '''$serviceId''' integer
 
Returns Array.
 
Return bookings count and revenue value for each date in specified period. Data grouped by unit id and
represented as array with bookings count at index 0 and revenue amount at index 1. You can filter data either
by unit or by service.Example:
  ['2015-11-12' : {
    3 : [
      11, // bookings count
      128.53 // revenue
  ]}




----
----


====getPluginStatuses====
=== getBookingStats ===


<code>getPluginStatuses(pluginNames)</code>
<code>getBookingStats($groupBy)</code>


Params:
Parameters:


* '''pluginNames''' an array of strings
* '''$groupBy''' String


Returns an associative array with strings as keys and booleans as values.
Returns Array.
 
Get bookings stats


Returns an associative array (a JSON object) with values from <code>pluginNames</code> parameter as keys and boolean values for each plugin. See [[Company public service methods#pluginName|list of available plugin names]].


----
----


====isPluginActivated====
=== getBookings ===


<code>isPluginActivated(pluginName)</code>  
<code>getBookings($params)</code>


Params:
Parameters:
* '''pluginName''' string


Returns boolean (1 or 0).
* '''$params'''


Return plugin status true if status active, else false. <code>pluginName</code> parameter is a plugin. See [[Company public service methods#Plugin's identifiers|list of available plugin names]].
Returns Array.


==Constants==
Returns list of bookings filtered by given params. Filter params represented as object with following fields:* '''date_from''' a date of booking in string format 'Y-m-d'
* '''time_from''' a time string in format 'H:i:s'
* '''date_to''' a date string in format 'Y-m-d'
* '''time_to''' a time string in format 'H:i:s'
* '''created_date_from''' a date string in format 'Y-m-d'
* '''created_date_to''' a date string in format 'Y-m-d'
* '''unit_group_id''' an integer. Use it to get bookings assigned for certain service provider.
* '''event_id''' an integer. Use it to  get bookings only for certain service.
* '''is_confirmed''' 1 or 0. If [[Plugins#Approve booking|Approve booking]] plugin enabled then method will return confirmed bookings with approve status 'new'.
* '''client_id''' an integer. Use it to get bookings only for certain client.
* '''order''' string either 'record_date', 'date_start' or 'date_start_asc'. By default used 'date_start' value.
* '''booking_type''' a string. Value of this fiend depends on Approve booking plugin.
If plugin not active:
** '''all''' for all bookings (default value)
** '''cancelled''' alias to 'is_confirmed' equal to 0
** '''non_cancelled''' alias to 'is_confirmed' equal to 1
If plugin active:
** '''all''' for all bookings (default value)
** '''cancelled''' returns bookings with 'is_confirmed' field equals to 0 and approve booking status equals to 'cancelled' (or booking does not have any approve status)
** '''non_cancelled''' returns bookings with either 'is_confirmed' field equals to 1 or approve booking status equals to 'new'
** '''cancelled_by_client''' returns bookings approved by admin but cancelled by client
** '''cancelled_by_admin''' returns bookings cancelled by admin
** '''non_approved_yet''' returns bookings with approve status 'new'
** '''approved''' returns bookings with either 'is_confirmed' field equals to 1 and approve booking status equals to 'approved' (or booking does not have any approve status)
 
Example:
  {
    "date_from":"2015-12-29",
    "date_to":"2015-12-29",
    "booking_type":"cancelled",
    "event_id":"5",
    "order":"start_date"
  }
 
 
----
 
=== getBookingsZapier ===
 
<code>getBookingsZapier()</code>
 
No arguments.
Returns Array.
 
Returns list of bookings filtered by given params
 
 
----
 
=== getCategoriesList ===
 
<code>getCategoriesList($isPublic)</code>
 
Parameters:
 
* '''$isPublic''' Boolean
 
Returns Array.
 
Returns company categories list if [[Plugins#Service categories|Service categories plugin]] is activated. Returns
an error with code -32001 if plugin is not activated. Use [[#isPluginActivated|isPluginActivated('event_category')]]
API method to check if plugin activated.
 
 
----
 
=== getClient ===
 
<code>getClient($clientId)</code>
 
Parameters:
 
* '''$clientId'''
 
Returns Array.
 
Get client by id
 
 
----
 
=== getClientComments ===
 
<code>getClientComments($clientId, $shedulerId)</code>
 
Parameters:
 
* '''$clientId''' Integer
* '''$shedulerId''' Integer
 
Returns Array.
 
Returns list of all comments for given client
 
 
----
 
=== getClientList ===
 
<code>getClientList($searchString, $limit)</code>
 
Parameters:
 
* '''$searchString''' String
* '''$limit''' Integer
 
Returns Array.
 
Get list of clients
 
 
----
 
=== getCompanyCurrency ===
 
<code>getCompanyCurrency()</code>
 
No arguments.
Returns String.
 
Returns company currency
 
 
----
 
=== getCompanyInfo ===
 
<code>getCompanyInfo()</code>
 
No arguments.
Returns Object.
 
Returns company information
 
 
----
 
=== getCompanyParam ===
 
<code>getCompanyParam($key)</code>
 
Parameters:
 
* '''$key''' String
 
Returns mixed.
 
Returns company config value for key. A different set of keys available for public API and for company
administration API. Method return 'invalid params' error (code -32602) in case if access to specified key not
allowed. See [[#Company_params|list of available keys]].
 
 
----
 
=== getCountryList ===
 
<code>getCountryList()</code>
 
No arguments.
Returns Array.
 
Get list of all countries
 
 
----
 
=== getCountryPhoneCodes ===
 
<code>getCountryPhoneCodes()</code>
 
No arguments.
Returns Array.
 
Returns country phone code list
 
 
----
 
=== getCurrentTariffInfo ===
 
<code>getCurrentTariffInfo()</code>
 
No arguments.
Returns Array.
 
Return all information about current tariff
 
 
----
 
=== getCurrentUserDetails ===
 
<code>getCurrentUserDetails()</code>
 
No arguments.
Returns Array.
 
Returns current logged user info
 
 
----
 
=== getEventList ===
 
<code>getEventList($isVisibleOnly, $asArray)</code>
 
Parameters:
 
* '''$isVisibleOnly''' Boolean
* '''$asArray''' Boolean
 
Returns Array.
 
Returns company events list
 
 
----
 
=== getFeedbacks ===
 
<code>getFeedbacks($approvedOnly, $reviewsOnly, $lastOnly, $limit)</code>
 
Parameters:
 
* '''$approvedOnly''' Boolean
* '''$reviewsOnly''' Boolean
* '''$lastOnly''' Boolean
* '''$limit''' Integer
 
Returns Array.
 
Get list of feedbacks
 
 
----
 
=== getFirstWorkingDay ===
 
<code>getFirstWorkingDay($unitId)</code>
 
Parameters:
 
* '''$unitId''' Integer
 
Returns String.
 
Returns first working date for unit
 
 
----
 
=== getGoogleCalendarBusyTime ===
 
<code>getGoogleCalendarBusyTime($startDateTime, $endDateTime, $unitId)</code>
 
Parameters:
 
* '''$startDateTime''' string
* '''$endDateTime''' string
* '''$unitId''' integer
 
Returns Array.
 
Return busy time by unit id by GoogleCalendar plugin if enabled.If cache is not expired will return from cache, else load from google and save to cache
 
 
----
 
=== getGoogleCalendarBusyTimeAvailableUnits ===
 
<code>getGoogleCalendarBusyTimeAvailableUnits()</code>
 
No arguments.
Returns Array.
 
Returns configured unit ids, allowed to sync busy time
 
 
----
 
=== getLastNotificationUpdate ===
 
<code>getLastNotificationUpdate($type)</code>
 
Parameters:
 
* '''$type''' String
 
Returns String.
 
Returns last update datetime
 
 
----
 
=== getLocationsList ===
 
<code>getLocationsList($isPublic)</code>
 
Parameters:
 
* '''$isPublic''' Boolean
 
Returns Array.
 
Returns available locations for company if plugin [[Plugins#Unit location plugin]] is activated. Return an error
with code -32001 if plugin is not activated. Use [[#isPluginActivated|isPluginActivated('location')]] API method
to check if plugin activated.
 
 
----
 
=== getPluginList ===
 
<code>getPluginList()</code>
 
No arguments.
Returns Array.
 
Get list of plugins with status
 
 
----
 
=== getPluginStatuses ===
 
<code>getPluginStatuses($pluginNames)</code>
 
Parameters:
 
* '''$pluginNames''' Array
 
Returns Array.
 
Return plugin status true if status active, else false. See [[#Plugin's identifiers|list of available plugin's names]].
 
 
----
 
=== getRecentActions ===
 
<code>getRecentActions($lastOnly, $limit)</code>
 
Parameters:
 
* '''$lastOnly''' Boolean
* '''$limit''' Integer
 
Returns Array.
 
Returns latest actions
 
 
----
 
=== getRecurringDatetimes ===
 
<code>getRecurringDatetimes($eventId, $unitId, $date, $time, $recurringData, $endDateTime)</code>
 
Parameters:
 
* '''$eventId''' Integer
* '''$unitId''' Integer
* '''$date''' String
* '''$time''' String
* '''$recurringData''' Array
* '''$endDateTime''' null
 
Returns Array.
 
Get list of dates for recurring booking
 
 
----
 
=== getRecurringSettings ===
 
<code>getRecurringSettings($eventId)</code>
 
Parameters:
 
* '''$eventId''' Integer
 
Returns Array.
 
Get recurring settings for event
 
 
----
 
=== getRegistrations ===
 
<code>getRegistrations($groupBy)</code>
 
Parameters:
 
* '''$groupBy''' String
 
Returns Array.
 
Get number of registration grouped by day/week/month
 
 
----
 
=== getReservedTime ===
 
<code>getReservedTime($from, $to, $eventId, $unitId, $count)</code>
 
Parameters:
 
* '''$from''' String
* '''$to''' String
* '''$eventId''' Integer
* '''$unitId''' Integer
* '''$count''' Integer
 
Returns Object.
 
Returns not available time
Eg.: <code>{'2014-05-14': [{'events': [{'from': '14:00', 'to': '14:30'}], 'type': "reserved_time"}, ...], ...}</code>
 
 
----
 
=== getSocialCounterStats ===
 
<code>getSocialCounterStats($provider)</code>
 
Parameters:
 
* '''$provider''' String
 
Returns Integer.
 
Returns social counters value for your domain
 
 
----
 
=== getStartTimeMatrix ===
 
<code>getStartTimeMatrix($from, $to, $eventId, $unitId, $count)</code>
 
Parameters:
 
* '''$from''' String
* '''$to''' String
* '''$eventId''' Integer
* '''$unitId''' Mixedcan be Integer or Array of Integers
* '''$count''' Integer
 
Returns Object.
 
Returns available start time, taking into account breaktimes, start and end working time
Eg.: <code>{'2014-05-14': ['09:00:00', ...], ...}</code>
 
If locations plugin activated for company you should pass a list as $unitID parameter for filter results with
units available only for selected location. See [[Plugins#Unit_location|Unit location]] plugin description for
more details.
 
 
----
 
=== getStatuses ===
 
<code>getStatuses()</code>
 
No arguments.
Returns Array.
 
Return list of available statuses
 
 
----
 
=== getTimeframe ===
 
<code>getTimeframe()</code>
 
No arguments.
Returns Integer.
 
Returns company timeframe
 
 
----
 
=== getTopPerformers ===
 
<code>getTopPerformers()</code>
 
No arguments.
Returns Array.
 
Get list of performers with number of bookings and revenues per service
 
 
----
 
=== getTopServices ===
 
<code>getTopServices($dateStart, $dateEnd)</code>
 
Parameters:
 
* '''$dateStart''' String
* '''$dateEnd''' String
 
Returns Array.
 
Get list of services with number of bookings and revenues per service
 
 
----
 
=== getUnitList ===
 
<code>getUnitList($isVisibleOnly, $asArray)</code>
 
Parameters:
 
* '''$isVisibleOnly''' Boolean
* '''$asArray''' Boolean
 
Returns Array.
 
Returns service performrs list
 
 
----
 
=== getUnitWorkdayInfo ===
 
<code>getUnitWorkdayInfo($dateStart, $dateEnd, $unitGroupId)</code>
 
Parameters:
 
* '''$dateStart'''
* '''$dateEnd'''
* '''$unitGroupId''' integer
 
Returns Array.
 
Return workday info (date_start and date_end)
 
 
----
 
=== getUnitWorkingDurations ===
 
<code>getUnitWorkingDurations($dateStart, $dateEnd, $unitGroupId)</code>
 
Parameters:
 
* '''$dateStart''' null
* '''$dateEnd''' null
* '''$unitGroupId''' integer
 
Returns Array.
 
Return working durations
 
 
----
 
=== getVisitorStats ===
 
<code>getVisitorStats($groupBy)</code>
 
Parameters:
 
* '''$groupBy''' String
 
Returns Array.
 
Get visitor stats
 
 
----
 
=== getWorkCalendar ===
 
<code>getWorkCalendar($year, $month, $unitId)</code>
 
Parameters:
 
* '''$year''' Integer
* '''$month''' Integer
* '''$unitId''' Integer
 
Returns Object.
 
Returns company work schedule as array
Eg.: <code>{'2014-05-01': {'from': '09:00:00', 'to': '21:00:00', 'is_day_off': '0'}, '2014-05-02': ...}</code>
 
 
----
 
=== getWorkDaysInfo ===
 
<code>getWorkDaysInfo($from, $to, $unitId, $eventId)</code>
 
Parameters:
 
* '''$from''' String
* '''$to''' String
* '''$unitId''' Integer
* '''$eventId''' null
 
Returns Object.
 
Returns working time for date period, taking into account breaktimes
Eg.: <code>{'2014-05-14': [{'from': '09:00:00', 'to': '10:00:00'}, ...], ...}</code>
 
 
----
 
=== getWorkDaysTimes ===
 
<code>getWorkDaysTimes($startDateTime, $endDateTime)</code>
 
Parameters:
 
* '''$startDateTime''' string
* '''$endDateTime''' string
 
Returns Array.
 
Return busy time by unit id by GoogleCalendar plugin if enabled.If cache is not expired will return from cache, else load from google and save to cache
 
 
----
 
=== getWorkload ===
 
<code>getWorkload($dateStart, $dateEnd, $unitGroupId)</code>
 
Parameters:
 
* '''$dateStart''' null
* '''$dateEnd''' null
* '''$unitGroupId''' integer
 
Returns Array.
 
Return workload data for units in period of time. Workload for each unit represented as array with work hours
at index 0, confirmed booking hours as load at index 1 and cancelled bookings hours at index 2.Example:
  ['2015-10-21' : {
    5 : [
      10, // working hours
      10, // load hours (confirmed bookings hours)
      0  // cancelled bookings hours
  ] }]
 
 
----
 
=== isPluginActivated ===
 
<code>isPluginActivated($pluginName)</code>
 
Parameters:
 
* '''$pluginName''' String
 
Returns Boolean.
 
Return plugin status true if status active, else false. <var>$pluginName</var> parameter is a plugin identifier.See [[Plugins|plugins]] page for full plugins description. See [[#Plugin's identifiers|list of available plugin's names]].
 
 
----
 
=== pluginApproveBookingApprove ===
 
<code>pluginApproveBookingApprove($id)</code>
 
Parameters:
 
* '''$id''' Integer
 
Returns Array.
 
Approve booking (approve booking plugin)
Return approved booking ids
 
 
----
 
=== pluginApproveBookingCancel ===
 
<code>pluginApproveBookingCancel($id)</code>
 
Parameters:
 
* '''$id''' Integer
 
Returns Boolean.
 
Cancel booking (approve booking plugin)
 
 
----
 
=== pluginApproveGetPendingBookings ===
 
<code>pluginApproveGetPendingBookings()</code>
 
No arguments.
Returns array.
 
Return list of all pending bookings
 
 
----
 
=== pluginApproveGetPendingBookingsCount ===
 
<code>pluginApproveGetPendingBookingsCount()</code>
 
No arguments.
Returns Integer.
 
Return count of pending bookings
 
 
----
 
=== setBookingComment ===
 
<code>setBookingComment($id, $comment)</code>
 
Parameters:
 
* '''$id''' Integer
* '''$comment''' String
 
Returns Integer.
 
Set booking comment
 
 
----
 
=== setStatus ===
 
<code>setStatus($bookingId, $statusId)</code>
 
Parameters:
 
* '''$bookingId''' Integer
* '''$statusId''' Integer
 
Returns Boolean.
 
Set status
 
 
----
 
=== updateNotification ===
 
<code>updateNotification($type)</code>
 
Parameters:
 
* '''$type''' String
 
Returns .
 
Mark notifications as readed
 
 
----
 
 
== Constants ==
 
==== Error codes ====
 
* ERROR_BOOKING_ACCESS_DENIED
* ERROR_PLUGIN_DISABLED
* ERROR_EVENT_ID_VALUE
* ERROR_UNIT_ID_VALUE
* ERROR_DATE_VALUE
* ERROR_TIME_VALUE
* ERROR_RECURRENT_BOOKING
* ERROR_LIMIT_BOOKING
* ERROR_CLIENT_NAME_VALUE
* ERROR_CLIENT_EMAIL_VALUE
* ERROR_CLIENT_PHONE_VALUE
* ERROR_CLIENT_ID
* ERROR_ADDITIONAL_FIELDS
* ERROR_APPOINTMENT_NOT_FOUND
* ERROR_SIGN
* ERROR_APPLICATION_CONFIRMATION
* ERROR_BATCH_NOT_FOUND
* ERROR_UNSUPPORTED_PAYMENT_SYSTEM
* ERROR_PAYMENT_FAILED
* ERROR_REQUIRED_PARAMS_MISSED
* ERROR_PARAMS_IS_NOT_ARRAY
* ERROR_PARAMS_SHEDULER_ID
* ERROR_PROMOCODE_INVALID
* ERROR_PROMOCODE_EXPIRED
* ERROR_PROMOCODE_NOT_ACTIVE_YET
* ERROR_PROMOCODE_INVALID_SERVICE
* ERROR_PROMOCODE_COUNT_EXCEED
* ERROR_PROMOCODE_COUNT_PER_CUSTOMER_EXCEED
* ERROR_PROMOCODE_INVALID_BOOKING_DATETIME
* DATETIME_FORMAT
* DATE_FORMAT
* RECURRENT_BOOKING_BATCH
* GROUP_BOOKING_BATCH
* MULTIPLE_BOOKING_BATCH


====Company params====
====Company params====
Line 193: Line 1,353:
* zooz_app_id
* zooz_app_id
* zooz_app_key
* zooz_app_key
----
====Plugin's identifiers====
Plugin identifier is a string constant which represents a plugin in system. These constants used in <code>[[#isPluginActivated|isPluginActivated]]</code> and <code>[[#getPluginStatuses|getPluginStatuses]]</code> API methods.
* advanced_notification
*:Book Soon notification system plugin
* any_unit
*:Any Employee selector plugin
* api
*:API plugin
* approve_booking
*:Approve booking plugin
* back_to_site
*:Take me back home plugin
* contact_widget
*:Contact widget plugin
* counter
*:Visitor Counter plugin
* custom_css
*:Custom CSS plugin
* data_security
*:Clean history plugin
* description
*:HTML description field for events
* event_category
*:Service categories plugin
* event_field
*:Additional fields plugin
* facebookImage
*:Facebook client info plugin
* financial_dashboard
*:Insights plugin
* google_analytics
*:Google Adwords and analytics plugin
* google_calendar_export
*:Google calendar sync plugin
* group_booking
*:Group bookings plugin
* hipaa
*:HIPAA plugin
* limit_bookings
*:Limit bookings plugin
* location
*:Unit location plugin
* mobile_app_backend
*:Mobile application plugin
* multiple_booking
*:Multiple bookings plugin
* news
*:News plugin
* paid_events
*:Accept payments plugin
* promo
*:Simply Smart Promotions plugin
* recap
*:Daily report plugin
* secure
*:SSL plugin
* status
*:Status plugin
* unit_colors
*:Providers color coding plugin
* user_license
*:Terms and conditions plugin
See [[Plugins]] page for description for each plugin.
----
== Examples ==
====getBookingDetails response====
An example of data returned by [[#getBookingDetails|getBookingDetails]] API method.
  {
    "id": "321",
    "event_id": "5",
    "event_name": "Massage",
    "unit_id": "3",
    "unit_name": "John",
    "client_id": "1",
    "client_name": "Bob",
    "start_date_time": "2015-11-25 15:00:00",
    "end_date_time": "2015-11-25 16:00:00",
    "is_confirmed": "1",
    "code": "h8v8w5ls",
    "record_date": "2015-11-19 04:06:38",
    "comment": null,
    "company_login": "testzt",
    "company_name": "My Cool Company",
    "company_phone": "+1-555-55-55",
    "company_email": "into@mycoolcompany.com",
    "additional_fields": [{
      "value": "on",
      "field_name": "201a89517de509f6b3a60858918faac3",
      "field_title": "Include washing",
      "field_position": "4",
      "field_type": "checkbox",
      "field_id": "4"
    }],
    "comments": [],
    "history": [{
      "id": "536",
      "sheduler_id": "321",
      "datetime": "2015-11-19 11:06:38",
      "type": "create",
      "user_id": "1",
      "agent": "SimplyBook.me\/55 CFNetwork\/758.0.2 Darwin\/15.0.0",
      "ip": "213.174.0.53, 158.69.224.50:127.0.0.1",
      "referer": "",
      "login": "admin",
      "firstname": "Mikhail",
      "lastname": ""
    }],
    "status": {
      "id": "3",
      "name": "Fancy Status",
      "description": null,
      "color": "4cbadb",
      "is_default": "1"
    },
    "location": {
      "id": "1",
      "title": "location",
      "description": null,
      "picture": "e1e9409fe9682c78b2f8f294dc151af0.jpg",
      "address1": null,
      "address2": "Saint Margaret Street",
      "city": "\u041b\u043e\u043d\u0434\u043e\u043d",
      "zip": null,
      "country_id": "GB",
      "lat": "51.50013000000000000000",
      "lng": "-0.12630500000000000000",
      "phone": "44",
      "position": "1",
      "is_default": "1"
    },
    "price": [],
    "promo": false
  }