Developers
Three ways to put booking on your website.
Every integration talks to the same public BookDinePlay API, so availability, menus and reservations stay consistent no matter how you embed them.
Plain JavaScript SDK
Drop a widget into any website.
Framework-free and dependency-free. Load the script, call
renderBookingWidget, and BookDinePlay renders a self-contained, style-isolated
reservation flow inside your container element.
-
Add the script tag
Load the BookDinePlay SDK from your own hosting or a CDN of your choice.
-
Add a container element
Place an empty element with an id where you want the widget to render.
-
Call
renderBookingWidgetPass your venue slug, API base URL and the resource types you want to expose.
<div id="bookdineplay-widget"></div>
<script src="/assets/bookdineplay.js"></script>
window.BookDinePlay.renderBookingWidget({
container: '#bookdineplay-widget',
venueSlug: 'demo-sportsbar',
apiBaseUrl: 'https://localhost:5001',
resourceTypes: ['RestaurantTable', 'BilliardTable', 'DartBoard']
});
WordPress plugin
One shortcode, anywhere on your site.
Install the BookDinePlay plugin, and it enqueues the JavaScript SDK for you. Drop the shortcode into any page, post or block, and set which venue it should render.
-
Install the plugin
Upload the plugin skeleton to your WordPress site and activate it from the plugins screen.
-
Add the shortcode
Paste the shortcode into any page, post or widget area.
-
Set the venue attribute
Point the shortcode at your venue slug — attributes are sanitized and output is escaped.
[bookdineplay_widget venue="demo-sportsbar"]
// bookdineplay.php (excerpt)
add_shortcode( 'bookdineplay_widget', 'bookdineplay_render_widget' );
function bookdineplay_render_widget( $atts ) {
$atts = shortcode_atts( [ 'venue' => '' ], $atts );
$venue = sanitize_title( $atts['venue'] );
return sprintf(
'<div class="bookdineplay-widget" data-venue="%s"></div>',
esc_attr( $venue )
);
}
.NET SDK
A typed client for custom applications.
Reach for BookDinePlay.Sdk when you're building a custom web app, an internal
operations tool, or a service that needs typed access to venues, menus, availability and
reservations.
-
Register the client
Add
BookDinePlayClientto your dependency injection container with a configuredHttpClient. -
Call typed methods
Use resource-specific clients for venues, menus, availability, reservations and payment intents.
-
Share contracts
Request and response types come from
BookDinePlay.Contracts, so your app and the API never drift apart.
// Program.cs
builder.Services.AddHttpClient<BookDinePlayClient>(client =>
{
client.BaseAddress = new Uri("https://localhost:5001");
});
var venue = await client.Venues.GetAsync("demo-sportsbar", cancellationToken);
var availability = await client.Availability.GetAsync(
venueSlug: "demo-sportsbar",
date: DateOnly.FromDateTime(DateTime.Today),
partySize: 4,
resourceType: BookableResourceType.RestaurantTable,
cancellationToken);
var reservation = await client.Reservations.CreateAsync(
venueSlug: "demo-sportsbar",
request: createReservationRequest,
cancellationToken);
Need help wiring it up?