<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Developer Docs - CODIBU</title>
	<atom:link href="https://help.codibu.com/kbtopic/developer-docs-woocommerce-bookings/feed/" rel="self" type="application/rss+xml" />
	<link>https://help.codibu.com</link>
	<description>Hosting &#38; Domain,  Development &#38; Design, SEO &#38; Marketing, 2300+ Themes &#38; Plugins, Free SEO analysis &#38; tools</description>
	<lastBuildDate>Fri, 06 Nov 2020 11:39:01 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://help.codibu.com/wp-content/uploads/2022/07/favicon.png</url>
	<title>Developer Docs - CODIBU</title>
	<link>https://help.codibu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>WooCommerce Bookings Calendar CSS Style Elements</title>
		<link>https://help.codibu.com/blog/woocommerce-bookings-calendar-css-style-elements/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=woocommerce-bookings-calendar-css-style-elements</link>
					<comments>https://help.codibu.com/blog/woocommerce-bookings-calendar-css-style-elements/#respond</comments>
		
		<dc:creator><![CDATA[JN C]]></dc:creator>
		<pubDate>Fri, 06 Nov 2020 11:39:01 +0000</pubDate>
				<guid isPermaLink="false">https://help.codibu.com/kb/woocommerce-bookings-calendar-css-style-elements/</guid>

					<description><![CDATA[<p>If you want to change the color scheme of the WooCommerce Bookings calendar of the customer view, you can do so by modifying a few CSS<span class="excerpt-hellip"> […]</span></p>
<p>The post <a href="https://help.codibu.com/blog/woocommerce-bookings-calendar-css-style-elements/">WooCommerce Bookings Calendar CSS Style Elements</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>If you want to change the color scheme of the WooCommerce Bookings calendar of the customer view, you can do so by modifying a few CSS styles.</p>
<p>If you are not using a <a href="https://help.codibu.com/blog/kb/set-up-and-use-a-child-theme/">child theme</a> for WordPress or your theme does not allow you to enter custom CSS, perhaps you can install the Jetpack plugin which has a Custom CSS Editor built in.</p>
<p class="p1"> </p>
<div class="woo-sc-box note   "><b>Note:</b> This is a <b>Developer level</b> doc. If you are unfamiliar with code and resolving potential conflicts, select a <span class="s2">WooExpert or Developer</span> for assistance. We are unable to provide support for customizations under our<span class="Apple-converted-space">  </span><a href="https://help.codibu.com/blog/kb/support-policy/"><span class="s2">Support Policy</span></a>.</div>
<p>&nbsp;</p>
<p>Here are the styles for the different calendar elements:</p>
<div id="gist87966926" class="gist">
<div class="gist-file">
<div class="gist-data">
<div class="js-gist-file-update-container js-task-list-container file-box">
<div id="file-wc-bookings-styles-css" class="file my-2">
<div class="Box-body p-0 blob-wrapper data type-css  ">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" data-paste-markdown-skip="">
<tbody>
<tr>
<td id="file-wc-bookings-styles-css-L1" class="blob-num js-line-number" data-line-number="1"> </td>
<td id="file-wc-bookings-styles-css-LC1" class="blob-code blob-code-inner js-file-line"><span class="pl-c">/* </span></td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L2" class="blob-num js-line-number" data-line-number="2"> </td>
<td id="file-wc-bookings-styles-css-LC2" class="blob-code blob-code-inner js-file-line"><span class="pl-c"> Modify the color styles of the WooCommerce Bookings datepicker calendar.</span></td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L3" class="blob-num js-line-number" data-line-number="3"> </td>
<td id="file-wc-bookings-styles-css-LC3" class="blob-code blob-code-inner js-file-line"><span class="pl-c"> Add any/all of these styles to your theme&#8217;s custom CSS, but be sure to change</span></td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L4" class="blob-num js-line-number" data-line-number="4"> </td>
<td id="file-wc-bookings-styles-css-LC4" class="blob-code blob-code-inner js-file-line"><span class="pl-c"> the color hex codes to your choice. They&#8217;re all black here.</span></td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L5" class="blob-num js-line-number" data-line-number="5"> </td>
<td id="file-wc-bookings-styles-css-LC5" class="blob-code blob-code-inner js-file-line"><span class="pl-c">*/</span></td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L6" class="blob-num js-line-number" data-line-number="6"> </td>
<td id="file-wc-bookings-styles-css-LC6" class="blob-code blob-code-inner js-file-line"> </td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L7" class="blob-num js-line-number" data-line-number="7"> </td>
<td id="file-wc-bookings-styles-css-LC7" class="blob-code blob-code-inner js-file-line"><span class="pl-c">/* Month header background color */</span></td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L8" class="blob-num js-line-number" data-line-number="8"> </td>
<td id="file-wc-bookings-styles-css-LC8" class="blob-code blob-code-inner js-file-line"><span class="pl-kos">#</span><span class="pl-c1">wc-bookings-booking-form</span> .<span class="pl-c1">wc-bookings-date-picker</span> .<span class="pl-c1">ui-datepicker-header</span> {</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L9" class="blob-num js-line-number" data-line-number="9"> </td>
<td id="file-wc-bookings-styles-css-LC9" class="blob-code blob-code-inner js-file-line"><span class="pl-c1">background-color</span>: <span class="pl-pds"><span class="pl-kos">#</span>000000</span>;</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L10" class="blob-num js-line-number" data-line-number="10"> </td>
<td id="file-wc-bookings-styles-css-LC10" class="blob-code blob-code-inner js-file-line">}</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L11" class="blob-num js-line-number" data-line-number="11"> </td>
<td id="file-wc-bookings-styles-css-LC11" class="blob-code blob-code-inner js-file-line"> </td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L12" class="blob-num js-line-number" data-line-number="12"> </td>
<td id="file-wc-bookings-styles-css-LC12" class="blob-code blob-code-inner js-file-line"><span class="pl-c">/* Previous/Next month arrow background color */</span></td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L13" class="blob-num js-line-number" data-line-number="13"> </td>
<td id="file-wc-bookings-styles-css-LC13" class="blob-code blob-code-inner js-file-line"><span class="pl-kos">#</span><span class="pl-c1">wc-bookings-booking-form</span> .<span class="pl-c1">wc-bookings-date-picker</span> .<span class="pl-c1">ui-datepicker</span> .<span class="pl-c1">ui-datepicker-next</span><span class="pl-kos">,</span></td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L14" class="blob-num js-line-number" data-line-number="14"> </td>
<td id="file-wc-bookings-styles-css-LC14" class="blob-code blob-code-inner js-file-line"><span class="pl-kos">#</span><span class="pl-c1">wc-bookings-booking-form</span> .<span class="pl-c1">wc-bookings-date-picker</span> .<span class="pl-c1">ui-datepicker</span> .<span class="pl-c1">ui-datepicker-prev</span> {</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L15" class="blob-num js-line-number" data-line-number="15"> </td>
<td id="file-wc-bookings-styles-css-LC15" class="blob-code blob-code-inner js-file-line"><span class="pl-c1">background-color</span>: <span class="pl-pds"><span class="pl-kos">#</span>000000</span>;</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L16" class="blob-num js-line-number" data-line-number="16"> </td>
<td id="file-wc-bookings-styles-css-LC16" class="blob-code blob-code-inner js-file-line">}</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L17" class="blob-num js-line-number" data-line-number="17"> </td>
<td id="file-wc-bookings-styles-css-LC17" class="blob-code blob-code-inner js-file-line"> </td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L18" class="blob-num js-line-number" data-line-number="18"> </td>
<td id="file-wc-bookings-styles-css-LC18" class="blob-code blob-code-inner js-file-line"><span class="pl-c">/* Previous/Next month arrows if not allowed, and calendar dates that are not available */</span></td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L19" class="blob-num js-line-number" data-line-number="19"> </td>
<td id="file-wc-bookings-styles-css-LC19" class="blob-code blob-code-inner js-file-line">.<span class="pl-c1">ui-state-disabled</span><span class="pl-kos">,</span></td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L20" class="blob-num js-line-number" data-line-number="20"> </td>
<td id="file-wc-bookings-styles-css-LC20" class="blob-code blob-code-inner js-file-line">.<span class="pl-c1">ui-widget-content</span> .<span class="pl-c1">ui-state-disabled</span><span class="pl-kos">,</span></td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L21" class="blob-num js-line-number" data-line-number="21"> </td>
<td id="file-wc-bookings-styles-css-LC21" class="blob-code blob-code-inner js-file-line">.<span class="pl-c1">ui-widget-header</span> .<span class="pl-c1">ui-state-disabled</span> {</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L22" class="blob-num js-line-number" data-line-number="22"> </td>
<td id="file-wc-bookings-styles-css-LC22" class="blob-code blob-code-inner js-file-line"><span class="pl-c1">opacity</span>: <span class="pl-c1">0.35</span>;</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L23" class="blob-num js-line-number" data-line-number="23"> </td>
<td id="file-wc-bookings-styles-css-LC23" class="blob-code blob-code-inner js-file-line">}</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L24" class="blob-num js-line-number" data-line-number="24"> </td>
<td id="file-wc-bookings-styles-css-LC24" class="blob-code blob-code-inner js-file-line"> </td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L25" class="blob-num js-line-number" data-line-number="25"> </td>
<td id="file-wc-bookings-styles-css-LC25" class="blob-code blob-code-inner js-file-line"><span class="pl-c">/* Days of the week header background color */</span></td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L26" class="blob-num js-line-number" data-line-number="26"> </td>
<td id="file-wc-bookings-styles-css-LC26" class="blob-code blob-code-inner js-file-line">.<span class="pl-c1">ui-datepicker-calendar</span> <span class="pl-ent">thead</span> {</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L27" class="blob-num js-line-number" data-line-number="27"> </td>
<td id="file-wc-bookings-styles-css-LC27" class="blob-code blob-code-inner js-file-line"><span class="pl-c1">background-color</span>: <span class="pl-pds"><span class="pl-kos">#</span>000000</span>;</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L28" class="blob-num js-line-number" data-line-number="28"> </td>
<td id="file-wc-bookings-styles-css-LC28" class="blob-code blob-code-inner js-file-line">}</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L29" class="blob-num js-line-number" data-line-number="29"> </td>
<td id="file-wc-bookings-styles-css-LC29" class="blob-code blob-code-inner js-file-line"> </td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L30" class="blob-num js-line-number" data-line-number="30"> </td>
<td id="file-wc-bookings-styles-css-LC30" class="blob-code blob-code-inner js-file-line"><span class="pl-c">/* Days of the week header font color */</span></td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L31" class="blob-num js-line-number" data-line-number="31"> </td>
<td id="file-wc-bookings-styles-css-LC31" class="blob-code blob-code-inner js-file-line"><span class="pl-kos">#</span><span class="pl-c1">wc-bookings-booking-form</span> .<span class="pl-c1">wc-bookings-date-picker</span> .<span class="pl-c1">ui-datepicker</span> <span class="pl-ent">th</span> {</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L32" class="blob-num js-line-number" data-line-number="32"> </td>
<td id="file-wc-bookings-styles-css-LC32" class="blob-code blob-code-inner js-file-line"><span class="pl-c1">color</span>: <span class="pl-pds"><span class="pl-kos">#</span>000000</span>;</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L33" class="blob-num js-line-number" data-line-number="33"> </td>
<td id="file-wc-bookings-styles-css-LC33" class="blob-code blob-code-inner js-file-line">}</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L34" class="blob-num js-line-number" data-line-number="34"> </td>
<td id="file-wc-bookings-styles-css-LC34" class="blob-code blob-code-inner js-file-line"> </td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L35" class="blob-num js-line-number" data-line-number="35"> </td>
<td id="file-wc-bookings-styles-css-LC35" class="blob-code blob-code-inner js-file-line"><span class="pl-c">/* Past calendar days background color (not available) */</span></td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L36" class="blob-num js-line-number" data-line-number="36"> </td>
<td id="file-wc-bookings-styles-css-LC36" class="blob-code blob-code-inner js-file-line">.<span class="pl-c1">ui-datepicker-calendar</span> <span class="pl-ent">tbody</span> {</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L37" class="blob-num js-line-number" data-line-number="37"> </td>
<td id="file-wc-bookings-styles-css-LC37" class="blob-code blob-code-inner js-file-line"><span class="pl-c1">background-color</span>: <span class="pl-pds"><span class="pl-kos">#</span>000000</span>;</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L38" class="blob-num js-line-number" data-line-number="38"> </td>
<td id="file-wc-bookings-styles-css-LC38" class="blob-code blob-code-inner js-file-line">}</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L39" class="blob-num js-line-number" data-line-number="39"> </td>
<td id="file-wc-bookings-styles-css-LC39" class="blob-code blob-code-inner js-file-line"> </td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L40" class="blob-num js-line-number" data-line-number="40"> </td>
<td id="file-wc-bookings-styles-css-LC40" class="blob-code blob-code-inner js-file-line"><span class="pl-c">/* Available calendar days background color */</span></td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L41" class="blob-num js-line-number" data-line-number="41"> </td>
<td id="file-wc-bookings-styles-css-LC41" class="blob-code blob-code-inner js-file-line"><span class="pl-kos">#</span><span class="pl-c1">wc-bookings-booking-form</span> .<span class="pl-c1">wc-bookings-date-picker</span> .<span class="pl-c1">ui-datepicker</span> <span class="pl-ent">td</span>.<span class="pl-c1">bookable</span> <span class="pl-ent">a</span> {</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L42" class="blob-num js-line-number" data-line-number="42"> </td>
<td id="file-wc-bookings-styles-css-LC42" class="blob-code blob-code-inner js-file-line"><span class="pl-c1">background-color</span>: <span class="pl-pds"><span class="pl-kos">#</span>000000</span> <span class="pl-k">!important</span>;</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L43" class="blob-num js-line-number" data-line-number="43"> </td>
<td id="file-wc-bookings-styles-css-LC43" class="blob-code blob-code-inner js-file-line">}</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L44" class="blob-num js-line-number" data-line-number="44"> </td>
<td id="file-wc-bookings-styles-css-LC44" class="blob-code blob-code-inner js-file-line"> </td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L45" class="blob-num js-line-number" data-line-number="45"> </td>
<td id="file-wc-bookings-styles-css-LC45" class="blob-code blob-code-inner js-file-line"><span class="pl-c">/* Available calendar day hover background color */</span></td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L46" class="blob-num js-line-number" data-line-number="46"> </td>
<td id="file-wc-bookings-styles-css-LC46" class="blob-code blob-code-inner js-file-line"><span class="pl-kos">#</span><span class="pl-c1">wc-bookings-booking-form</span> .<span class="pl-c1">wc-bookings-date-picker</span> .<span class="pl-c1">ui-datepicker</span> <span class="pl-ent">td</span>.<span class="pl-c1">bookable</span> <span class="pl-ent">a</span>:<span class="pl-c1">hover</span> {</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L47" class="blob-num js-line-number" data-line-number="47"> </td>
<td id="file-wc-bookings-styles-css-LC47" class="blob-code blob-code-inner js-file-line"><span class="pl-c1">background-color</span>: <span class="pl-pds"><span class="pl-kos">#</span>000000</span> <span class="pl-k">!important</span>;</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L48" class="blob-num js-line-number" data-line-number="48"> </td>
<td id="file-wc-bookings-styles-css-LC48" class="blob-code blob-code-inner js-file-line">}</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L49" class="blob-num js-line-number" data-line-number="49"> </td>
<td id="file-wc-bookings-styles-css-LC49" class="blob-code blob-code-inner js-file-line"> </td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L50" class="blob-num js-line-number" data-line-number="50"> </td>
<td id="file-wc-bookings-styles-css-LC50" class="blob-code blob-code-inner js-file-line"><span class="pl-c">/* Fully booked calendar days */</span></td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L51" class="blob-num js-line-number" data-line-number="51"> </td>
<td id="file-wc-bookings-styles-css-LC51" class="blob-code blob-code-inner js-file-line">.<span class="pl-c1">wc-bookings-date-picker</span> .<span class="pl-c1">ui-datepicker</span> <span class="pl-ent">td</span>.<span class="pl-c1">fully_booked</span> <span class="pl-ent">a</span><span class="pl-kos">,</span></td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L52" class="blob-num js-line-number" data-line-number="52"> </td>
<td id="file-wc-bookings-styles-css-LC52" class="blob-code blob-code-inner js-file-line">.<span class="pl-c1">wc-bookings-date-picker</span> .<span class="pl-c1">ui-datepicker</span> <span class="pl-ent">td</span>.<span class="pl-c1">fully_booked</span> <span class="pl-ent">span</span> {</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L53" class="blob-num js-line-number" data-line-number="53"> </td>
<td id="file-wc-bookings-styles-css-LC53" class="blob-code blob-code-inner js-file-line"><span class="pl-c1">background-color</span>: <span class="pl-pds"><span class="pl-kos">#</span>000000</span> <span class="pl-k">!important</span>;</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L54" class="blob-num js-line-number" data-line-number="54"> </td>
<td id="file-wc-bookings-styles-css-LC54" class="blob-code blob-code-inner js-file-line">}</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L55" class="blob-num js-line-number" data-line-number="55"> </td>
<td id="file-wc-bookings-styles-css-LC55" class="blob-code blob-code-inner js-file-line"> </td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L56" class="blob-num js-line-number" data-line-number="56"> </td>
<td id="file-wc-bookings-styles-css-LC56" class="blob-code blob-code-inner js-file-line"><span class="pl-c">/* Days not bookable based on the availability rules */</span></td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L57" class="blob-num js-line-number" data-line-number="57"> </td>
<td id="file-wc-bookings-styles-css-LC57" class="blob-code blob-code-inner js-file-line">.<span class="pl-c1">wc-bookings-date-picker</span> .<span class="pl-c1">ui-datepicker</span> <span class="pl-ent">td</span>.<span class="pl-c1">not_bookable</span> {</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L58" class="blob-num js-line-number" data-line-number="58"> </td>
<td id="file-wc-bookings-styles-css-LC58" class="blob-code blob-code-inner js-file-line"><span class="pl-c1">background-color</span>: <span class="pl-pds"><span class="pl-kos">#</span>FFFFFF</span> <span class="pl-k">!important</span>;</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L59" class="blob-num js-line-number" data-line-number="59"> </td>
<td id="file-wc-bookings-styles-css-LC59" class="blob-code blob-code-inner js-file-line">}</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L60" class="blob-num js-line-number" data-line-number="60"> </td>
<td id="file-wc-bookings-styles-css-LC60" class="blob-code blob-code-inner js-file-line"> </td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L61" class="blob-num js-line-number" data-line-number="61"> </td>
<td id="file-wc-bookings-styles-css-LC61" class="blob-code blob-code-inner js-file-line"><span class="pl-c">/* Today&#8217;s date on calendar background color */</span></td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L62" class="blob-num js-line-number" data-line-number="62"> </td>
<td id="file-wc-bookings-styles-css-LC62" class="blob-code blob-code-inner js-file-line"><span class="pl-kos">#</span><span class="pl-c1">wc-bookings-booking-form</span> .<span class="pl-c1">wc-bookings-date-picker</span> .<span class="pl-c1">ui-datepicker</span> <span class="pl-ent">td</span>.<span class="pl-c1">ui-datepicker-today</span> <span class="pl-ent">a</span> {</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L63" class="blob-num js-line-number" data-line-number="63"> </td>
<td id="file-wc-bookings-styles-css-LC63" class="blob-code blob-code-inner js-file-line"><span class="pl-c1">background-color</span>: <span class="pl-pds"><span class="pl-kos">#</span>000000</span> <span class="pl-k">!important</span>;</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L64" class="blob-num js-line-number" data-line-number="64"> </td>
<td id="file-wc-bookings-styles-css-LC64" class="blob-code blob-code-inner js-file-line">}</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L65" class="blob-num js-line-number" data-line-number="65"> </td>
<td id="file-wc-bookings-styles-css-LC65" class="blob-code blob-code-inner js-file-line"> </td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L66" class="blob-num js-line-number" data-line-number="66"> </td>
<td id="file-wc-bookings-styles-css-LC66" class="blob-code blob-code-inner js-file-line"><span class="pl-c">/* Time Blocks */</span></td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L67" class="blob-num js-line-number" data-line-number="67"> </td>
<td id="file-wc-bookings-styles-css-LC67" class="blob-code blob-code-inner js-file-line"><span class="pl-kos">#</span><span class="pl-c1">wc-bookings-booking-form</span> .<span class="pl-c1">block-picker</span> <span class="pl-ent">li</span> <span class="pl-ent">a</span> {</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L68" class="blob-num js-line-number" data-line-number="68"> </td>
<td id="file-wc-bookings-styles-css-LC68" class="blob-code blob-code-inner js-file-line"><span class="pl-c1">background-color</span>: <span class="pl-pds"><span class="pl-kos">#</span>FFFFFF</span> <span class="pl-k">!important</span>;</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L69" class="blob-num js-line-number" data-line-number="69"> </td>
<td id="file-wc-bookings-styles-css-LC69" class="blob-code blob-code-inner js-file-line">}</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L70" class="blob-num js-line-number" data-line-number="70"> </td>
<td id="file-wc-bookings-styles-css-LC70" class="blob-code blob-code-inner js-file-line"> </td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L71" class="blob-num js-line-number" data-line-number="71"> </td>
<td id="file-wc-bookings-styles-css-LC71" class="blob-code blob-code-inner js-file-line"><span class="pl-c">/* Time Blocks Hover */</span></td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L72" class="blob-num js-line-number" data-line-number="72"> </td>
<td id="file-wc-bookings-styles-css-LC72" class="blob-code blob-code-inner js-file-line"><span class="pl-kos">#</span><span class="pl-c1">wc-bookings-booking-form</span> .<span class="pl-c1">block-picker</span> <span class="pl-ent">li</span> <span class="pl-ent">a</span>:<span class="pl-c1">hover</span> {</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L73" class="blob-num js-line-number" data-line-number="73"> </td>
<td id="file-wc-bookings-styles-css-LC73" class="blob-code blob-code-inner js-file-line"><span class="pl-c1">background-color</span>: <span class="pl-pds"><span class="pl-kos">#</span>000000</span> <span class="pl-k">!important</span>;</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L74" class="blob-num js-line-number" data-line-number="74"> </td>
<td id="file-wc-bookings-styles-css-LC74" class="blob-code blob-code-inner js-file-line">}</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L75" class="blob-num js-line-number" data-line-number="75"> </td>
<td id="file-wc-bookings-styles-css-LC75" class="blob-code blob-code-inner js-file-line"> </td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L76" class="blob-num js-line-number" data-line-number="76"> </td>
<td id="file-wc-bookings-styles-css-LC76" class="blob-code blob-code-inner js-file-line"><span class="pl-c">/* Selected Date*/</span></td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L77" class="blob-num js-line-number" data-line-number="77"> </td>
<td id="file-wc-bookings-styles-css-LC77" class="blob-code blob-code-inner js-file-line"><span class="pl-kos">#</span><span class="pl-c1">wc-bookings-booking-form</span> .<span class="pl-c1">wc-bookings-date-picker</span> .<span class="pl-c1">ui-datepicker</span> <span class="pl-ent">td</span>.<span class="pl-c1">ui-datepicker-current-day</span> <span class="pl-ent">a</span> {</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L78" class="blob-num js-line-number" data-line-number="78"> </td>
<td id="file-wc-bookings-styles-css-LC78" class="blob-code blob-code-inner js-file-line"><span class="pl-c1">background-color</span>: <span class="pl-pds"><span class="pl-kos">#</span>000000</span> <span class="pl-k">!important</span>;</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L79" class="blob-num js-line-number" data-line-number="79"> </td>
<td id="file-wc-bookings-styles-css-LC79" class="blob-code blob-code-inner js-file-line">}</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L80" class="blob-num js-line-number" data-line-number="80"> </td>
<td id="file-wc-bookings-styles-css-LC80" class="blob-code blob-code-inner js-file-line"> </td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L81" class="blob-num js-line-number" data-line-number="81"> </td>
<td id="file-wc-bookings-styles-css-LC81" class="blob-code blob-code-inner js-file-line"><span class="pl-c">/* Selected Time Block */</span></td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L82" class="blob-num js-line-number" data-line-number="82"> </td>
<td id="file-wc-bookings-styles-css-LC82" class="blob-code blob-code-inner js-file-line"><span class="pl-kos">#</span><span class="pl-c1">wc-bookings-booking-form</span> .<span class="pl-c1">block-picker</span> <span class="pl-ent">li</span> <span class="pl-ent">a</span>.<span class="pl-c1">selected</span> {</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L83" class="blob-num js-line-number" data-line-number="83"> </td>
<td id="file-wc-bookings-styles-css-LC83" class="blob-code blob-code-inner js-file-line"><span class="pl-c1">background</span>: <span class="pl-pds"><span class="pl-kos">#</span>ffffff</span> <span class="pl-k">!important</span>;</td>
</tr>
<tr>
<td id="file-wc-bookings-styles-css-L84" class="blob-num js-line-number" data-line-number="84"> </td>
<td id="file-wc-bookings-styles-css-LC84" class="blob-code blob-code-inner js-file-line">}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div><p>The post <a href="https://help.codibu.com/blog/woocommerce-bookings-calendar-css-style-elements/">WooCommerce Bookings Calendar CSS Style Elements</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://help.codibu.com/blog/woocommerce-bookings-calendar-css-style-elements/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Bookings Templates</title>
		<link>https://help.codibu.com/blog/bookings-templates/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=bookings-templates</link>
					<comments>https://help.codibu.com/blog/bookings-templates/#respond</comments>
		
		<dc:creator><![CDATA[JN C]]></dc:creator>
		<pubDate>Fri, 06 Nov 2020 11:38:12 +0000</pubDate>
				<guid isPermaLink="false">https://help.codibu.com/kb/bookings-templates/</guid>

					<description><![CDATA[<p>WooCommerce Bookings template files contain the markup and template structure for Bookings related pages and HTML emails in your store. Template files can be found within the /woocommerce-bookings/templates/ directory of the Bookings extension, and can<span class="excerpt-hellip"> […]</span></p>
<p>The post <a href="https://help.codibu.com/blog/bookings-templates/">Bookings Templates</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></description>
										<content:encoded><![CDATA[<p><a href="https://help.codibu.com/blog/kb/woocommerce-bookings/">WooCommerce Bookings</a> template files contain the <strong>markup</strong> and <strong>template structure</strong> for <strong>Bookings related pages and HTML emails</strong> in your store.</p>
<p>Template files can be found within the <code>/woocommerce-bookings/templates/</code> directory of the Bookings extension, and can be overridden just like <a href="https://help.codibu.com/blog/kb/template-structure-overriding-templates-via-a-theme/" rel="noopener noreferrer">WooCommerce core template files</a>.</p>
<h2 id="section-1">Template List</h2>
<p>The listing below contains the location and a description of each template Bookings uses. The location is relative to the <code>/woocommerce-bookings/templates/</code> directory.</p>
<table>
<thead>
<tr>
<th>LOCATION</th>
<th>DESCRIPTION</th>
</tr>
</thead>
<tbody>
<tr>
<td>/booking-form/date-picker.php</td>
<td>The template for displaying the booking form and calendar without time to customers.</td>
</tr>
<tr>
<td>/booking-form/datetime-picker.php</td>
<td>The template for displaying the booking form and calendar with time blocks to customers.</td>
</tr>
<tr>
<td>/booking-form/hidden.php</td>
<td>The template used for hidden fields in the booking form.</td>
</tr>
<tr>
<td>/booking-form/month-picker.php</td>
<td>The template used for the month picker on the booking form.</td>
</tr>
<tr>
<td>/booking-form/number.php</td>
<td>The template used for number fields in the booking form, such as persons or durations.</td>
</tr>
<tr>
<td>/booking-form/select.php</td>
<td>The template used for select fields in the booking form, such as resources.</td>
</tr>
<tr>
<td>/emails/admin-booking-cancelled.php</td>
<td>Admin booking cancelled email.</td>
</tr>
<tr>
<td>/emails/admin-new-booking.php</td>
<td>Admin new booking email.</td>
</tr>
<tr>
<td>/emails/customer-booking-cancelled.php</td>
<td>Customer booking cancelled email.</td>
</tr>
<tr>
<td>/emails/customer-booking-confirmed.php</td>
<td>Customer booking confirmed email.</td>
</tr>
<tr>
<td>/emails/customer-booking-notification.php</td>
<td>Customer booking notification email, plain text.</td>
</tr>
<tr>
<td>/emails/customer-booking-reminder.php</td>
<td>Customer booking reminder email.</td>
</tr>
<tr>
<td>/emails/plain/admin-booking-cancelled.php</td>
<td>Admin booking cancelled email, plain text.</td>
</tr>
<tr>
<td>/emails/plain/admin-new-booking.php</td>
<td>Admin new booking email, plain text.</td>
</tr>
<tr>
<td>/emails/plain/customer-booking-cancelled.php</td>
<td>Customer booking cancelled email, plain text.</td>
</tr>
<tr>
<td>/emails/plain/customer-booking-confirmed.php</td>
<td>Customer booking confirmed email, plain text.</td>
</tr>
<tr>
<td>/emails/plain/customer-booking-notification.php</td>
<td>Customer booking notification email, plain text.</td>
</tr>
<tr>
<td>/emails/plain/customer-booking-reminder.php</td>
<td>Customer booking reminder email, plain text.</td>
</tr>
<tr>
<td>/myaccount/bookings.php</td>
<td>Shows customer bookings on the My Account &gt; Bookings page.</td>
</tr>
<tr>
<td>/order/admin/booking-display.php</td>
<td>The template for displaying a booking summary when reviewing a customer order.</td>
</tr>
<tr>
<td>/order/booking-display.php</td>
<td>The template for displaying a booking summary to customers. Displays in three places: after checkout, in the order confirmation email, and when customer reviews order in My Account &gt; Orders.</td>
</tr>
<tr>
<td>/order/booking-summary-list.php</td>
<td>The template for displaying the list of bookings in the summary for customers. It is used in two other templates <code>/order/booking-display.php</code> and <code>/order/admin/booking-display.php</code>, and it will display where they do.</td>
</tr>
<tr>
<td>/single-product/booking.php</td>
<td>Booking product add to cart form.</td>
</tr>
</tbody>
</table>
<p>You can edit these files in an <strong>upgrade-safe way</strong> using <strong>overrides</strong>. Copy it into a directory within your theme named <code>/woocommerce-bookings</code>, keeping the same file structure but removing the <code>/templates/</code> subdirectory.</p>
<div class="woo-sc-box normal   ">Example: To override the bookings summary list,<br />
copy: <strong>wp-content/plugins/woocommerce-bookings/templates/order/bookings-summary-list.php</strong><br />
to <strong>wp-content/themes/yourtheme/woocommerce-bookings/order/booking-summary-list.php</strong></div>
<p>The copied file will now override the WooCommerce Bookings default template file.</p>
<p>Do not edit these files within the Bookings extension as they are overwritten during the upgrade process and any customizations will be lost. For more detailed information, see <a href="https://help.codibu.com/blog/kb/fixing-outdated-woocommerce-templates/" rel="noopener noreferrer">Fixing Outdated WooCommerce Templates</a>.</p><p>The post <a href="https://help.codibu.com/blog/bookings-templates/">Bookings Templates</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://help.codibu.com/blog/bookings-templates/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>WooCommerce Bookings Helper</title>
		<link>https://help.codibu.com/blog/woocommerce-bookings-helper/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=woocommerce-bookings-helper</link>
					<comments>https://help.codibu.com/blog/woocommerce-bookings-helper/#respond</comments>
		
		<dc:creator><![CDATA[JN C]]></dc:creator>
		<pubDate>Fri, 06 Nov 2020 11:37:32 +0000</pubDate>
				<guid isPermaLink="false">https://help.codibu.com/kb/woocommerce-bookings-helper/</guid>

					<description><![CDATA[<p>The WooCommerce Bookings helper helps you troubleshoot the bookings setup by allowing you to quickly export/import product settings. All exports are in JSON file format and<span class="excerpt-hellip"> […]</span></p>
<p>The post <a href="https://help.codibu.com/blog/woocommerce-bookings-helper/">WooCommerce Bookings Helper</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>The WooCommerce Bookings helper helps you troubleshoot the bookings setup by allowing you to quickly export/import product settings.</p>
<p>All exports are in JSON file format and zipped.</p>
<p>Download the Bookings Helper plugin.</p>
<h3 id="section-1">Global Availability Rules</h3>
<p>Importing global availability rules will overwrite all rules. This is because a bookable product test case depends on these rules. Since this is an overwriting feature, you can first export the global availability rules for safekeeping before importing your test rules. This way you can always re-import your original rules.</p>
<h3 id="section-2">Bookable Product</h3>
<p>You can export any bookable product and all of its settings, including resources and persons.</p>
<p>If resources are defined, importing the bookable product will generate new resources that are linked to the specific product you imported. This means that if you import two products that use the same resources, the resources are duplicated. The easy fix here is to proceed with the import, then remove the duplicate resources and assign the first set of resources to the other product.</p>
<h3 id="section-3">Usage</h3>
<p>Install the plugin and activate. Then go to <strong>Tools &gt;Bookings Helper</strong>.</p><p>The post <a href="https://help.codibu.com/blog/woocommerce-bookings-helper/">WooCommerce Bookings Helper</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://help.codibu.com/blog/woocommerce-bookings-helper/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Woocommerce Bookings Api Docs</title>
		<link>https://help.codibu.com/blog/woocommerce-bookings-api-docs/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=woocommerce-bookings-api-docs</link>
					<comments>https://help.codibu.com/blog/woocommerce-bookings-api-docs/#respond</comments>
		
		<dc:creator><![CDATA[JN C]]></dc:creator>
		<pubDate>Fri, 06 Nov 2020 11:37:01 +0000</pubDate>
				<guid isPermaLink="false">https://help.codibu.com/kb/woocommerce-bookings-api-docs/</guid>

					<description><![CDATA[<p>Introduction WooCommerce Bookings is fully integrated with the WordPress REST API. This allows Bookings data to be read using requests in JSON format and using WordPress REST API<span class="excerpt-hellip"> […]</span></p>
<p>The post <a href="https://help.codibu.com/blog/woocommerce-bookings-api-docs/">Woocommerce Bookings Api Docs</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></description>
										<content:encoded><![CDATA[<h1 id="introduction">Introduction</h1>
<p>WooCommerce Bookings is fully integrated with the WordPress REST API. This allows Bookings data to be read using requests in JSON format and using WordPress REST API Authentication methods and standard HTTP verbs which are understood by most HTTP clients.</p>
<p>The current WP REST API integration version is <code>v1</code> which takes a first-order position in endpoints.</p>
<h2 id="requirements">Requirements</h2>
<p>To use the Bookings REST API you must be using:</p>
<ul>
<li>WooCommerce 3.5+.</li>
<li>WooCommerce Bookings 1.14.0+.</li>
<li>WordPress 4.4+.</li>
<li>Pretty permalinks in <code>Settings &gt; Permalinks</code> so that the custom endpoints are supported. <strong>Default permalinks will not work.</strong></li>
<li>You may access the API over either HTTP or HTTPS, but <em>HTTPS is recommended where possible</em>.</li>
</ul>
<p>If you use ModSecurity and see <code>501 Method Not Implemented</code> errors, see this issue for details.</p>
<aside class="notice"> Please note that you are <strong>not</strong> required to install the WP REST API (WP API) plugin.</aside>
<h2 id="request-response-format">Request/Response Format</h2>
<p>The default response format is JSON. Requests with a message-body use plain JSON to set or update resource attributes. Successful requests will return a <code>200 OK</code> HTTP status.</p>
<p>Some general information about responses:</p>
<ul>
<li>Dates are returned in ISO8601 format: <code>YYYY-MM-DDTHH:MM:SS</code></li>
<li>Resource IDs are returned as integers.</li>
<li>Any decimal monetary amount, such as prices or totals, will be returned as strings with two decimal places.</li>
<li>Other amounts, such as item counts, are returned as integers.</li>
<li>Blank fields are generally included as <code>null</code> or emtpy string instead of being omitted.</li>
</ul>
<h3 id="jsonp-support">JSONP Support</h3>
<p>The WP REST API supports JSONP by default. JSONP responses use the <code>application/javascript</code> content-type. You can specify the callback using the <code>?_jsonp</code> parameter for <code>GET</code> requests to have the response wrapped in a JSON function:</p>
<div class="api-endpoint">
<div class="endpoint-data"><i class="label label-get">GET</i> </p>
<h6>/wp-json/wc-bookings/v1?_jsonp=callback</h6>
</div>
</div>
<pre class="highlight shell tab-shell"><code>curl https://example.com/wp-json/wc-bookings/v1/products/tags/34?_jsonp<span class="o">=</span>tagDetails <span class="se"></span>
    -u consumer_key:consumer_secret
</code></pre>
<pre class="highlight javascript tab-javascript"><code><span class="nx">WooCommerce</span><span class="p">.</span><span class="nx">get</span><span class="p">(</span><span class="s2">"products/tags/34?_jsonp=tagDetails"</span><span class="p">)</span>
  <span class="p">.</span><span class="nx">then</span><span class="p">((</span><span class="nx">response</span><span class="p">)</span> <span class="o">=&gt;</span> <span class="p">{</span>
    <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">response</span><span class="p">.</span><span class="nx">data</span><span class="p">);</span>
  <span class="p">})</span>
  <span class="p">.</span><span class="k">catch</span><span class="p">((</span><span class="nx">error</span><span class="p">)</span> <span class="o">=&gt;</span> <span class="p">{</span>
    <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">error</span><span class="p">.</span><span class="nx">response</span><span class="p">.</span><span class="nx">data</span><span class="p">);</span>
  <span class="p">});</span>
</code></pre>
<pre class="highlight php tab-php"><code><span class="cp">&lt;?php</span> <span class="nb">print_r</span><span class="p">(</span><span class="nv">$woocommerce</span><span class="o">-&gt;</span><span class="na">get</span><span class="p">(</span><span class="s1">'products/tags/34'</span><span class="p">,</span> <span class="p">[</span><span class="s1">'_jsonp'</span> <span class="o">=&gt;</span> <span class="s1">'tagDetails'</span><span class="p">]));</span> <span class="cp">?&gt;</span>
</code></pre>
<pre class="highlight python tab-python"><code><span class="k">print</span><span class="p">(</span><span class="n">wcapi</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="s">"products/tags/34?_jsonp=tagDetails"</span><span class="p">)</span><span class="o">.</span><span class="n">json</span><span class="p">())</span>
</code></pre>
<pre class="highlight ruby tab-ruby"><code><span class="n">woocommerce</span><span class="p">.</span><span class="nf">get</span><span class="p">(</span><span class="s2">"products/tags/34"</span><span class="p">,</span> <span class="ss">_jsonp: </span><span class="s2">"tagDetails"</span><span class="p">).</span><span class="nf">parsed_response</span>
</code></pre>
<blockquote>
<p>Response:</p>
</blockquote>
<pre class="highlight plaintext"><code>/**/tagDetails({"id":34,"name":"Leather Shoes","slug":"leather-shoes","description":"","count":0,"_links":{"self":[{"href":"https://example.com/wp-json/wc-bookings/v1/products/tags/34"}],"collection":[{"href":"https://example.com/wp-json/wc-bookings/v1/products/tags"}]}})%
</code></pre>
<h2 id="errors">Errors</h2>
<p>Occasionally you might encounter errors when accessing the REST API. There are four possible types:</p>
<table>
<thead>
<tr>
<th>Error Code</th>
<th>Error Type</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>400 Bad Request</code></td>
<td>Invalid request, e.g. using an unsupported HTTP method</td>
</tr>
<tr>
<td><code>401 Unauthorized</code></td>
<td>Authentication or permission error, e.g. incorrect API keys</td>
</tr>
<tr>
<td><code>404 Not Found</code></td>
<td>Requests to resources that don&#8217;t exist or are missing</td>
</tr>
<tr>
<td><code>500 Internal Server Error</code></td>
<td>Server error</td>
</tr>
</tbody>
</table>
<blockquote>
<p>WP REST API error example:</p>
</blockquote>
<pre class="highlight json tab-json"><code><span class="p">{</span>
  <span class="s2">"code"</span><span class="p">:</span> <span class="s2">"rest_no_route"</span><span class="p">,</span>
  <span class="s2">"message"</span><span class="p">:</span> <span class="s2">"No route was found matching the URL and request method"</span><span class="p">,</span>
  <span class="s2">"data"</span><span class="p">:</span> <span class="p">{</span>
    <span class="s2">"status"</span><span class="p">:</span> <span class="mi">404</span>
  <span class="p">}</span>
<span class="p">}</span>
</code></pre>
<blockquote>
<p>WooCommerce REST API error example:</p>
</blockquote>
<pre class="highlight json tab-json"><code><span class="p">{</span>
  <span class="s2">"code"</span><span class="p">:</span> <span class="s2">"woocommerce_rest_term_invalid"</span><span class="p">,</span>
  <span class="s2">"message"</span><span class="p">:</span> <span class="s2">"Resource doesn't exist."</span><span class="p">,</span>
  <span class="s2">"data"</span><span class="p">:</span> <span class="p">{</span>
    <span class="s2">"status"</span><span class="p">:</span> <span class="mi">404</span>
  <span class="p">}</span>
<span class="p">}</span>
</code></pre>
<p>Errors return both an appropriate HTTP status code and response object which contains a <code>code</code>, <code>message</code> and <code>data</code> attribute.</p>
<h2 id="parameters">Parameters</h2>
<p>Almost all endpoints accept optional parameters which can be passed as a HTTP query string parameter, e.g. <code>GET /bookings?status=completed</code>. All parameters are documented along each endpoint.</p>
<h2 id="pagination">Pagination</h2>
<p>Requests that return multiple items will be paginated to 10 items by default. This default can be changed by the site administrator by changing the <code>posts_per_page</code> option. Alternatively the items per page can be specified with the <code>?per_page</code> parameter:</p>
<p><code>GET /bookings?per_page=15</code></p>
<p>You can specify further pages with the <code>?page</code> parameter:</p>
<p><code>GET /bookings?page=2</code></p>
<p>You may also specify the offset from the first resource using the <code>?offset</code> parameter:</p>
<p><code>GET /bookings?offset=5</code></p>
<p>Page number is 1-based and omitting the <code>?page</code> parameter will return the first page.</p>
<p>The total number of resources and pages are always included in the <code>X-WP-Total</code> and <code>X-WP-TotalPages</code> HTTP headers.</p>
<h3 id="link-header">Link Header</h3>
<p>Pagination info is included in the Link Header. It&#8217;s recommended that you follow these values instead of building your own URLs where possible.</p>
<pre class="highlight plaintext"><code>Link: &lt;https://www.example.com/wp-json/wc-bookings/v1/products?page=2&gt;; rel="next",
&lt;https://www.example.com/wp-json/wc-bookings/v1/products?page=3&gt;; rel="last"`
</code></pre>
<p>The possible <code>rel</code> values are:</p>
<table>
<thead>
<tr>
<th>Value</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>next</code></td>
<td>Shows the URL of the immediate next page of results.</td>
</tr>
<tr>
<td><code>last</code></td>
<td>Shows the URL of the last page of results.</td>
</tr>
<tr>
<td><code>first</code></td>
<td>Shows the URL of the first page of results.</td>
</tr>
<tr>
<td><code>prev</code></td>
<td>Shows the URL of the immediate previous page of results.</td>
</tr>
</tbody>
</table>
<h2 id="tools">Tools</h2>
<h3 id="useful-tools">Useful Tools</h3>
<p>Some useful tools you can use to access the API include:</p>
<ul>
<li>Insomnia &#8211; Cross-platform GraphQL and REST client, available for Mac, Windows, and Linux.</li>
<li>Postman &#8211; Cross-platform REST client, available for Mac, Windows, and Linux.</li>
<li>RequestBin &#8211; Allows you test webhooks.</li>
<li>Hookbin &#8211; Another tool to test webhooks.</li>
</ul>
<h2 id="learn-more">Learn more</h2>
<p>Learn more about the REST API checking the official WordPress REST API documentation.</p>
<h1 id="authentication">Authentication</h1>
<p>WooCommerce includes two ways to authenticate with the WP REST API. It is also possible to authenticate using any WP REST API authentication plugin or method.</p>
<h2 id="rest-api-keys">REST API keys</h2>
<p>Pre-generated keys can be used to authenticate use of the REST API endpoints. New keys can be generated either through the WordPress admin interface or they can be auto-generated through an endpoint.</p>
<h3 id="generating-api-keys-in-the-wordpress-admin-interface">Generating API keys in the WordPress admin interface</h3>
<p>To create or manage keys for a specific WordPress user, go to WooCommerce &gt; Settings &gt; API &gt; Keys/Apps.</p>
<p><img decoding="async" src="https://help.codibu.com/wp-content/uploads/2020/11/woocommerce-api-keys-settings.png" alt="WooCommerce REST API keys settings" /></p>
<p>Click the &#8220;Add Key&#8221; button. In the next screen, add a description and select the WordPress user you would like to generate the key for. Use of the REST API with the generated keys will conform to that user&#8217;s WordPress roles and capabilities.</p>
<p>Choose the level of access for this REST API key, which can be <em>Read</em> access, <em>Write</em> access or <em>Read/Write</em> access. Then click the &#8220;Generate API Key&#8221; button and WooCommerce will generate REST API keys for the selected user.</p>
<p><img decoding="async" src="https://help.codibu.com/wp-content/uploads/2020/11/woocommerce-creating-api-keys.png" alt="Creating a new REST API key" /></p>
<p>Now that keys have been generated, you should see two new keys, a QRCode, and a Revoke API Key button. These two keys are your Consumer Key and Consumer Secret.</p>
<p><img decoding="async" src="https://help.codibu.com/wp-content/uploads/2020/11/woocommerce-api-key-generated.png" alt="Generated REST API key" /></p>
<p>If the WordPress user associated with an API key is deleted, the API key will cease to function. API keys are not transferred to other users.</p>
<h3 id="auto-generating-api-keys-using-our-application-authentication-endpoint">Auto generating API keys using our Application Authentication Endpoint</h3>
<p>This endpoint can be used by any APP to <em>allow users to generate API keys</em> for your APP. This makes integration with WooCommerce API easier because the user only needs to grant access to your APP via a URL. After being redirected back to your APP, the API keys will be sent back in a separate POST request.</p>
<p>The following image illustrates how this works:</p>
<p><img decoding="async" src="https://help.codibu.com/wp-content/uploads/2020/11/woocommerce-auth-endpoint-flow.png" alt="Authentication Endpoint flow" /></p>
<aside class="warning"> This endpoint works exclusively for users to generate API keys and facilitate integration between the WooCommerce REST API and an application. In no way is this endpoint intended to be used as login method for customers.</aside>
<h4 id="url-parameters">URL parameters</h4>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>app_name</code></td>
<td>string</td>
<td>Your APP name<i class="label label-info">MANDATORY</i></td>
</tr>
<tr>
<td><code>scope</code></td>
<td>string</td>
<td>Level of access. Available: <code>read</code>, <code>write</code> and <code>read_write</code><i class="label label-info">MANDATORY</i></td>
</tr>
<tr>
<td><code>user_id</code></td>
<td>string</td>
<td>User ID in your APP. For your internal reference, used when the user is redirected back to your APP. NOT THE USER ID IN WOOCOMMERCE<i class="label label-info">MANDATORY</i></td>
</tr>
<tr>
<td><code>return_url</code></td>
<td>string</td>
<td>URL the user will be redirected to after authentication<i class="label label-info">MANDATORY</i></td>
</tr>
<tr>
<td><code>callback_url</code></td>
<td>string</td>
<td>URL that will receive the generated API key. Note: this URL should be over <strong>HTTPS</strong><i class="label label-info">MANDATORY</i></td>
</tr>
</tbody>
</table>
<h4 id="creating-an-authentication-endpoint-url">Creating an authentication endpoint URL</h4>
<p>You must use the <code>/wc-auth/v1/authorize</code> endpoint and pass the above parameters as a query string.</p>
<blockquote>
<p>Example of how to build an authentication URL:</p>
</blockquote>
<pre class="highlight shell tab-shell"><code><span class="c"># Bash example</span>
<span class="nv">STORE_URL</span><span class="o">=</span><span class="s1">'http://example.com'</span>
<span class="nv">ENDPOINT</span><span class="o">=</span><span class="s1">'/wc-auth/v1/authorize'</span>
<span class="nv">PARAMS</span><span class="o">=</span><span class="s2">"app_name=My App Name&amp;scope=read_write&amp;user_id=123&amp;return_url=http://app.com/return-page&amp;callback_url=https://app.com/callback-endpoint"</span>
<span class="nv">QUERY_STRING</span><span class="o">=</span><span class="s2">"</span><span class="k">$(</span>perl -MURI::Escape -e <span class="s1">'print uri_escape($ARGV[0]);'</span> <span class="s2">"</span><span class="nv">$PARAMS</span><span class="s2">"</span><span class="k">)</span><span class="s2">"</span>
<span class="nv">QUERY_STRING</span><span class="o">=</span><span class="k">$(</span><span class="nb">echo</span> <span class="nv">$QUERY_STRING</span> | sed -e <span class="s2">"s/%20/</span><span class="se">+</span><span class="s2">/g"</span> -e <span class="s2">"s/%3D/</span><span class="se">=</span><span class="s2">/g"</span> -e <span class="s2">"s/%26/</span><span class="se">&amp;</span><span class="s2">/g"</span><span class="k">)</span>
<span class="nb">echo</span> <span class="s2">"</span><span class="nv">$STORE_URL$ENDPOINT</span><span class="s2">?</span><span class="nv">$QUERY_STRING</span><span class="s2">"</span>
</code></pre>
<pre class="highlight javascript tab-javascript"><code><span class="kr">const</span> <span class="nx">querystring</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'querystring'</span><span class="p">);</span>
<span class="kr">const</span> <span class="nx">store_url</span> <span class="o">=</span> <span class="s1">'http://example.com'</span><span class="p">;</span>
<span class="kr">const</span> <span class="nx">endpoint</span> <span class="o">=</span> <span class="s1">'/wc-auth/v1/authorize'</span><span class="p">;</span>
<span class="kr">const</span> <span class="nx">params</span> <span class="o">=</span> <span class="p">{</span>
  <span class="na">app_name</span><span class="p">:</span> <span class="s1">'My App Name'</span><span class="p">,</span>
  <span class="na">scope</span><span class="p">:</span> <span class="s1">'read_write'</span><span class="p">,</span>
  <span class="na">user_id</span><span class="p">:</span> <span class="mi">123</span><span class="p">,</span>
  <span class="na">return_url</span><span class="p">:</span> <span class="s1">'http://app.com/return-page'</span><span class="p">,</span>
  <span class="na">callback_url</span><span class="p">:</span> <span class="s1">'https://app.com/callback-endpoint'</span>
<span class="p">};</span>
<span class="kr">const</span> <span class="nx">query_string</span> <span class="o">=</span> <span class="nx">querystring</span><span class="p">.</span><span class="nx">stringify</span><span class="p">(</span><span class="nx">params</span><span class="p">).</span><span class="nx">replace</span><span class="p">(</span><span class="sr">/%20/g</span><span class="p">,</span> <span class="s1">'+'</span><span class="p">);</span>
<span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">store_url</span> <span class="o">+</span> <span class="nx">endpoint</span> <span class="o">+</span> <span class="s1">'?'</span> <span class="o">+</span> <span class="nx">query_string</span><span class="p">);</span>
</code></pre>
<pre class="highlight php tab-php"><code><span class="cp">&lt;?php</span>
<span class="nv">$store_url</span> <span class="o">=</span> <span class="s1">'http://example.com'</span><span class="p">;</span>
<span class="nv">$endpoint</span> <span class="o">=</span> <span class="s1">'/wc-auth/v1/authorize'</span><span class="p">;</span>
<span class="nv">$params</span> <span class="o">=</span> <span class="p">[</span>
    <span class="s1">'app_name'</span> <span class="o">=&gt;</span> <span class="s1">'My App Name'</span><span class="p">,</span>
    <span class="s1">'scope'</span> <span class="o">=&gt;</span> <span class="s1">'write'</span><span class="p">,</span>
    <span class="s1">'user_id'</span> <span class="o">=&gt;</span> <span class="mi">123</span><span class="p">,</span>
    <span class="s1">'return_url'</span> <span class="o">=&gt;</span> <span class="s1">'http://app.com'</span><span class="p">,</span>
    <span class="s1">'callback_url'</span> <span class="o">=&gt;</span> <span class="s1">'https://app.com'</span>
<span class="p">];</span>
<span class="nv">$query_string</span> <span class="o">=</span> <span class="nb">http_build_query</span><span class="p">(</span> <span class="nv">$params</span> <span class="p">);</span>
<span class="k">echo</span> <span class="nv">$store_url</span> <span class="o">.</span> <span class="nv">$endpoint</span> <span class="o">.</span> <span class="s1">'?'</span> <span class="o">.</span> <span class="nv">$query_string</span><span class="p">;</span>
<span class="cp">?&gt;</span>
</code></pre>
<pre class="highlight python tab-python"><code><span class="kn">from</span> <span class="nn">urllib.parse</span> <span class="kn">import</span> <span class="n">urlencode</span>
<span class="n">store_url</span> <span class="o">=</span> <span class="s">'http://example.com'</span>
<span class="n">endpoint</span> <span class="o">=</span> <span class="s">'/wc-auth/v1/authorize'</span>
<span class="n">params</span> <span class="o">=</span> <span class="p">{</span>
    <span class="s">"app_name"</span><span class="p">:</span> <span class="s">"My App Name"</span><span class="p">,</span>
    <span class="s">"scope"</span><span class="p">:</span> <span class="s">"read_write"</span><span class="p">,</span>
    <span class="s">"user_id"</span><span class="p">:</span> <span class="mi">123</span><span class="p">,</span>
    <span class="s">"return_url"</span><span class="p">:</span> <span class="s">"http://app.com/return-page"</span><span class="p">,</span>
    <span class="s">"callback_url"</span><span class="p">:</span> <span class="s">"https://app.com/callback-endpoint"</span>
<span class="p">}</span>
<span class="n">query_string</span> <span class="o">=</span> <span class="n">urlencode</span><span class="p">(</span><span class="n">params</span><span class="p">)</span>
<span class="k">print</span><span class="p">(</span><span class="s">"</span><span class="si">%</span><span class="s">s</span><span class="si">%</span><span class="s">s?</span><span class="si">%</span><span class="s">s"</span> <span class="o">%</span> <span class="p">(</span><span class="n">store_url</span><span class="p">,</span> <span class="n">endpoint</span><span class="p">,</span> <span class="n">query_string</span><span class="p">))</span>
</code></pre>
<pre class="highlight ruby tab-ruby"><code><span class="nb">require</span> <span class="s2">"uri"</span>
<span class="n">store_url</span> <span class="o">=</span> <span class="s1">'http://example.com'</span>
<span class="n">endpoint</span> <span class="o">=</span> <span class="s1">'/wc-auth/v1/authorize'</span>
<span class="n">params</span> <span class="o">=</span> <span class="p">{</span>
  <span class="ss">app_name: </span><span class="s2">"My App Name"</span><span class="p">,</span>
  <span class="ss">scope: </span><span class="s2">"read_write"</span><span class="p">,</span>
  <span class="ss">user_id: </span><span class="mi">123</span><span class="p">,</span>
  <span class="ss">return_url: </span><span class="s2">"http://app.com/return-page"</span><span class="p">,</span>
  <span class="ss">callback_url: </span><span class="s2">"https://app.com/callback-endpoint"</span>
<span class="p">}</span>
<span class="n">query_string</span> <span class="o">=</span> <span class="no">URI</span><span class="p">.</span><span class="nf">encode_www_form</span><span class="p">(</span><span class="n">params</span><span class="p">)</span>
<span class="nb">puts</span> <span class="s2">"</span><span class="si">#{</span><span class="n">store_url</span><span class="si">}#{</span><span class="n">endpoint</span><span class="si">}</span><span class="s2">?</span><span class="si">#{</span><span class="n">query_string</span><span class="si">}</span><span class="s2">"</span>
</code></pre>
<blockquote>
<p>Example of JSON posted with the API Keys</p>
</blockquote>
<pre class="highlight plaintext"><code>{
    "key_id": 1,
    "user_id": 123,
    "consumer_key": "ck_xxxxxxxxxxxxxxxx",
    "consumer_secret": "cs_xxxxxxxxxxxxxxxx",
    "key_permissions": "read_write"
}
</code></pre>
<p>Example of the screen that the user will see:</p>
<p><img decoding="async" src="https://help.codibu.com/wp-content/uploads/2020/11/woocommerce-auth-endpoint-example.png" alt="Authentication Endpoint example" /></p>
<h4 id="notes">Notes</h4>
<ul>
<li>While redirecting the user using <code>return_url</code>, you are also sent <code>success</code> and <code>user_id</code> parameters as query strings.</li>
<li><code>success</code> sends <code>0</code> if the user denied, or <code>1</code> if authenticated successfully.</li>
<li>Use <code>user_id</code> to identify the user when redirected back to the (<code>return_url</code>) and also remember to save the API Keys when your <code>callback_url</code> is posted to after auth.</li>
<li>The auth endpoint will send the API Keys in JSON format to the <code>callback_url</code>, so it&#8217;s important to remember that some languages such as PHP will not display it inside the <code>$_POST</code> global variable, in PHP you can access it using <code>$HTTP_RAW_POST_DATA</code> (for old PHP versions) or <code>file_get_contents('php://input');</code>.</li>
<li>The URL generated must have all query string values encoded.</li>
</ul>
<h2 id="authentication-over-https">Authentication over HTTPS</h2>
<p>You may use HTTP Basic Auth by providing the REST API Consumer Key as the username and the REST API Consumer Secret as the password.</p>
<blockquote>
<p>HTTP Basic Auth example</p>
</blockquote>
<pre class="highlight shell tab-shell"><code>curl https://www.example.com/wp-json/wc-bookings/v1/orders <span class="se"></span>
    -u consumer_key:consumer_secret
</code></pre>
<pre class="highlight javascript tab-javascript"><code><span class="kr">const</span> <span class="nx">WooCommerceRestApi</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s2">"@woocommerce/woocommerce-rest-api"</span><span class="p">).</span><span class="k">default</span><span class="p">;</span>
<span class="c1">// import WooCommerceRestApi from "@woocommerce/woocommerce-rest-api"; // Supports ESM</span>
<span class="kr">const</span> <span class="nx">WooCommerce</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WooCommerceRestApi</span><span class="p">({</span>
  <span class="na">url</span><span class="p">:</span> <span class="s1">'https://example.com'</span><span class="p">,</span>
  <span class="na">consumerKey</span><span class="p">:</span> <span class="s1">'consumer_key'</span><span class="p">,</span>
  <span class="na">consumerSecret</span><span class="p">:</span> <span class="s1">'consumer_secret'</span><span class="p">,</span>
  <span class="na">version</span><span class="p">:</span> <span class="s1">'wc-bookings/v1'</span>
<span class="p">});</span>
</code></pre>
<pre class="highlight php tab-php"><code><span class="cp">&lt;?php</span>
<span class="k">require</span> <span class="nx">__DIR__</span> <span class="o">.</span> <span class="s1">'/vendor/autoload.php'</span><span class="p">;</span>
<span class="k">use</span> <span class="nx">AutomatticWooCommerceClient</span><span class="p">;</span>
<span class="nv">$woocommerce</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Client</span><span class="p">(</span>
    <span class="s1">'https://example.com'</span><span class="p">,</span>
    <span class="s1">'consumer_key'</span><span class="p">,</span>
    <span class="s1">'consumer_secret'</span><span class="p">,</span>
    <span class="p">[</span>
        <span class="s1">'wp_api'</span> <span class="o">=&gt;</span> <span class="kc">true</span><span class="p">,</span>
        <span class="s1">'version'</span> <span class="o">=&gt;</span> <span class="s1">'wc-bookings/v1'</span>
    <span class="p">]</span>
<span class="p">);</span>
<span class="cp">?&gt;</span>
</code></pre>
<pre class="highlight python tab-python"><code><span class="kn">from</span> <span class="nn">woocommerce</span> <span class="kn">import</span> <span class="n">API</span>
<span class="n">wcapi</span> <span class="o">=</span> <span class="n">API</span><span class="p">(</span>
    <span class="n">url</span><span class="o">=</span><span class="s">"https://example.com"</span><span class="p">,</span>
    <span class="n">consumer_key</span><span class="o">=</span><span class="s">"consumer_key"</span><span class="p">,</span>
    <span class="n">consumer_secret</span><span class="o">=</span><span class="s">"consumer_secret"</span><span class="p">,</span>
    <span class="n">wp_api</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
    <span class="n">version</span><span class="o">=</span><span class="s">"wc-bookings/v1"</span>
<span class="p">)</span>
</code></pre>
<pre class="highlight ruby tab-ruby"><code><span class="nb">require</span> <span class="s2">"woocommerce_api"</span>
<span class="n">woocommerce</span> <span class="o">=</span> <span class="no">WooCommerce</span><span class="o">::</span><span class="no">API</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span>
  <span class="s2">"https://example.com"</span><span class="p">,</span>
  <span class="s2">"consumer_key"</span><span class="p">,</span>
  <span class="s2">"consumer_secret"</span><span class="p">,</span>
  <span class="p">{</span>
    <span class="ss">wp_json: </span><span class="kp">true</span><span class="p">,</span>
    <span class="ss">version: </span><span class="s2">"wc-bookings/v1"</span>
  <span class="p">}</span>
<span class="p">)</span>
</code></pre>
<p>Occasionally some servers may not parse the Authorization header correctly (if you see a &#8220;Consumer key is missing&#8221; error when authenticating over SSL, you have a server issue). In this case, you may provide the consumer key/secret as query string parameters instead.</p>
<blockquote>
<p>Example for servers that not properly parse the Authorization header:</p>
</blockquote>
<pre class="highlight shell tab-shell"><code>curl https://www.example.com/wp-json/wc-bookings/v1/orders?consumer_key<span class="o">=</span>123&amp;consumer_secret<span class="o">=</span>abc
</code></pre>
<pre class="highlight javascript tab-javascript"><code><span class="kr">const</span> <span class="nx">WooCommerceRestApi</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s2">"@woocommerce/woocommerce-rest-api"</span><span class="p">).</span><span class="k">default</span><span class="p">;</span>
<span class="c1">// import WooCommerceRestApi from "@woocommerce/woocommerce-rest-api"; // Supports ESM</span>
<span class="kr">const</span> <span class="nx">WooCommerce</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">WooCommerceRestApi</span><span class="p">({</span>
  <span class="na">url</span><span class="p">:</span> <span class="s1">'https://example.com'</span><span class="p">,</span>
  <span class="na">consumerKey</span><span class="p">:</span> <span class="s1">'consumer_key'</span><span class="p">,</span>
  <span class="na">consumerSecret</span><span class="p">:</span> <span class="s1">'consumer_secret'</span><span class="p">,</span>
  <span class="na">version</span><span class="p">:</span> <span class="s1">'wc-bookings/v1'</span><span class="p">,</span>
  <span class="na">queryStringAuth</span><span class="p">:</span> <span class="kc">true</span> <span class="c1">// Force Basic Authentication as query string true and using under HTTPS</span>
<span class="p">});</span>
</code></pre>
<pre class="highlight php tab-php"><code><span class="cp">&lt;?php</span>
<span class="k">require</span> <span class="nx">__DIR__</span> <span class="o">.</span> <span class="s1">'/vendor/autoload.php'</span><span class="p">;</span>
<span class="k">use</span> <span class="nx">AutomatticWooCommerceClient</span><span class="p">;</span>
<span class="nv">$woocommerce</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">Client</span><span class="p">(</span>
    <span class="s1">'https://example.com'</span><span class="p">,</span>
    <span class="s1">'consumer_key'</span><span class="p">,</span>
    <span class="s1">'consumer_secret'</span><span class="p">,</span>
    <span class="p">[</span>
        <span class="s1">'wp_api'</span> <span class="o">=&gt;</span> <span class="kc">true</span><span class="p">,</span>
        <span class="s1">'version'</span> <span class="o">=&gt;</span> <span class="s1">'wc-bookings/v1'</span><span class="p">,</span>
        <span class="s1">'query_string_auth'</span> <span class="o">=&gt;</span> <span class="kc">true</span> <span class="c1">// Force Basic Authentication as query string true and using under HTTPS
</span>    <span class="p">]</span>
<span class="p">);</span>
<span class="cp">?&gt;</span>
</code></pre>
<pre class="highlight python tab-python"><code><span class="kn">from</span> <span class="nn">woocommerce</span> <span class="kn">import</span> <span class="n">API</span>
<span class="n">wcapi</span> <span class="o">=</span> <span class="n">API</span><span class="p">(</span>
    <span class="n">url</span><span class="o">=</span><span class="s">"https://example.com"</span><span class="p">,</span>
    <span class="n">consumer_key</span><span class="o">=</span><span class="s">"consumer_key"</span><span class="p">,</span>
    <span class="n">consumer_secret</span><span class="o">=</span><span class="s">"consumer_secret"</span><span class="p">,</span>
    <span class="n">wp_api</span><span class="o">=</span><span class="bp">True</span><span class="p">,</span>
    <span class="n">version</span><span class="o">=</span><span class="s">"wc-bookings/v1"</span><span class="p">,</span>
    <span class="n">query_string_auth</span><span class="o">=</span><span class="bp">True</span> <span class="o">//</span> <span class="n">Force</span> <span class="n">Basic</span> <span class="n">Authentication</span> <span class="k">as</span> <span class="n">query</span> <span class="n">string</span> <span class="n">true</span> <span class="ow">and</span> <span class="n">using</span> <span class="n">under</span> <span class="n">HTTPS</span>
<span class="p">)</span>
</code></pre>
<pre class="highlight ruby tab-ruby"><code><span class="nb">require</span> <span class="s2">"woocommerce_api"</span>
<span class="n">woocommerce</span> <span class="o">=</span> <span class="no">WooCommerce</span><span class="o">::</span><span class="no">API</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span>
  <span class="s2">"https://example.com"</span><span class="p">,</span>
  <span class="s2">"consumer_key"</span><span class="p">,</span>
  <span class="s2">"consumer_secret"</span><span class="p">,</span>
  <span class="p">{</span>
    <span class="ss">wp_json: </span><span class="kp">true</span><span class="p">,</span>
    <span class="ss">version: </span><span class="s2">"wc-bookings/v1"</span><span class="p">,</span>
    <span class="ss">query_string_auth: </span><span class="kp">true</span> <span class="sr">//</span> <span class="no">Force</span> <span class="no">Basic</span> <span class="no">Authentication</span> <span class="n">as</span> <span class="n">query</span> <span class="n">string</span> <span class="kp">true</span> <span class="n">and</span> <span class="n">using</span> <span class="n">under</span> <span class="no">HTTPS</span>
  <span class="p">}</span>
<span class="p">)</span>
</code></pre>
<h2 id="authentication-over-http">Authentication over HTTP</h2>
<p>You must use OAuth 1.0a &#8220;one-legged&#8221; authentication to ensure REST API credentials cannot be intercepted by an attacker. Typically you will use any standard OAuth 1.0a library in the language of your choice to handle the authentication, or generate the necessary parameters by following the following instructions.</p>
<h3 id="creating-a-signature">Creating a signature</h3>
<h4 id="collect-the-request-method-and-url">Collect the request method and URL</h4>
<p>First you need to determine the HTTP method you will be using for the request, and the URL of the request.</p>
<p>The <strong>HTTP method</strong> will be <code>GET</code> in our case.</p>
<p>The <strong>Request URL</strong> will be the endpoint you are posting to, e.g. <code>http://www.example.com/wp-json/wc-bookings/v1/orders</code>.</p>
<h4 id="collect-parameters">Collect parameters</h4>
<p>Collect and normalize your parameters. This includes all <code>oauth_*</code> parameters except for the <code>oauth_signature</code> itself.</p>
<p>These values need to be encoded into a single string which will be used later on. The process to build the string is very specific:</p>
<ol>
<li>Percent encode every key and value that will be signed.</li>
<li>Sort the list of parameters alphabetically by encoded key.</li>
<li>For each key/value pair:
<ul>
<li>Append the encoded key to the output string.</li>
<li>Append the <code>=</code> character to the output string.</li>
<li>Append the encoded value to the output string.</li>
<li>If there are more key/value pairs remaining, append a <code>&amp;</code> character to the output string.</li>
</ul>
</li>
</ol>
<p>When percent encoding in PHP for example, you would use <code>rawurlencode()</code>.</p>
<p>When sorting parameters in PHP for example, you would use <code>uksort( $params, 'strcmp' )</code>.</p>
<blockquote>
<p>Parameters example:</p>
</blockquote>
<pre class="highlight plaintext"><code>oauth_consumer_key=abc123&amp;oauth_signature_method=HMAC-SHA1
</code></pre>
<h4 id="create-the-signature-base-string">Create the signature base string</h4>
<p>The above values collected so far must be joined to make a single string, from which the signature will be generated. This is called the signature base string in the OAuth specification.</p>
<p>To encode the HTTP method, request URL, and parameter string into a single string:</p>
<ol>
<li>Set the output string equal to the uppercase <strong>HTTP Method</strong>.</li>
<li>Append the <code>&amp;</code> character to the output string.</li>
<li>Percent encode the URL and append it to the output string.</li>
<li>Append the <code>&amp;</code> character to the output string.</li>
<li>Percent encode the parameter string and append it to the output string.</li>
</ol>
<blockquote>
<p>Example signature base string:</p>
</blockquote>
<pre class="highlight plaintext"><code>GET&amp;http%3A%2F%2Fwww.example.com%2Fwp-json%2Fwc%2Fv3%2Forders&amp;oauth_consumer_key%3Dabc123%26oauth_signature_method%3DHMAC-SHA1
</code></pre>
<h4 id="generate-the-signature">Generate the signature</h4>
<p>Generate the signature using the <em>signature base string</em> and your consumer secret key with a <code>&amp;</code> character with the HMAC-SHA1 hashing algorithm.</p>
<p>In PHP you can use the hash_hmac function.</p>
<p>HMAC-SHA1 or HMAC-SHA256 are the only accepted hash algorithms.</p>
<p>If you are having trouble generating a correct signature, you&#8217;ll want to review the string you are signing for encoding errors. The authentication source can also be helpful in understanding how to properly generate the signature.</p>
<h3 id="oauth-tips">OAuth tips</h3>
<ul>
<li>The OAuth parameters may be added as query string parameters or included in the Authorization header.</li>
<li>Note there is no reliable cross-platform way to get the raw request headers in WordPress, so query string should be more reliable in some cases.</li>
<li>The required parameters are: <code>oauth_consumer_key</code>, <code>oauth_timestamp</code>, <code>oauth_nonce</code>, <code>oauth_signature</code>, and <code>oauth_signature_method</code>. <code>oauth_version</code> is not required and should be omitted.</li>
<li>The OAuth nonce can be any randomly generated 32 character (recommended) string that is unique to the consumer key. Read more suggestions on generating nonces on the Twitter REST API forums.</li>
<li>The OAuth timestamp should be the unix timestamp at the time of the request. The REST API will deny any requests that include a timestamp outside of a 15 minute window to prevent replay attacks.</li>
<li>You must use the store URL provided by the index when forming the base string used for the signature, as this is what the server will use. (e.g. if the store URL includes a <code>www</code> sub-domain, you should use it for requests)</li>
<li>You may test your generated signature using LinkedIn&#8217;s OAuth test console &#8212; leave the member token/secret blank.</li>
<li>Twitter has great instructions on generating signatures with OAuth 1.0a, but remember tokens are not used with this implementation.</li>
<li>Note that the request body is <em>not</em> signed as per the OAuth spec, see Google&#8217;s OAuth 1.0 extension for details on why.</li>
<li>If including parameters in your request, it saves a lot of trouble if you can order your items alphabetically.</li>
<li>Authorization header is supported starting WooCommerce 3.0.</li>
</ul>
<h1 id="index">Index</h1>
<p>By default, the API provides information about all available endpoints on the site. Authentication is not required to access the API index.</p>
<h3 id="http-request">HTTP request</h3>
<div class="api-endpoint">
<div class="endpoint-data"><i class="label label-get">GET</i> </p>
<h6>/wp-json/wc-bookings/v1</h6>
</div>
</div>
<pre class="highlight shell tab-shell"><code>curl https://example.com/wp-json/wc-bookings/v1
</code></pre>
<blockquote>
<p>JSON response example:</p>
</blockquote>
<pre class="highlight json tab-json"><code><span class="p">{</span>
    <span class="s2">"namespace"</span><span class="p">:</span> <span class="s2">"wc-bookings/v1"</span><span class="p">,</span>
    <span class="s2">"routes"</span><span class="p">:</span> <span class="p">{</span>
        <span class="s2">"/wc-bookings/v1"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"namespace"</span><span class="p">:</span> <span class="s2">"wc-bookings/v1"</span><span class="p">,</span>
            <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                <span class="s2">"GET"</span>
            <span class="p">],</span>
            <span class="s2">"endpoints"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                        <span class="s2">"GET"</span>
                    <span class="p">],</span>
                    <span class="s2">"args"</span><span class="p">:</span> <span class="p">{</span>
                        <span class="s2">"namespace"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="s2">"wc-bookings/v1"</span>
                        <span class="p">},</span>
                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="s2">"view"</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">],</span>
            <span class="s2">"_links"</span><span class="p">:</span> <span class="p">{</span>
                <span class="s2">"self"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1"</span>
            <span class="p">}</span>
        <span class="p">},</span>
        <span class="s2">"/wc-bookings/v1/products"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"namespace"</span><span class="p">:</span> <span class="s2">"wc-bookings/v1"</span><span class="p">,</span>
            <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                <span class="s2">"GET"</span><span class="p">,</span>
                <span class="s2">"POST"</span>
            <span class="p">],</span>
            <span class="s2">"endpoints"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                        <span class="s2">"GET"</span>
                    <span class="p">],</span>
                    <span class="s2">"args"</span><span class="p">:</span> <span class="p">{</span>
                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="s2">"view"</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"view"</span><span class="p">,</span>
                                <span class="s2">"edit"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Scope under which the request is made; determines fields present in response."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"page"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Current page of the collection."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"per_page"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="mi">10</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Maximum number of items to be returned in result set."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"search"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit results to those matching a string."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"after"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit response to resources published after a given ISO8601 compliant date."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"before"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit response to resources published before a given ISO8601 compliant date."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"exclude"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="p">[],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Ensure result set excludes specific IDs."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"include"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="p">[],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit result set to specific ids."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"offset"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Offset the result set by a specific number of items."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"order"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="s2">"desc"</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"asc"</span><span class="p">,</span>
                                <span class="s2">"desc"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Order sort attribute ascending or descending."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"orderby"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="s2">"date"</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"date"</span><span class="p">,</span>
                                <span class="s2">"id"</span><span class="p">,</span>
                                <span class="s2">"include"</span><span class="p">,</span>
                                <span class="s2">"title"</span><span class="p">,</span>
                                <span class="s2">"slug"</span><span class="p">,</span>
                                <span class="s2">"menu_order"</span><span class="p">,</span>
                                <span class="s2">"price"</span><span class="p">,</span>
                                <span class="s2">"popularity"</span><span class="p">,</span>
                                <span class="s2">"rating"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Sort collection by object attribute."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"parent"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="p">[],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit result set to those of particular parent IDs."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"parent_exclude"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="p">[],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit result set to all items except those of a particular parent ID."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"slug"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit result set to products with a specific slug."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"status"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="s2">"publish"</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"any"</span><span class="p">,</span>
                                <span class="s2">"future"</span><span class="p">,</span>
                                <span class="s2">"draft"</span><span class="p">,</span>
                                <span class="s2">"pending"</span><span class="p">,</span>
                                <span class="s2">"private"</span><span class="p">,</span>
                                <span class="s2">"publish"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit result set to products assigned a specific status."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"type"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="s2">"booking"</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"booking"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit result set to products assigned a specific type."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"sku"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit result set to products with specific SKU(s). Use commas to separate."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"featured"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit result set to featured products."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"category"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit result set to products assigned a specific category ID."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"tag"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit result set to products assigned a specific tag ID."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"shipping_class"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit result set to products assigned a specific shipping class ID."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"attribute"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit result set to products with a specific attribute. Use the taxonomy name/attribute slug."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"attribute_term"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit result set to products with a specific attribute term ID (required an assigned attribute)."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"tax_class"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"standard"</span><span class="p">,</span>
                                <span class="s2">"reduced-rate"</span><span class="p">,</span>
                                <span class="s2">"zero-rate"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit result set to products with a specific tax class."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"on_sale"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit result set to products on sale."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"min_price"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit result set to products based on a minimum price."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"max_price"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit result set to products based on a maximum price."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"stock_status"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"instock"</span><span class="p">,</span>
                                <span class="s2">"outofstock"</span><span class="p">,</span>
                                <span class="s2">"onbackorder"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit result set to products with specified stock status."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"resource"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit result set to products assigned a specific resource ID."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                            <span class="p">}</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">},</span>
                <span class="p">{</span>
                    <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                        <span class="s2">"POST"</span>
                    <span class="p">],</span>
                    <span class="s2">"args"</span><span class="p">:</span> <span class="p">{</span>
                        <span class="s2">"name"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product name."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"slug"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product slug."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"date_created"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"The date the product was created, in the site's timezone."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span>
                        <span class="p">},</span>
                        <span class="s2">"date_created_gmt"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"The date the product was created, as GMT."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span>
                        <span class="p">},</span>
                        <span class="s2">"type"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="s2">"simple"</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"simple"</span><span class="p">,</span>
                                <span class="s2">"grouped"</span><span class="p">,</span>
                                <span class="s2">"external"</span><span class="p">,</span>
                                <span class="s2">"variable"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product type."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"status"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="s2">"publish"</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"draft"</span><span class="p">,</span>
                                <span class="s2">"pending"</span><span class="p">,</span>
                                <span class="s2">"private"</span><span class="p">,</span>
                                <span class="s2">"publish"</span><span class="p">,</span>
                                <span class="s2">"future"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product status (post status)."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"featured"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Featured product."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"catalog_visibility"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="s2">"visible"</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"visible"</span><span class="p">,</span>
                                <span class="s2">"catalog"</span><span class="p">,</span>
                                <span class="s2">"search"</span><span class="p">,</span>
                                <span class="s2">"hidden"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Catalog visibility."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"description"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product description."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"short_description"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product short description."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"sku"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Unique identifier."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"regular_price"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product regular price."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"sale_price"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product sale price."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"date_on_sale_from"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Start date of sale price, in the site's timezone."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span>
                        <span class="p">},</span>
                        <span class="s2">"date_on_sale_from_gmt"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Start date of sale price, as GMT."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span>
                        <span class="p">},</span>
                        <span class="s2">"date_on_sale_to"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"End date of sale price, in the site's timezone."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span>
                        <span class="p">},</span>
                        <span class="s2">"date_on_sale_to_gmt"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"End date of sale price, in the site's timezone."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span>
                        <span class="p">},</span>
                        <span class="s2">"virtual"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"If the product is virtual."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"downloadable"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"If the product is downloadable."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"downloads"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"List of downloadable files."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span><span class="p">,</span>
                                <span class="s2">"properties"</span><span class="p">:</span> <span class="p">{</span>
                                    <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"File ID."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"name"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"File name."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"file"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"File URL."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">}</span>
                                <span class="p">}</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"download_limit"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="mi">-1</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Number of times downloadable files can be downloaded after purchase."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"download_expiry"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="mi">-1</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Number of days until access to downloadable files expires."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"external_url"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product external URL. Only for external products."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"button_text"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product external button text. Only for external products."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"tax_status"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="s2">"taxable"</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"taxable"</span><span class="p">,</span>
                                <span class="s2">"shipping"</span><span class="p">,</span>
                                <span class="s2">"none"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Tax status."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"tax_class"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Tax class."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"manage_stock"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Stock management at product level."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"stock_quantity"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Stock quantity."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"stock_status"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="s2">"instock"</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"instock"</span><span class="p">,</span>
                                <span class="s2">"outofstock"</span><span class="p">,</span>
                                <span class="s2">"onbackorder"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Controls the stock status of the product."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"backorders"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="s2">"no"</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"no"</span><span class="p">,</span>
                                <span class="s2">"notify"</span><span class="p">,</span>
                                <span class="s2">"yes"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"If managing stock, this controls if backorders are allowed."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"sold_individually"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Allow one item to be bought in a single order."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"weight"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product weight (oz)."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"dimensions"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product dimensions."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span>
                        <span class="p">},</span>
                        <span class="s2">"shipping_class"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Shipping class slug."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"reviews_allowed"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Allow reviews."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"upsell_ids"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"List of up-sell products IDs."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"cross_sell_ids"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"List of cross-sell products IDs."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"parent_id"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product parent ID."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"purchase_note"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Optional note to send the customer after purchase."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"categories"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"List of categories."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span><span class="p">,</span>
                                <span class="s2">"properties"</span><span class="p">:</span> <span class="p">{</span>
                                    <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Category ID."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"name"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Category name."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span>
                                    <span class="p">},</span>
                                    <span class="s2">"slug"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Category slug."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span>
                                    <span class="p">}</span>
                                <span class="p">}</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"tags"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"List of tags."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span><span class="p">,</span>
                                <span class="s2">"properties"</span><span class="p">:</span> <span class="p">{</span>
                                    <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Tag ID."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"name"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Tag name."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span>
                                    <span class="p">},</span>
                                    <span class="s2">"slug"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Tag slug."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span>
                                    <span class="p">}</span>
                                <span class="p">}</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"images"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"List of images."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span><span class="p">,</span>
                                <span class="s2">"properties"</span><span class="p">:</span> <span class="p">{</span>
                                    <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Image ID."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"date_created"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"The date the image was created, in the site's timezone."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span>
                                    <span class="p">},</span>
                                    <span class="s2">"date_created_gmt"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"The date the image was created, as GMT."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span>
                                    <span class="p">},</span>
                                    <span class="s2">"date_modified"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"The date the image was last modified, in the site's timezone."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span>
                                    <span class="p">},</span>
                                    <span class="s2">"date_modified_gmt"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"The date the image was last modified, as GMT."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span>
                                    <span class="p">},</span>
                                    <span class="s2">"src"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Image URL."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"format"</span><span class="p">:</span> <span class="s2">"uri"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"name"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Image name."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"alt"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Image alternative text."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">}</span>
                                <span class="p">}</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"attributes"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"List of attributes."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span><span class="p">,</span>
                                <span class="s2">"properties"</span><span class="p">:</span> <span class="p">{</span>
                                    <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Attribute ID."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"name"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Attribute name."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"position"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Attribute position."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"visible"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Define if the attribute is visible on the </span><span class="se">"</span><span class="s2">Additional information</span><span class="se">"</span><span class="s2"> tab in the product's page."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span><span class="p">,</span>
                                        <span class="s2">"default"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"variation"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Define if the attribute can be used as variation."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span><span class="p">,</span>
                                        <span class="s2">"default"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"options"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"List of available term names of the attribute."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                                        <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                                        <span class="p">},</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">}</span>
                                <span class="p">}</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"default_attributes"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Defaults variation attributes."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span><span class="p">,</span>
                                <span class="s2">"properties"</span><span class="p">:</span> <span class="p">{</span>
                                    <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Attribute ID."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"name"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Attribute name."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"option"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Selected attribute term name."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">}</span>
                                <span class="p">}</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"menu_order"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Menu order, used to custom sort products."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"meta_data"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Meta data."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span><span class="p">,</span>
                                <span class="s2">"properties"</span><span class="p">:</span> <span class="p">{</span>
                                    <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Meta ID."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span>
                                    <span class="p">},</span>
                                    <span class="s2">"key"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Meta key."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"value"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Meta value."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"mixed"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">}</span>
                                <span class="p">}</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"apply_adjacent_buffer"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Apply adjacent buffers."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"availability"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Availability rules defined on product level."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span><span class="p">,</span>
                                <span class="s2">"properties"</span><span class="p">:</span> <span class="p">{</span>
                                    <span class="s2">"type"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Availability type."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"from"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Starting month/day/week inclusive."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"to"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Ending month/day/week inclusive."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"from_date"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Starting day if 'from' is a time.,"</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"to_date"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Ending day if 'to' is a time."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"bookable"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Rule marks things as bookable or not, 'yes' or 'no'."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"priority"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Priority of rule."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">}</span>
                                <span class="p">}</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"block_cost"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Base cost of each block."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"number"</span>
                        <span class="p">},</span>
                        <span class="s2">"buffer_period"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Required buffer Period between bookings."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"calendar_display_mode"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">""</span><span class="p">,</span>
                                <span class="s2">"always_visible"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"How the calendar will display on the product page. Valid values are 'always_visible' or ''."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"cancel_limit_unit"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"month"</span><span class="p">,</span>
                                <span class="s2">"day"</span><span class="p">,</span>
                                <span class="s2">"hour"</span><span class="p">,</span>
                                <span class="s2">"minute"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"The unit limit is defined in. Valid values are 'month', 'day', 'hour', and 'minute'."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"cancel_limit"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"How many limit units in advance users are allowed to cancel bookings."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"check_start_block_only"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"If true only the first block in checked for availability."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"cost"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product cost."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"number"</span>
                        <span class="p">},</span>
                        <span class="s2">"default_date_availability"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">""</span><span class="p">,</span>
                                <span class="s2">"available"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"If 'available' product is bookable unless made unbookable by availability rules."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"display_cost"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product cost displayed."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"duration_type"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"customer"</span><span class="p">,</span>
                                <span class="s2">"fixed"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"How duration is defined."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"duration_unit"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"month"</span><span class="p">,</span>
                                <span class="s2">"day"</span><span class="p">,</span>
                                <span class="s2">"hour"</span><span class="p">,</span>
                                <span class="s2">"minute"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Unit duration is defined in."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"duration"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Size in duration units of each block."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"enable_range_picker"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Customer can pick a range of days on calendar."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"first_block_time"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Time of day first block starts."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"has_person_cost_multiplier"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Will multiply cost by number of persons."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"has_person_qty_multiplier"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Each person counts as a booking."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"has_person_types"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product has different types of persons."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"has_persons"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product has persons defined."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"has_resources"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product has resources defined."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"has_restricted_days"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product has restricted days."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"max_date"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Max date value combined with max date unit."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"max_date_value"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Max amount af max_date_units into the future a block is bookable."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"max_date_unit"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"month"</span><span class="p">,</span>
                                <span class="s2">"day"</span><span class="p">,</span>
                                <span class="s2">"hour"</span><span class="p">,</span>
                                <span class="s2">"week"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Units for max_date_value."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"min_date"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Min date value combined with min date unit."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"min_date_value"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Min amount af min_date_units into the future a block is bookable."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"min_date_unit"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"month"</span><span class="p">,</span>
                                <span class="s2">"day"</span><span class="p">,</span>
                                <span class="s2">"hour"</span><span class="p">,</span>
                                <span class="s2">"week"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Units for min_date_value."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"max_duration"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Max duration of units a booking can be."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"min_duration"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Min duration of units a booking can be."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"max_persons"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Max persons which can be booked per booking."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"min_persons"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Min persons which can be booked per booking."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"pricing"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Pricing rules."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span><span class="p">,</span>
                                <span class="s2">"properties"</span><span class="p">:</span> <span class="p">{</span>
                                    <span class="s2">"type"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Date range type."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"from"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Starting month/day/week inclusive."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"to"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Ending month/day/week inclusive."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"from_date"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Starting day if 'from' is a time.,"</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"to_date"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Ending day if 'to' is a time."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"modifier"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"How the block cost should be modified."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"+"</span><span class="p">,</span>
                                            <span class="s2">"minus"</span><span class="p">,</span>
                                            <span class="s2">"times"</span><span class="p">,</span>
                                            <span class="s2">"divide"</span><span class="p">,</span>
                                            <span class="s2">"equals"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"cost"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Block cost."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"number"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"base_modifier"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"How the base cost should be modified."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"+"</span><span class="p">,</span>
                                            <span class="s2">"minus"</span><span class="p">,</span>
                                            <span class="s2">"times"</span><span class="p">,</span>
                                            <span class="s2">"divide"</span><span class="p">,</span>
                                            <span class="s2">"equals"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"base_cost"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Base cost."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"number"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"priority"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Priority of rule."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">}</span>
                                <span class="p">}</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"qty"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Max bookings per block."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"requires_confirmation"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Booking require confirmation."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"restricted_days"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Days days of week bookings cannot start. Array of numeric day indexes with 0 being Sunday."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                    <span class="mi">0</span><span class="p">,</span>
                                    <span class="mi">1</span><span class="p">,</span>
                                    <span class="mi">2</span><span class="p">,</span>
                                    <span class="mi">3</span><span class="p">,</span>
                                    <span class="mi">4</span><span class="p">,</span>
                                    <span class="mi">5</span><span class="p">,</span>
                                    <span class="mi">6</span>
                                <span class="p">]</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"can_be_cancelled"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Booking can be cancelled by customer."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">],</span>
            <span class="s2">"_links"</span><span class="p">:</span> <span class="p">{</span>
                <span class="s2">"self"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/products"</span>
            <span class="p">}</span>
        <span class="p">},</span>
        <span class="s2">"/wc-bookings/v1/products/(?P&lt;id&gt;[</span><span class="se">\</span><span class="s2">d]+)"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"namespace"</span><span class="p">:</span> <span class="s2">"wc-bookings/v1"</span><span class="p">,</span>
            <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                <span class="s2">"GET"</span><span class="p">,</span>
                <span class="s2">"POST"</span><span class="p">,</span>
                <span class="s2">"PUT"</span><span class="p">,</span>
                <span class="s2">"PATCH"</span><span class="p">,</span>
                <span class="s2">"DELETE"</span>
            <span class="p">],</span>
            <span class="s2">"endpoints"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                        <span class="s2">"GET"</span>
                    <span class="p">],</span>
                    <span class="s2">"args"</span><span class="p">:</span> <span class="p">{</span>
                        <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Unique identifier for the resource."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="s2">"view"</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"view"</span><span class="p">,</span>
                                <span class="s2">"edit"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Scope under which the request is made; determines fields present in response."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">},</span>
                <span class="p">{</span>
                    <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                        <span class="s2">"POST"</span><span class="p">,</span>
                        <span class="s2">"PUT"</span><span class="p">,</span>
                        <span class="s2">"PATCH"</span>
                    <span class="p">],</span>
                    <span class="s2">"args"</span><span class="p">:</span> <span class="p">{</span>
                        <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Unique identifier for the resource."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"name"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product name."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"slug"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product slug."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"date_created"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"The date the product was created, in the site's timezone."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span>
                        <span class="p">},</span>
                        <span class="s2">"date_created_gmt"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"The date the product was created, as GMT."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span>
                        <span class="p">},</span>
                        <span class="s2">"type"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"simple"</span><span class="p">,</span>
                                <span class="s2">"grouped"</span><span class="p">,</span>
                                <span class="s2">"external"</span><span class="p">,</span>
                                <span class="s2">"variable"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product type."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"status"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"draft"</span><span class="p">,</span>
                                <span class="s2">"pending"</span><span class="p">,</span>
                                <span class="s2">"private"</span><span class="p">,</span>
                                <span class="s2">"publish"</span><span class="p">,</span>
                                <span class="s2">"future"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product status (post status)."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"featured"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Featured product."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"catalog_visibility"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"visible"</span><span class="p">,</span>
                                <span class="s2">"catalog"</span><span class="p">,</span>
                                <span class="s2">"search"</span><span class="p">,</span>
                                <span class="s2">"hidden"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Catalog visibility."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"description"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product description."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"short_description"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product short description."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"sku"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Unique identifier."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"regular_price"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product regular price."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"sale_price"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product sale price."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"date_on_sale_from"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Start date of sale price, in the site's timezone."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span>
                        <span class="p">},</span>
                        <span class="s2">"date_on_sale_from_gmt"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Start date of sale price, as GMT."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span>
                        <span class="p">},</span>
                        <span class="s2">"date_on_sale_to"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"End date of sale price, in the site's timezone."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span>
                        <span class="p">},</span>
                        <span class="s2">"date_on_sale_to_gmt"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"End date of sale price, in the site's timezone."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span>
                        <span class="p">},</span>
                        <span class="s2">"virtual"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"If the product is virtual."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"downloadable"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"If the product is downloadable."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"downloads"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"List of downloadable files."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span><span class="p">,</span>
                                <span class="s2">"properties"</span><span class="p">:</span> <span class="p">{</span>
                                    <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"File ID."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"name"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"File name."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"file"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"File URL."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">}</span>
                                <span class="p">}</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"download_limit"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Number of times downloadable files can be downloaded after purchase."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"download_expiry"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Number of days until access to downloadable files expires."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"external_url"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product external URL. Only for external products."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"button_text"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product external button text. Only for external products."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"tax_status"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"taxable"</span><span class="p">,</span>
                                <span class="s2">"shipping"</span><span class="p">,</span>
                                <span class="s2">"none"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Tax status."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"tax_class"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Tax class."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"manage_stock"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Stock management at product level."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"stock_quantity"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Stock quantity."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"stock_status"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"instock"</span><span class="p">,</span>
                                <span class="s2">"outofstock"</span><span class="p">,</span>
                                <span class="s2">"onbackorder"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Controls the stock status of the product."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"backorders"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"no"</span><span class="p">,</span>
                                <span class="s2">"notify"</span><span class="p">,</span>
                                <span class="s2">"yes"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"If managing stock, this controls if backorders are allowed."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"sold_individually"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Allow one item to be bought in a single order."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"weight"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product weight (oz)."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"dimensions"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product dimensions."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span>
                        <span class="p">},</span>
                        <span class="s2">"shipping_class"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Shipping class slug."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"reviews_allowed"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Allow reviews."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"upsell_ids"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"List of up-sell products IDs."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"cross_sell_ids"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"List of cross-sell products IDs."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"parent_id"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product parent ID."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"purchase_note"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Optional note to send the customer after purchase."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"categories"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"List of categories."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span><span class="p">,</span>
                                <span class="s2">"properties"</span><span class="p">:</span> <span class="p">{</span>
                                    <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Category ID."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"name"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Category name."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span>
                                    <span class="p">},</span>
                                    <span class="s2">"slug"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Category slug."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span>
                                    <span class="p">}</span>
                                <span class="p">}</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"tags"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"List of tags."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span><span class="p">,</span>
                                <span class="s2">"properties"</span><span class="p">:</span> <span class="p">{</span>
                                    <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Tag ID."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"name"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Tag name."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span>
                                    <span class="p">},</span>
                                    <span class="s2">"slug"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Tag slug."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span>
                                    <span class="p">}</span>
                                <span class="p">}</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"images"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"List of images."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span><span class="p">,</span>
                                <span class="s2">"properties"</span><span class="p">:</span> <span class="p">{</span>
                                    <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Image ID."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"date_created"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"The date the image was created, in the site's timezone."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span>
                                    <span class="p">},</span>
                                    <span class="s2">"date_created_gmt"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"The date the image was created, as GMT."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span>
                                    <span class="p">},</span>
                                    <span class="s2">"date_modified"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"The date the image was last modified, in the site's timezone."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span>
                                    <span class="p">},</span>
                                    <span class="s2">"date_modified_gmt"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"The date the image was last modified, as GMT."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span>
                                    <span class="p">},</span>
                                    <span class="s2">"src"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Image URL."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"format"</span><span class="p">:</span> <span class="s2">"uri"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"name"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Image name."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"alt"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Image alternative text."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">}</span>
                                <span class="p">}</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"attributes"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"List of attributes."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span><span class="p">,</span>
                                <span class="s2">"properties"</span><span class="p">:</span> <span class="p">{</span>
                                    <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Attribute ID."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"name"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Attribute name."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"position"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Attribute position."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"visible"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Define if the attribute is visible on the </span><span class="se">"</span><span class="s2">Additional information</span><span class="se">"</span><span class="s2"> tab in the product's page."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span><span class="p">,</span>
                                        <span class="s2">"default"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"variation"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Define if the attribute can be used as variation."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span><span class="p">,</span>
                                        <span class="s2">"default"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"options"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"List of available term names of the attribute."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                                        <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                                        <span class="p">},</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">}</span>
                                <span class="p">}</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"default_attributes"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Defaults variation attributes."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span><span class="p">,</span>
                                <span class="s2">"properties"</span><span class="p">:</span> <span class="p">{</span>
                                    <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Attribute ID."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"name"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Attribute name."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"option"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Selected attribute term name."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">}</span>
                                <span class="p">}</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"menu_order"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Menu order, used to custom sort products."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"meta_data"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Meta data."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span><span class="p">,</span>
                                <span class="s2">"properties"</span><span class="p">:</span> <span class="p">{</span>
                                    <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Meta ID."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span>
                                    <span class="p">},</span>
                                    <span class="s2">"key"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Meta key."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"value"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Meta value."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"mixed"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">}</span>
                                <span class="p">}</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"apply_adjacent_buffer"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Apply adjacent buffers."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"availability"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Availability rules defined on product level."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span><span class="p">,</span>
                                <span class="s2">"properties"</span><span class="p">:</span> <span class="p">{</span>
                                    <span class="s2">"type"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Availability type."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"from"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Starting month/day/week inclusive."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"to"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Ending month/day/week inclusive."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"from_date"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Starting day if 'from' is a time.,"</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"to_date"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Ending day if 'to' is a time."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"bookable"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Rule marks things as bookable or not, 'yes' or 'no'."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"priority"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Priority of rule."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">}</span>
                                <span class="p">}</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"block_cost"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Base cost of each block."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"number"</span>
                        <span class="p">},</span>
                        <span class="s2">"buffer_period"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Required buffer Period between bookings."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"calendar_display_mode"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">""</span><span class="p">,</span>
                                <span class="s2">"always_visible"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"How the calendar will display on the product page. Valid values are 'always_visible' or ''."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"cancel_limit_unit"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"month"</span><span class="p">,</span>
                                <span class="s2">"day"</span><span class="p">,</span>
                                <span class="s2">"hour"</span><span class="p">,</span>
                                <span class="s2">"minute"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"The unit limit is defined in. Valid values are 'month', 'day', 'hour', and 'minute'."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"cancel_limit"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"How many limit units in advance users are allowed to cancel bookings."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"check_start_block_only"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"If true only the first block in checked for availability."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"cost"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product cost."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"number"</span>
                        <span class="p">},</span>
                        <span class="s2">"default_date_availability"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">""</span><span class="p">,</span>
                                <span class="s2">"available"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"If 'available' product is bookable unless made unbookable by availability rules."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"display_cost"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product cost displayed."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"duration_type"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"customer"</span><span class="p">,</span>
                                <span class="s2">"fixed"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"How duration is defined."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"duration_unit"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"month"</span><span class="p">,</span>
                                <span class="s2">"day"</span><span class="p">,</span>
                                <span class="s2">"hour"</span><span class="p">,</span>
                                <span class="s2">"minute"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Unit duration is defined in."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"duration"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Size in duration units of each block."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"enable_range_picker"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Customer can pick a range of days on calendar."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"first_block_time"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Time of day first block starts."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"has_person_cost_multiplier"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Will multiply cost by number of persons."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"has_person_qty_multiplier"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Each person counts as a booking."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"has_person_types"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product has different types of persons."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"has_persons"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product has persons defined."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"has_resources"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product has resources defined."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"has_restricted_days"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product has restricted days."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"max_date"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Max date value combined with max date unit."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"max_date_value"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Max amount af max_date_units into the future a block is bookable."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"max_date_unit"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"month"</span><span class="p">,</span>
                                <span class="s2">"day"</span><span class="p">,</span>
                                <span class="s2">"hour"</span><span class="p">,</span>
                                <span class="s2">"week"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Units for max_date_value."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"min_date"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Min date value combined with min date unit."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"min_date_value"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Min amount af min_date_units into the future a block is bookable."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"min_date_unit"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"month"</span><span class="p">,</span>
                                <span class="s2">"day"</span><span class="p">,</span>
                                <span class="s2">"hour"</span><span class="p">,</span>
                                <span class="s2">"week"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Units for min_date_value."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"max_duration"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Max duration of units a booking can be."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"min_duration"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Min duration of units a booking can be."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"max_persons"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Max persons which can be booked per booking."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"min_persons"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Min persons which can be booked per booking."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"pricing"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Pricing rules."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span><span class="p">,</span>
                                <span class="s2">"properties"</span><span class="p">:</span> <span class="p">{</span>
                                    <span class="s2">"type"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Date range type."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"from"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Starting month/day/week inclusive."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"to"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Ending month/day/week inclusive."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"from_date"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Starting day if 'from' is a time.,"</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"to_date"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Ending day if 'to' is a time."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"modifier"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"How the block cost should be modified."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"+"</span><span class="p">,</span>
                                            <span class="s2">"minus"</span><span class="p">,</span>
                                            <span class="s2">"times"</span><span class="p">,</span>
                                            <span class="s2">"divide"</span><span class="p">,</span>
                                            <span class="s2">"equals"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"cost"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Block cost."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"number"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"base_modifier"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"How the base cost should be modified."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"+"</span><span class="p">,</span>
                                            <span class="s2">"minus"</span><span class="p">,</span>
                                            <span class="s2">"times"</span><span class="p">,</span>
                                            <span class="s2">"divide"</span><span class="p">,</span>
                                            <span class="s2">"equals"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"base_cost"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Base cost."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"number"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"priority"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Priority of rule."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">}</span>
                                <span class="p">}</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"qty"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Max bookings per block."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"requires_confirmation"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Booking require confirmation."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"restricted_days"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Days days of week bookings cannot start. Array of numeric day indexes with 0 being Sunday."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                    <span class="mi">0</span><span class="p">,</span>
                                    <span class="mi">1</span><span class="p">,</span>
                                    <span class="mi">2</span><span class="p">,</span>
                                    <span class="mi">3</span><span class="p">,</span>
                                    <span class="mi">4</span><span class="p">,</span>
                                    <span class="mi">5</span><span class="p">,</span>
                                    <span class="mi">6</span>
                                <span class="p">]</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"can_be_cancelled"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Booking can be cancelled by customer."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">},</span>
                <span class="p">{</span>
                    <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                        <span class="s2">"DELETE"</span>
                    <span class="p">],</span>
                    <span class="s2">"args"</span><span class="p">:</span> <span class="p">{</span>
                        <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Unique identifier for the resource."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"force"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Whether to bypass trash and force deletion."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">]</span>
        <span class="p">},</span>
        <span class="s2">"/wc-bookings/v1/products/batch"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"namespace"</span><span class="p">:</span> <span class="s2">"wc-bookings/v1"</span><span class="p">,</span>
            <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                <span class="s2">"POST"</span><span class="p">,</span>
                <span class="s2">"PUT"</span><span class="p">,</span>
                <span class="s2">"PATCH"</span>
            <span class="p">],</span>
            <span class="s2">"endpoints"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                        <span class="s2">"POST"</span><span class="p">,</span>
                        <span class="s2">"PUT"</span><span class="p">,</span>
                        <span class="s2">"PATCH"</span>
                    <span class="p">],</span>
                    <span class="s2">"args"</span><span class="p">:</span> <span class="p">{</span>
                        <span class="s2">"name"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product name."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"slug"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product slug."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"date_created"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"The date the product was created, in the site's timezone."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span>
                        <span class="p">},</span>
                        <span class="s2">"date_created_gmt"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"The date the product was created, as GMT."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span>
                        <span class="p">},</span>
                        <span class="s2">"type"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"simple"</span><span class="p">,</span>
                                <span class="s2">"grouped"</span><span class="p">,</span>
                                <span class="s2">"external"</span><span class="p">,</span>
                                <span class="s2">"variable"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product type."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"status"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"draft"</span><span class="p">,</span>
                                <span class="s2">"pending"</span><span class="p">,</span>
                                <span class="s2">"private"</span><span class="p">,</span>
                                <span class="s2">"publish"</span><span class="p">,</span>
                                <span class="s2">"future"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product status (post status)."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"featured"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Featured product."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"catalog_visibility"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"visible"</span><span class="p">,</span>
                                <span class="s2">"catalog"</span><span class="p">,</span>
                                <span class="s2">"search"</span><span class="p">,</span>
                                <span class="s2">"hidden"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Catalog visibility."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"description"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product description."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"short_description"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product short description."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"sku"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Unique identifier."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"regular_price"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product regular price."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"sale_price"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product sale price."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"date_on_sale_from"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Start date of sale price, in the site's timezone."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span>
                        <span class="p">},</span>
                        <span class="s2">"date_on_sale_from_gmt"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Start date of sale price, as GMT."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span>
                        <span class="p">},</span>
                        <span class="s2">"date_on_sale_to"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"End date of sale price, in the site's timezone."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span>
                        <span class="p">},</span>
                        <span class="s2">"date_on_sale_to_gmt"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"End date of sale price, in the site's timezone."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span>
                        <span class="p">},</span>
                        <span class="s2">"virtual"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"If the product is virtual."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"downloadable"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"If the product is downloadable."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"downloads"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"List of downloadable files."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span><span class="p">,</span>
                                <span class="s2">"properties"</span><span class="p">:</span> <span class="p">{</span>
                                    <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"File ID."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"name"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"File name."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"file"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"File URL."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">}</span>
                                <span class="p">}</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"download_limit"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Number of times downloadable files can be downloaded after purchase."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"download_expiry"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Number of days until access to downloadable files expires."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"external_url"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product external URL. Only for external products."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"button_text"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product external button text. Only for external products."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"tax_status"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"taxable"</span><span class="p">,</span>
                                <span class="s2">"shipping"</span><span class="p">,</span>
                                <span class="s2">"none"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Tax status."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"tax_class"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Tax class."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"manage_stock"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Stock management at product level."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"stock_quantity"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Stock quantity."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"stock_status"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"instock"</span><span class="p">,</span>
                                <span class="s2">"outofstock"</span><span class="p">,</span>
                                <span class="s2">"onbackorder"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Controls the stock status of the product."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"backorders"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"no"</span><span class="p">,</span>
                                <span class="s2">"notify"</span><span class="p">,</span>
                                <span class="s2">"yes"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"If managing stock, this controls if backorders are allowed."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"sold_individually"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Allow one item to be bought in a single order."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"weight"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product weight (oz)."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"dimensions"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product dimensions."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span>
                        <span class="p">},</span>
                        <span class="s2">"shipping_class"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Shipping class slug."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"reviews_allowed"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Allow reviews."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"upsell_ids"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"List of up-sell products IDs."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"cross_sell_ids"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"List of cross-sell products IDs."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"parent_id"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product parent ID."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"purchase_note"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Optional note to send the customer after purchase."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"categories"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"List of categories."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span><span class="p">,</span>
                                <span class="s2">"properties"</span><span class="p">:</span> <span class="p">{</span>
                                    <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Category ID."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"name"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Category name."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span>
                                    <span class="p">},</span>
                                    <span class="s2">"slug"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Category slug."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span>
                                    <span class="p">}</span>
                                <span class="p">}</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"tags"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"List of tags."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span><span class="p">,</span>
                                <span class="s2">"properties"</span><span class="p">:</span> <span class="p">{</span>
                                    <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Tag ID."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"name"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Tag name."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span>
                                    <span class="p">},</span>
                                    <span class="s2">"slug"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Tag slug."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span>
                                    <span class="p">}</span>
                                <span class="p">}</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"images"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"List of images."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span><span class="p">,</span>
                                <span class="s2">"properties"</span><span class="p">:</span> <span class="p">{</span>
                                    <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Image ID."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"date_created"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"The date the image was created, in the site's timezone."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span>
                                    <span class="p">},</span>
                                    <span class="s2">"date_created_gmt"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"The date the image was created, as GMT."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span>
                                    <span class="p">},</span>
                                    <span class="s2">"date_modified"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"The date the image was last modified, in the site's timezone."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span>
                                    <span class="p">},</span>
                                    <span class="s2">"date_modified_gmt"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"The date the image was last modified, as GMT."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"date-time"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span>
                                    <span class="p">},</span>
                                    <span class="s2">"src"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Image URL."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"format"</span><span class="p">:</span> <span class="s2">"uri"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"name"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Image name."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"alt"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Image alternative text."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">}</span>
                                <span class="p">}</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"attributes"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"List of attributes."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span><span class="p">,</span>
                                <span class="s2">"properties"</span><span class="p">:</span> <span class="p">{</span>
                                    <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Attribute ID."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"name"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Attribute name."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"position"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Attribute position."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"visible"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Define if the attribute is visible on the </span><span class="se">"</span><span class="s2">Additional information</span><span class="se">"</span><span class="s2"> tab in the product's page."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span><span class="p">,</span>
                                        <span class="s2">"default"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"variation"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Define if the attribute can be used as variation."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span><span class="p">,</span>
                                        <span class="s2">"default"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"options"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"List of available term names of the attribute."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                                        <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                                        <span class="p">},</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">}</span>
                                <span class="p">}</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"default_attributes"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Defaults variation attributes."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span><span class="p">,</span>
                                <span class="s2">"properties"</span><span class="p">:</span> <span class="p">{</span>
                                    <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Attribute ID."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"name"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Attribute name."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"option"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Selected attribute term name."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">}</span>
                                <span class="p">}</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"menu_order"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Menu order, used to custom sort products."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"meta_data"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Meta data."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span><span class="p">,</span>
                                <span class="s2">"properties"</span><span class="p">:</span> <span class="p">{</span>
                                    <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Meta ID."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span>
                                    <span class="p">},</span>
                                    <span class="s2">"key"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Meta key."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"value"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Meta value."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"mixed"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">}</span>
                                <span class="p">}</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"apply_adjacent_buffer"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Apply adjacent buffers."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"availability"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Availability rules defined on product level."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span><span class="p">,</span>
                                <span class="s2">"properties"</span><span class="p">:</span> <span class="p">{</span>
                                    <span class="s2">"type"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Availability type."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"from"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Starting month/day/week inclusive."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"to"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Ending month/day/week inclusive."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"from_date"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Starting day if 'from' is a time.,"</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"to_date"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Ending day if 'to' is a time."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"bookable"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Rule marks things as bookable or not, 'yes' or 'no'."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"priority"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Priority of rule."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">}</span>
                                <span class="p">}</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"block_cost"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Base cost of each block."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"number"</span>
                        <span class="p">},</span>
                        <span class="s2">"buffer_period"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Required buffer Period between bookings."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"calendar_display_mode"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">""</span><span class="p">,</span>
                                <span class="s2">"always_visible"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"How the calendar will display on the product page. Valid values are 'always_visible' or ''."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"cancel_limit_unit"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"month"</span><span class="p">,</span>
                                <span class="s2">"day"</span><span class="p">,</span>
                                <span class="s2">"hour"</span><span class="p">,</span>
                                <span class="s2">"minute"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"The unit limit is defined in. Valid values are 'month', 'day', 'hour', and 'minute'."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"cancel_limit"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"How many limit units in advance users are allowed to cancel bookings."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"check_start_block_only"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"If true only the first block in checked for availability."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"cost"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product cost."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"number"</span>
                        <span class="p">},</span>
                        <span class="s2">"default_date_availability"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">""</span><span class="p">,</span>
                                <span class="s2">"available"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"If 'available' product is bookable unless made unbookable by availability rules."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"display_cost"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product cost displayed."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"duration_type"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"customer"</span><span class="p">,</span>
                                <span class="s2">"fixed"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"How duration is defined."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"duration_unit"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"month"</span><span class="p">,</span>
                                <span class="s2">"day"</span><span class="p">,</span>
                                <span class="s2">"hour"</span><span class="p">,</span>
                                <span class="s2">"minute"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Unit duration is defined in."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"duration"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Size in duration units of each block."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"enable_range_picker"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Customer can pick a range of days on calendar."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"first_block_time"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Time of day first block starts."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"has_person_cost_multiplier"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Will multiply cost by number of persons."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"has_person_qty_multiplier"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Each person counts as a booking."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"has_person_types"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product has different types of persons."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"has_persons"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product has persons defined."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"has_resources"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product has resources defined."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"has_restricted_days"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Product has restricted days."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"max_date"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Max date value combined with max date unit."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"max_date_value"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Max amount af max_date_units into the future a block is bookable."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"max_date_unit"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"month"</span><span class="p">,</span>
                                <span class="s2">"day"</span><span class="p">,</span>
                                <span class="s2">"hour"</span><span class="p">,</span>
                                <span class="s2">"week"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Units for max_date_value."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"min_date"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Min date value combined with min date unit."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"min_date_value"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Min amount af min_date_units into the future a block is bookable."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"min_date_unit"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"month"</span><span class="p">,</span>
                                <span class="s2">"day"</span><span class="p">,</span>
                                <span class="s2">"hour"</span><span class="p">,</span>
                                <span class="s2">"week"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Units for min_date_value."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"max_duration"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Max duration of units a booking can be."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"min_duration"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Min duration of units a booking can be."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"max_persons"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Max persons which can be booked per booking."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"min_persons"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Min persons which can be booked per booking."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"pricing"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Pricing rules."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span><span class="p">,</span>
                                <span class="s2">"properties"</span><span class="p">:</span> <span class="p">{</span>
                                    <span class="s2">"type"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Date range type."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"from"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Starting month/day/week inclusive."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"to"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Ending month/day/week inclusive."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"from_date"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Starting day if 'from' is a time.,"</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"to_date"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Ending day if 'to' is a time."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"modifier"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"How the block cost should be modified."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"+"</span><span class="p">,</span>
                                            <span class="s2">"minus"</span><span class="p">,</span>
                                            <span class="s2">"times"</span><span class="p">,</span>
                                            <span class="s2">"divide"</span><span class="p">,</span>
                                            <span class="s2">"equals"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"cost"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Block cost."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"number"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"base_modifier"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"How the base cost should be modified."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                        <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"+"</span><span class="p">,</span>
                                            <span class="s2">"minus"</span><span class="p">,</span>
                                            <span class="s2">"times"</span><span class="p">,</span>
                                            <span class="s2">"divide"</span><span class="p">,</span>
                                            <span class="s2">"equals"</span>
                                        <span class="p">],</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"base_cost"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Base cost."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"number"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">},</span>
                                    <span class="s2">"priority"</span><span class="p">:</span> <span class="p">{</span>
                                        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Priority of rule."</span><span class="p">,</span>
                                        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                            <span class="s2">"view"</span><span class="p">,</span>
                                            <span class="s2">"edit"</span>
                                        <span class="p">]</span>
                                    <span class="p">}</span>
                                <span class="p">}</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"qty"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Max bookings per block."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"requires_confirmation"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Booking require confirmation."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"restricted_days"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Days days of week bookings cannot start. Array of numeric day indexes with 0 being Sunday."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span><span class="p">,</span>
                                <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                    <span class="mi">0</span><span class="p">,</span>
                                    <span class="mi">1</span><span class="p">,</span>
                                    <span class="mi">2</span><span class="p">,</span>
                                    <span class="mi">3</span><span class="p">,</span>
                                    <span class="mi">4</span><span class="p">,</span>
                                    <span class="mi">5</span><span class="p">,</span>
                                    <span class="mi">6</span>
                                <span class="p">]</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"can_be_cancelled"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Booking can be cancelled by customer."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">],</span>
            <span class="s2">"_links"</span><span class="p">:</span> <span class="p">{</span>
                <span class="s2">"self"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/products/batch"</span>
            <span class="p">}</span>
        <span class="p">},</span>
        <span class="s2">"/wc-bookings/v1/products/categories"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"namespace"</span><span class="p">:</span> <span class="s2">"wc-bookings/v1"</span><span class="p">,</span>
            <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                <span class="s2">"GET"</span><span class="p">,</span>
                <span class="s2">"POST"</span>
            <span class="p">],</span>
            <span class="s2">"endpoints"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                        <span class="s2">"GET"</span>
                    <span class="p">],</span>
                    <span class="s2">"args"</span><span class="p">:</span> <span class="p">{</span>
                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="s2">"view"</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"view"</span><span class="p">,</span>
                                <span class="s2">"edit"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Scope under which the request is made; determines fields present in response."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"page"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Current page of the collection."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"per_page"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="mi">10</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Maximum number of items to be returned in result set."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"search"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit results to those matching a string."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"exclude"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="p">[],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Ensure result set excludes specific IDs."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"include"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="p">[],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit result set to specific ids."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"order"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="s2">"asc"</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"asc"</span><span class="p">,</span>
                                <span class="s2">"desc"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Order sort attribute ascending or descending."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"orderby"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="s2">"name"</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"id"</span><span class="p">,</span>
                                <span class="s2">"include"</span><span class="p">,</span>
                                <span class="s2">"name"</span><span class="p">,</span>
                                <span class="s2">"slug"</span><span class="p">,</span>
                                <span class="s2">"term_group"</span><span class="p">,</span>
                                <span class="s2">"description"</span><span class="p">,</span>
                                <span class="s2">"count"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Sort collection by resource attribute."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"hide_empty"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Whether to hide resources not assigned to any products."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">},</span>
                        <span class="s2">"parent"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit result set to resources assigned to a specific parent."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"product"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit result set to resources assigned to a specific product."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"slug"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit result set to resources with a specific slug."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">},</span>
                <span class="p">{</span>
                    <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                        <span class="s2">"POST"</span>
                    <span class="p">],</span>
                    <span class="s2">"args"</span><span class="p">:</span> <span class="p">{</span>
                        <span class="s2">"name"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Name for the resource."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"slug"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"An alphanumeric identifier for the resource unique to its type."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"parent"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"The ID for the parent of the resource."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"description"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"HTML description of the resource."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"display"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="s2">"default"</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"default"</span><span class="p">,</span>
                                <span class="s2">"products"</span><span class="p">,</span>
                                <span class="s2">"subcategories"</span><span class="p">,</span>
                                <span class="s2">"both"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Category archive display type."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"image"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Image data."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span>
                        <span class="p">},</span>
                        <span class="s2">"menu_order"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Menu order, used to custom sort the resource."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">],</span>
            <span class="s2">"_links"</span><span class="p">:</span> <span class="p">{</span>
                <span class="s2">"self"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/products/categories"</span>
            <span class="p">}</span>
        <span class="p">},</span>
        <span class="s2">"/wc-bookings/v1/products/categories/(?P&lt;id&gt;[</span><span class="se">\</span><span class="s2">d]+)"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"namespace"</span><span class="p">:</span> <span class="s2">"wc-bookings/v1"</span><span class="p">,</span>
            <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                <span class="s2">"GET"</span><span class="p">,</span>
                <span class="s2">"POST"</span><span class="p">,</span>
                <span class="s2">"PUT"</span><span class="p">,</span>
                <span class="s2">"PATCH"</span><span class="p">,</span>
                <span class="s2">"DELETE"</span>
            <span class="p">],</span>
            <span class="s2">"endpoints"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                        <span class="s2">"GET"</span>
                    <span class="p">],</span>
                    <span class="s2">"args"</span><span class="p">:</span> <span class="p">{</span>
                        <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Unique identifier for the resource."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="s2">"view"</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"view"</span><span class="p">,</span>
                                <span class="s2">"edit"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Scope under which the request is made; determines fields present in response."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">},</span>
                <span class="p">{</span>
                    <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                        <span class="s2">"POST"</span><span class="p">,</span>
                        <span class="s2">"PUT"</span><span class="p">,</span>
                        <span class="s2">"PATCH"</span>
                    <span class="p">],</span>
                    <span class="s2">"args"</span><span class="p">:</span> <span class="p">{</span>
                        <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Unique identifier for the resource."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"name"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Category name."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"slug"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"An alphanumeric identifier for the resource unique to its type."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"parent"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"The ID for the parent of the resource."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"description"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"HTML description of the resource."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"display"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"default"</span><span class="p">,</span>
                                <span class="s2">"products"</span><span class="p">,</span>
                                <span class="s2">"subcategories"</span><span class="p">,</span>
                                <span class="s2">"both"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Category archive display type."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"image"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Image data."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span>
                        <span class="p">},</span>
                        <span class="s2">"menu_order"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Menu order, used to custom sort the resource."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">},</span>
                <span class="p">{</span>
                    <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                        <span class="s2">"DELETE"</span>
                    <span class="p">],</span>
                    <span class="s2">"args"</span><span class="p">:</span> <span class="p">{</span>
                        <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Unique identifier for the resource."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"force"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Required to be true, as resource does not support trashing."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">]</span>
        <span class="p">},</span>
        <span class="s2">"/wc-bookings/v1/products/categories/batch"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"namespace"</span><span class="p">:</span> <span class="s2">"wc-bookings/v1"</span><span class="p">,</span>
            <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                <span class="s2">"POST"</span><span class="p">,</span>
                <span class="s2">"PUT"</span><span class="p">,</span>
                <span class="s2">"PATCH"</span>
            <span class="p">],</span>
            <span class="s2">"endpoints"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                        <span class="s2">"POST"</span><span class="p">,</span>
                        <span class="s2">"PUT"</span><span class="p">,</span>
                        <span class="s2">"PATCH"</span>
                    <span class="p">],</span>
                    <span class="s2">"args"</span><span class="p">:</span> <span class="p">{</span>
                        <span class="s2">"name"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Category name."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"slug"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"An alphanumeric identifier for the resource unique to its type."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"parent"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"The ID for the parent of the resource."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"description"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"HTML description of the resource."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"display"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"default"</span><span class="p">,</span>
                                <span class="s2">"products"</span><span class="p">,</span>
                                <span class="s2">"subcategories"</span><span class="p">,</span>
                                <span class="s2">"both"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Category archive display type."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"image"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Image data."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"object"</span>
                        <span class="p">},</span>
                        <span class="s2">"menu_order"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Menu order, used to custom sort the resource."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">],</span>
            <span class="s2">"_links"</span><span class="p">:</span> <span class="p">{</span>
                <span class="s2">"self"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/products/categories/batch"</span>
            <span class="p">}</span>
        <span class="p">},</span>
        <span class="s2">"/wc-bookings/v1/resources"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"namespace"</span><span class="p">:</span> <span class="s2">"wc-bookings/v1"</span><span class="p">,</span>
            <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                <span class="s2">"GET"</span><span class="p">,</span>
                <span class="s2">"POST"</span>
            <span class="p">],</span>
            <span class="s2">"endpoints"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                        <span class="s2">"GET"</span>
                    <span class="p">],</span>
                    <span class="s2">"args"</span><span class="p">:</span> <span class="p">{</span>
                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="s2">"view"</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"view"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Scope under which the request is made; determines fields present in response."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"page"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Current page of the collection."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"per_page"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="mi">10</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Maximum number of items to be returned in result set."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"search"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit results to those matching a string."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"after"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit response to resources published after a given ISO8601 compliant date."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"before"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit response to resources published before a given ISO8601 compliant date."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"exclude"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="p">[],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Ensure result set excludes specific IDs."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"include"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="p">[],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit result set to specific ids."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"offset"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Offset the result set by a specific number of items."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"order"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="s2">"desc"</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"asc"</span><span class="p">,</span>
                                <span class="s2">"desc"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Order sort attribute ascending or descending."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"orderby"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="s2">"date"</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"date"</span><span class="p">,</span>
                                <span class="s2">"id"</span><span class="p">,</span>
                                <span class="s2">"include"</span><span class="p">,</span>
                                <span class="s2">"title"</span><span class="p">,</span>
                                <span class="s2">"slug"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Sort collection by object attribute."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">},</span>
                <span class="p">{</span>
                    <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                        <span class="s2">"POST"</span>
                    <span class="p">],</span>
                    <span class="s2">"args"</span><span class="p">:</span> <span class="p">{</span>
                        <span class="s2">"availability"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Availability date/time range type string."</span><span class="p">,</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
                                <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                    <span class="s2">"view"</span>
                                <span class="p">]</span>
                            <span class="p">}</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">],</span>
            <span class="s2">"_links"</span><span class="p">:</span> <span class="p">{</span>
                <span class="s2">"self"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/resources"</span>
            <span class="p">}</span>
        <span class="p">},</span>
        <span class="s2">"/wc-bookings/v1/resources/(?P&lt;id&gt;[</span><span class="se">\</span><span class="s2">d]+)"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"namespace"</span><span class="p">:</span> <span class="s2">"wc-bookings/v1"</span><span class="p">,</span>
            <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                <span class="s2">"GET"</span><span class="p">,</span>
                <span class="s2">"POST"</span><span class="p">,</span>
                <span class="s2">"PUT"</span><span class="p">,</span>
                <span class="s2">"PATCH"</span><span class="p">,</span>
                <span class="s2">"DELETE"</span>
            <span class="p">],</span>
            <span class="s2">"endpoints"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                        <span class="s2">"GET"</span>
                    <span class="p">],</span>
                    <span class="s2">"args"</span><span class="p">:</span> <span class="p">{</span>
                        <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Unique identifier for the resource."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="s2">"view"</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"view"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Scope under which the request is made; determines fields present in response."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">},</span>
                <span class="p">{</span>
                    <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                        <span class="s2">"POST"</span><span class="p">,</span>
                        <span class="s2">"PUT"</span><span class="p">,</span>
                        <span class="s2">"PATCH"</span>
                    <span class="p">],</span>
                    <span class="s2">"args"</span><span class="p">:</span> <span class="p">{</span>
                        <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Unique identifier for the resource."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"availability"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Availability date/time range type string."</span><span class="p">,</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
                                <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                    <span class="s2">"view"</span>
                                <span class="p">]</span>
                            <span class="p">}</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">},</span>
                <span class="p">{</span>
                    <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                        <span class="s2">"DELETE"</span>
                    <span class="p">],</span>
                    <span class="s2">"args"</span><span class="p">:</span> <span class="p">{</span>
                        <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Unique identifier for the resource."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"force"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Whether to bypass trash and force deletion."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">]</span>
        <span class="p">},</span>
        <span class="s2">"/wc-bookings/v1/resources/batch"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"namespace"</span><span class="p">:</span> <span class="s2">"wc-bookings/v1"</span><span class="p">,</span>
            <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                <span class="s2">"POST"</span><span class="p">,</span>
                <span class="s2">"PUT"</span><span class="p">,</span>
                <span class="s2">"PATCH"</span>
            <span class="p">],</span>
            <span class="s2">"endpoints"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                        <span class="s2">"POST"</span><span class="p">,</span>
                        <span class="s2">"PUT"</span><span class="p">,</span>
                        <span class="s2">"PATCH"</span>
                    <span class="p">],</span>
                    <span class="s2">"args"</span><span class="p">:</span> <span class="p">{</span>
                        <span class="s2">"availability"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Availability date/time range type string."</span><span class="p">,</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span><span class="p">,</span>
                                <span class="s2">"readonly"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
                                <span class="s2">"context"</span><span class="p">:</span> <span class="p">[</span>
                                    <span class="s2">"view"</span>
                                <span class="p">]</span>
                            <span class="p">}</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">],</span>
            <span class="s2">"_links"</span><span class="p">:</span> <span class="p">{</span>
                <span class="s2">"self"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/resources/batch"</span>
            <span class="p">}</span>
        <span class="p">},</span>
        <span class="s2">"/wc-bookings/v1/bookings"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"namespace"</span><span class="p">:</span> <span class="s2">"wc-bookings/v1"</span><span class="p">,</span>
            <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                <span class="s2">"GET"</span><span class="p">,</span>
                <span class="s2">"POST"</span>
            <span class="p">],</span>
            <span class="s2">"endpoints"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                        <span class="s2">"GET"</span>
                    <span class="p">],</span>
                    <span class="s2">"args"</span><span class="p">:</span> <span class="p">{</span>
                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="s2">"view"</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Scope under which the request is made; determines fields present in response."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"page"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Current page of the collection."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"per_page"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="mi">10</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Maximum number of items to be returned in result set."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"search"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit results to those matching a string."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"after"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit response to resources published after a given ISO8601 compliant date."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"before"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit response to resources published before a given ISO8601 compliant date."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"exclude"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="p">[],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Ensure result set excludes specific IDs."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"include"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="p">[],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Limit result set to specific ids."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"array"</span><span class="p">,</span>
                            <span class="s2">"items"</span><span class="p">:</span> <span class="p">{</span>
                                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                            <span class="p">}</span>
                        <span class="p">},</span>
                        <span class="s2">"offset"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Offset the result set by a specific number of items."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"order"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="s2">"desc"</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"asc"</span><span class="p">,</span>
                                <span class="s2">"desc"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Order sort attribute ascending or descending."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">},</span>
                        <span class="s2">"orderby"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="s2">"date"</span><span class="p">,</span>
                            <span class="s2">"enum"</span><span class="p">:</span> <span class="p">[</span>
                                <span class="s2">"date"</span><span class="p">,</span>
                                <span class="s2">"id"</span><span class="p">,</span>
                                <span class="s2">"include"</span><span class="p">,</span>
                                <span class="s2">"title"</span><span class="p">,</span>
                                <span class="s2">"slug"</span>
                            <span class="p">],</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Sort collection by object attribute."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">},</span>
                <span class="p">{</span>
                    <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                        <span class="s2">"POST"</span>
                    <span class="p">],</span>
                    <span class="s2">"args"</span><span class="p">:</span> <span class="p">[]</span>
                <span class="p">}</span>
            <span class="p">],</span>
            <span class="s2">"_links"</span><span class="p">:</span> <span class="p">{</span>
                <span class="s2">"self"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/bookings"</span>
            <span class="p">}</span>
        <span class="p">},</span>
        <span class="s2">"/wc-bookings/v1/bookings/(?P&lt;id&gt;[</span><span class="se">\</span><span class="s2">d]+)"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"namespace"</span><span class="p">:</span> <span class="s2">"wc-bookings/v1"</span><span class="p">,</span>
            <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                <span class="s2">"GET"</span><span class="p">,</span>
                <span class="s2">"POST"</span><span class="p">,</span>
                <span class="s2">"PUT"</span><span class="p">,</span>
                <span class="s2">"PATCH"</span><span class="p">,</span>
                <span class="s2">"DELETE"</span>
            <span class="p">],</span>
            <span class="s2">"endpoints"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                        <span class="s2">"GET"</span>
                    <span class="p">],</span>
                    <span class="s2">"args"</span><span class="p">:</span> <span class="p">{</span>
                        <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Unique identifier for the resource."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"context"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="s2">"view"</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Scope under which the request is made; determines fields present in response."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"string"</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">},</span>
                <span class="p">{</span>
                    <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                        <span class="s2">"POST"</span><span class="p">,</span>
                        <span class="s2">"PUT"</span><span class="p">,</span>
                        <span class="s2">"PATCH"</span>
                    <span class="p">],</span>
                    <span class="s2">"args"</span><span class="p">:</span> <span class="p">{</span>
                        <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Unique identifier for the resource."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">},</span>
                <span class="p">{</span>
                    <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                        <span class="s2">"DELETE"</span>
                    <span class="p">],</span>
                    <span class="s2">"args"</span><span class="p">:</span> <span class="p">{</span>
                        <span class="s2">"id"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Unique identifier for the resource."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"integer"</span>
                        <span class="p">},</span>
                        <span class="s2">"force"</span><span class="p">:</span> <span class="p">{</span>
                            <span class="s2">"required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"default"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
                            <span class="s2">"description"</span><span class="p">:</span> <span class="s2">"Whether to bypass trash and force deletion."</span><span class="p">,</span>
                            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"boolean"</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">]</span>
        <span class="p">},</span>
        <span class="s2">"/wc-bookings/v1/bookings/batch"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"namespace"</span><span class="p">:</span> <span class="s2">"wc-bookings/v1"</span><span class="p">,</span>
            <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                <span class="s2">"POST"</span><span class="p">,</span>
                <span class="s2">"PUT"</span><span class="p">,</span>
                <span class="s2">"PATCH"</span>
            <span class="p">],</span>
            <span class="s2">"endpoints"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                        <span class="s2">"POST"</span><span class="p">,</span>
                        <span class="s2">"PUT"</span><span class="p">,</span>
                        <span class="s2">"PATCH"</span>
                    <span class="p">],</span>
                    <span class="s2">"args"</span><span class="p">:</span> <span class="p">[]</span>
                <span class="p">}</span>
            <span class="p">],</span>
            <span class="s2">"_links"</span><span class="p">:</span> <span class="p">{</span>
                <span class="s2">"self"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/bookings/batch"</span>
            <span class="p">}</span>
        <span class="p">},</span>
        <span class="s2">"/wc-bookings/v1/products/slots"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"namespace"</span><span class="p">:</span> <span class="s2">"wc-bookings/v1"</span><span class="p">,</span>
            <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                <span class="s2">"GET"</span>
            <span class="p">],</span>
            <span class="s2">"endpoints"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"methods"</span><span class="p">:</span> <span class="p">[</span>
                        <span class="s2">"GET"</span>
                    <span class="p">],</span>
                    <span class="s2">"args"</span><span class="p">:</span> <span class="p">[]</span>
                <span class="p">}</span>
            <span class="p">],</span>
            <span class="s2">"_links"</span><span class="p">:</span> <span class="p">{</span>
                <span class="s2">"self"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/products/slots"</span>
            <span class="p">}</span>
        <span class="p">}</span>
    <span class="p">},</span>
    <span class="s2">"_links"</span><span class="p">:</span> <span class="p">{</span>
        <span class="s2">"up"</span><span class="p">:</span> <span class="p">[</span>
            <span class="p">{</span>
                <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/"</span>
            <span class="p">}</span>
        <span class="p">]</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre>
<h1 id="bookings">Bookings</h1>
<p>The Bookings API allows you to create, read, and delete individual bookings as well as list multiple bookings.</p>
<h2 id="booking-properties">Booking properties</h2>
<table>
<thead>
<tr>
<th>Attribute</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>id</code></td>
<td>integer</td>
<td>Unique identifier for the resource.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>all_day</code></td>
<td>boolean</td>
<td>A boolean describing if the booking is for an entire day.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>cost</code></td>
<td>string</td>
<td>Total booking cost.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>customer_id</code></td>
<td>integer</td>
<td>ID of customer that purchased the booking.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>date_created</code></td>
<td>integer</td>
<td>Timestamp of the time the booking was created.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>date_modified</code></td>
<td>integer</td>
<td>Timestamp of the time the booking was last updated.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>end</code></td>
<td>integer</td>
<td>Timestamp of the end time of the booking.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>google_calendar_event_id</code></td>
<td>string</td>
<td>A unique ID of a synced booking event to Google Calendar.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>order_id</code></td>
<td>integer</td>
<td>The order ID linked to the booking.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>order_item_id</code></td>
<td>integer</td>
<td>The unique order line item ID of the booking.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>parent_id</code></td>
<td>integer</td>
<td>The unique item ID of the parent post.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>person_counts</code></td>
<td>array</td>
<td>The number of persons by person type within the booking.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>product_id</code></td>
<td>integer</td>
<td>The unique product ID linked to the booking.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>resource_id</code></td>
<td>integer</td>
<td>The unique resource ID linked to the booking.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>start</code></td>
<td>integer</td>
<td>Timestamp of the start time of the booking.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>status</code></td>
<td>string</td>
<td>The current status of the booking.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>local_timezone</code></td>
<td>string</td>
<td>The local timezone used when the booking was purchased.<i class="label label-info">READ-ONLY</i></td>
</tr>
</tbody>
</table>
<h2 id="create-a-booking">Create a booking</h2>
<p>This API helps you to create a new booking.</p>
<h3 id="http-request">HTTP request</h3>
<div class="api-endpoint">
<div class="endpoint-data"><i class="label label-post">POST</i> </p>
<h6>/wp-json/wc-bookings/v1/bookings/</h6>
</div>
</div>
<blockquote>
<p>Example of creating a new booking:</p>
</blockquote>
<pre class="highlight shell tab-shell"><code>curl -X POST https://example.com/wp-json/wc-bookings/v1/bookings/ <span class="se"></span>
    -u consumer_key:consumer_secret <span class="se"></span>
    -H <span class="s2">"Content-Type: application/json"</span> <span class="se"></span>
    -d <span class="s1">'{
    "all_day": false,
    "cost": "300",
    "customer_id": 1,
    "date_created": 1587634157,
    "date_modified": 1587647729,
    "end": 1588534200,
    "order_item_id": 573,
    "parent_id": 0,
    "person_counts": [
        1
    ],
    "product_id": 655,
    "resource_id": 656,
    "start": 1588528800,
    "status": "publish",
    "local_timezone": "Europe/Berlin"
}'</span>
</code></pre>
<blockquote>
<p>JSON response example:</p>
</blockquote>
<pre class="highlight json tab-json"><code><span class="p">{</span>
    <span class="s2">"id"</span><span class="p">:</span> <span class="mi">688</span><span class="p">,</span>
    <span class="s2">"all_day"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"cost"</span><span class="p">:</span> <span class="s2">"0"</span><span class="p">,</span>
    <span class="s2">"customer_id"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"date_created"</span><span class="p">:</span> <span class="mi">1587666559</span><span class="p">,</span>
    <span class="s2">"date_modified"</span><span class="p">:</span> <span class="mi">1587666559</span><span class="p">,</span>
    <span class="s2">"end"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"google_calendar_event_id"</span><span class="p">:</span> <span class="s2">"0"</span><span class="p">,</span>
    <span class="s2">"order_id"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"order_item_id"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"parent_id"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"person_counts"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"product_id"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"resource_id"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"start"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"status"</span><span class="p">:</span> <span class="s2">"unpaid"</span><span class="p">,</span>
    <span class="s2">"local_timezone"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"_links"</span><span class="p">:</span> <span class="p">{</span>
        <span class="s2">"self"</span><span class="p">:</span> <span class="p">[</span>
            <span class="p">{</span>
                <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/bookings/688"</span>
            <span class="p">}</span>
        <span class="p">],</span>
        <span class="s2">"collection"</span><span class="p">:</span> <span class="p">[</span>
            <span class="p">{</span>
                <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/bookings"</span>
            <span class="p">}</span>
        <span class="p">]</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre>
<h2 id="retrieve-a-booking">Retrieve a booking</h2>
<p>This API helps you to view an existing booking.</p>
<h3 id="http-request-2">HTTP request</h3>
<div class="api-endpoint">
<div class="endpoint-data"><i class="label label-post">GET</i> </p>
<h6>/wp-json/wc-bookings/v1/bookings/&lt;id&gt;</h6>
</div>
</div>
<blockquote>
<p>Example of viewing a specific booking:</p>
</blockquote>
<pre class="highlight shell tab-shell"><code>curl https://example.com/wp-json/wc-bookings/v1/bookings/678 <span class="se"></span>
    -u consumer_key:consumer_secret <span class="se"></span>
</code></pre>
<blockquote>
<p>JSON response example:</p>
</blockquote>
<pre class="highlight json tab-json"><code><span class="p">{</span>
    <span class="s2">"id"</span><span class="p">:</span> <span class="mi">678</span><span class="p">,</span>
    <span class="s2">"all_day"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"cost"</span><span class="p">:</span> <span class="s2">"200"</span><span class="p">,</span>
    <span class="s2">"customer_id"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
    <span class="s2">"date_created"</span><span class="p">:</span> <span class="mi">1587634157</span><span class="p">,</span>
    <span class="s2">"date_modified"</span><span class="p">:</span> <span class="mi">1587634168</span><span class="p">,</span>
    <span class="s2">"end"</span><span class="p">:</span> <span class="mi">1588534200</span><span class="p">,</span>
    <span class="s2">"google_calendar_event_id"</span><span class="p">:</span> <span class="s2">"0"</span><span class="p">,</span>
    <span class="s2">"order_id"</span><span class="p">:</span> <span class="mi">679</span><span class="p">,</span>
    <span class="s2">"order_item_id"</span><span class="p">:</span> <span class="mi">573</span><span class="p">,</span>
    <span class="s2">"parent_id"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"person_counts"</span><span class="p">:</span> <span class="p">[</span>
        <span class="mi">1</span>
    <span class="p">],</span>
    <span class="s2">"product_id"</span><span class="p">:</span> <span class="mi">655</span><span class="p">,</span>
    <span class="s2">"resource_id"</span><span class="p">:</span> <span class="mi">656</span><span class="p">,</span>
    <span class="s2">"start"</span><span class="p">:</span> <span class="mi">1588528800</span><span class="p">,</span>
    <span class="s2">"status"</span><span class="p">:</span> <span class="s2">"paid"</span><span class="p">,</span>
    <span class="s2">"local_timezone"</span><span class="p">:</span> <span class="s2">"Europe/Berlin"</span><span class="p">,</span>
    <span class="s2">"_links"</span><span class="p">:</span> <span class="p">{</span>
        <span class="s2">"self"</span><span class="p">:</span> <span class="p">[</span>
            <span class="p">{</span>
                <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/bookings/678"</span>
            <span class="p">}</span>
        <span class="p">],</span>
        <span class="s2">"collection"</span><span class="p">:</span> <span class="p">[</span>
            <span class="p">{</span>
                <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/bookings"</span>
            <span class="p">}</span>
        <span class="p">]</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre>
<h2 id="list-all-bookings">List all bookings</h2>
<p>This API lets you retrieve and view all bookings made on the site.</p>
<h3 id="http-request-3">HTTP request</h3>
<div class="api-endpoint">
<div class="endpoint-data"><i class="label label-get">GET</i> </p>
<h6>/wp-json/wc-bookings/v1/bookings/</h6>
</div>
</div>
<pre class="highlight shell tab-shell"><code>curl https://example.com/wp-json/wc-bookings/v1/bookings/ <span class="se"></span>
    -u consumer_key:consumer_secret
</code></pre>
<blockquote>
<p>JSON response example:</p>
</blockquote>
<pre class="highlight json tab-json"><code><span class="p">[</span>
    <span class="p">{</span>
        <span class="s2">"id"</span><span class="p">:</span> <span class="mi">678</span><span class="p">,</span>
        <span class="s2">"all_day"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"cost"</span><span class="p">:</span> <span class="s2">"200"</span><span class="p">,</span>
        <span class="s2">"customer_id"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
        <span class="s2">"date_created"</span><span class="p">:</span> <span class="mi">1587634157</span><span class="p">,</span>
        <span class="s2">"date_modified"</span><span class="p">:</span> <span class="mi">1587634168</span><span class="p">,</span>
        <span class="s2">"end"</span><span class="p">:</span> <span class="mi">1588534200</span><span class="p">,</span>
        <span class="s2">"google_calendar_event_id"</span><span class="p">:</span> <span class="s2">"0"</span><span class="p">,</span>
        <span class="s2">"order_id"</span><span class="p">:</span> <span class="mi">679</span><span class="p">,</span>
        <span class="s2">"order_item_id"</span><span class="p">:</span> <span class="mi">573</span><span class="p">,</span>
        <span class="s2">"parent_id"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
        <span class="s2">"person_counts"</span><span class="p">:</span> <span class="p">[</span>
            <span class="mi">1</span>
        <span class="p">],</span>
        <span class="s2">"product_id"</span><span class="p">:</span> <span class="mi">655</span><span class="p">,</span>
        <span class="s2">"resource_id"</span><span class="p">:</span> <span class="mi">656</span><span class="p">,</span>
        <span class="s2">"start"</span><span class="p">:</span> <span class="mi">1588528800</span><span class="p">,</span>
        <span class="s2">"status"</span><span class="p">:</span> <span class="s2">"paid"</span><span class="p">,</span>
        <span class="s2">"local_timezone"</span><span class="p">:</span> <span class="s2">"Europe/Berlin"</span><span class="p">,</span>
        <span class="s2">"_links"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"self"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/bookings/678"</span>
                <span class="p">}</span>
            <span class="p">],</span>
            <span class="s2">"collection"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/bookings"</span>
                <span class="p">}</span>
            <span class="p">]</span>
        <span class="p">}</span>
    <span class="p">},</span>
    <span class="p">{</span>
        <span class="s2">"id"</span><span class="p">:</span> <span class="mi">677</span><span class="p">,</span>
        <span class="s2">"all_day"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"cost"</span><span class="p">:</span> <span class="s2">"200"</span><span class="p">,</span>
        <span class="s2">"customer_id"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
        <span class="s2">"date_created"</span><span class="p">:</span> <span class="mi">1587634151</span><span class="p">,</span>
        <span class="s2">"date_modified"</span><span class="p">:</span> <span class="mi">1587634167</span><span class="p">,</span>
        <span class="s2">"end"</span><span class="p">:</span> <span class="mi">1588455000</span><span class="p">,</span>
        <span class="s2">"google_calendar_event_id"</span><span class="p">:</span> <span class="s2">"0"</span><span class="p">,</span>
        <span class="s2">"order_id"</span><span class="p">:</span> <span class="mi">679</span><span class="p">,</span>
        <span class="s2">"order_item_id"</span><span class="p">:</span> <span class="mi">572</span><span class="p">,</span>
        <span class="s2">"parent_id"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
        <span class="s2">"person_counts"</span><span class="p">:</span> <span class="p">[</span>
            <span class="mi">1</span>
        <span class="p">],</span>
        <span class="s2">"product_id"</span><span class="p">:</span> <span class="mi">655</span><span class="p">,</span>
        <span class="s2">"resource_id"</span><span class="p">:</span> <span class="mi">656</span><span class="p">,</span>
        <span class="s2">"start"</span><span class="p">:</span> <span class="mi">1588449600</span><span class="p">,</span>
        <span class="s2">"status"</span><span class="p">:</span> <span class="s2">"paid"</span><span class="p">,</span>
        <span class="s2">"local_timezone"</span><span class="p">:</span> <span class="s2">"Europe/Berlin"</span><span class="p">,</span>
        <span class="s2">"_links"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"self"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/bookings/677"</span>
                <span class="p">}</span>
            <span class="p">],</span>
            <span class="s2">"collection"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/bookings"</span>
                <span class="p">}</span>
            <span class="p">]</span>
        <span class="p">}</span>
    <span class="p">},</span>
    <span class="p">{</span>
        <span class="s2">"id"</span><span class="p">:</span> <span class="mi">676</span><span class="p">,</span>
        <span class="s2">"all_day"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"cost"</span><span class="p">:</span> <span class="s2">"200"</span><span class="p">,</span>
        <span class="s2">"customer_id"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
        <span class="s2">"date_created"</span><span class="p">:</span> <span class="mi">1587634146</span><span class="p">,</span>
        <span class="s2">"date_modified"</span><span class="p">:</span> <span class="mi">1587634167</span><span class="p">,</span>
        <span class="s2">"end"</span><span class="p">:</span> <span class="mi">1587936600</span><span class="p">,</span>
        <span class="s2">"google_calendar_event_id"</span><span class="p">:</span> <span class="s2">"0"</span><span class="p">,</span>
        <span class="s2">"order_id"</span><span class="p">:</span> <span class="mi">679</span><span class="p">,</span>
        <span class="s2">"order_item_id"</span><span class="p">:</span> <span class="mi">571</span><span class="p">,</span>
        <span class="s2">"parent_id"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
        <span class="s2">"person_counts"</span><span class="p">:</span> <span class="p">[</span>
            <span class="mi">1</span>
        <span class="p">],</span>
        <span class="s2">"product_id"</span><span class="p">:</span> <span class="mi">655</span><span class="p">,</span>
        <span class="s2">"resource_id"</span><span class="p">:</span> <span class="mi">656</span><span class="p">,</span>
        <span class="s2">"start"</span><span class="p">:</span> <span class="mi">1587931200</span><span class="p">,</span>
        <span class="s2">"status"</span><span class="p">:</span> <span class="s2">"paid"</span><span class="p">,</span>
        <span class="s2">"local_timezone"</span><span class="p">:</span> <span class="s2">"Europe/Berlin"</span><span class="p">,</span>
        <span class="s2">"_links"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"self"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/bookings/676"</span>
                <span class="p">}</span>
            <span class="p">],</span>
            <span class="s2">"collection"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/bookings"</span>
                <span class="p">}</span>
            <span class="p">]</span>
        <span class="p">}</span>
    <span class="p">}</span>
<span class="p">]</span>
</code></pre>
<h2 id="delete-a-booking">Delete a booking</h2>
<p>This API helps you to delete an existing booking, changing the booking&#8217;s status to &#8220;trash&#8221;.</p>
<h3 id="http-request-4">HTTP request</h3>
<div class="api-endpoint">
<div class="endpoint-data"><i class="label label-post">DELETE</i> </p>
<h6>/wp-json/wc-bookings/v1/bookings/&lt;id&gt;</h6>
</div>
</div>
<blockquote>
<p>Example of deleting a specific booking:</p>
</blockquote>
<pre class="highlight shell tab-shell"><code>curl -X DELETE https://example.com/wp-json/wc-bookings/v1/bookings/678?force<span class="o">=</span><span class="nb">true</span> <span class="se"></span>
    -u consumer_key:consumer_secret <span class="se"></span>
</code></pre>
<blockquote>
<p>JSON response example:</p>
</blockquote>
<pre class="highlight json tab-json"><code><span class="p">{</span>
    <span class="s2">"id"</span><span class="p">:</span> <span class="mi">678</span><span class="p">,</span>
    <span class="s2">"all_day"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"cost"</span><span class="p">:</span> <span class="s2">"200"</span><span class="p">,</span>
    <span class="s2">"customer_id"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
    <span class="s2">"date_created"</span><span class="p">:</span> <span class="mi">1587634157</span><span class="p">,</span>
    <span class="s2">"date_modified"</span><span class="p">:</span> <span class="mi">1587647316</span><span class="p">,</span>
    <span class="s2">"end"</span><span class="p">:</span> <span class="mi">1588534200</span><span class="p">,</span>
    <span class="s2">"google_calendar_event_id"</span><span class="p">:</span> <span class="s2">"0"</span><span class="p">,</span>
    <span class="s2">"order_id"</span><span class="p">:</span> <span class="mi">679</span><span class="p">,</span>
    <span class="s2">"order_item_id"</span><span class="p">:</span> <span class="mi">573</span><span class="p">,</span>
    <span class="s2">"parent_id"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"person_counts"</span><span class="p">:</span> <span class="p">[</span>
        <span class="mi">1</span>
    <span class="p">],</span>
    <span class="s2">"product_id"</span><span class="p">:</span> <span class="mi">655</span><span class="p">,</span>
    <span class="s2">"resource_id"</span><span class="p">:</span> <span class="mi">656</span><span class="p">,</span>
    <span class="s2">"start"</span><span class="p">:</span> <span class="mi">1588528800</span><span class="p">,</span>
    <span class="s2">"status"</span><span class="p">:</span> <span class="s2">"trash"</span><span class="p">,</span>
    <span class="s2">"local_timezone"</span><span class="p">:</span> <span class="s2">"Europe/Berlin"</span><span class="p">,</span>
    <span class="s2">"_links"</span><span class="p">:</span> <span class="p">{</span>
        <span class="s2">"self"</span><span class="p">:</span> <span class="p">[</span>
            <span class="p">{</span>
                <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/bookings/678"</span>
            <span class="p">}</span>
        <span class="p">],</span>
        <span class="s2">"collection"</span><span class="p">:</span> <span class="p">[</span>
            <span class="p">{</span>
                <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/bookings"</span>
            <span class="p">}</span>
        <span class="p">]</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre>
<h4 id="available-parameters">Available parameters</h4>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>force</code></td>
<td>string</td>
<td>Use true to permanently delete the product. Default is false.</td>
</tr>
</tbody>
</table>
<h1 id="resources">Resources</h1>
<p>The resources API allows you to view all or individual Bookings resources.</p>
<h2 id="resource-properties">Resource properties</h2>
<table>
<thead>
<tr>
<th>Attribute</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>id</code></td>
<td>integer</td>
<td>Unique identifier for the resource.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>availability</code></td>
<td>array</td>
<td>Array of availability rules.<i class="label label-info">READ-ONLY<i></i></i></td>
</tr>
<tr>
<td><code>base_cost</code></td>
<td>integer</td>
<td>The base cost of the resource.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>block_cost</code></td>
<td>integer</td>
<td>The block cost of the resource.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>name</code></td>
<td>string</td>
<td>The given name for the resource.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>parent_id</code></td>
<td>integer</td>
<td>The parent post id.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>qty</code></td>
<td>integer</td>
<td>The available quantity of resource.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>sort_order</code></td>
<td>integer</td>
<td>Determines the sort order.<i class="label label-info">READ-ONLY</i></td>
</tr>
</tbody>
</table>
<h3 id="resource-availability-properties">Resource &#8211; availability properties</h3>
<table>
<thead>
<tr>
<th>Attribute</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>type</code></td>
<td>string</td>
<td>Type of availability rule.</td>
</tr>
<tr>
<td><code>bookable</code></td>
<td>string</td>
<td>Whether the product is bookable or not(&#8220;yes/no&#8221;).</td>
</tr>
<tr>
<td><code>priority</code></td>
<td>integer</td>
<td>Priority value of availability rule.</td>
</tr>
<tr>
<td><code>from</code></td>
<td>string</td>
<td>Start time of the availability rule.</td>
</tr>
<tr>
<td><code>to</code></td>
<td>string</td>
<td>End time of availability rule.</td>
</tr>
</tbody>
</table>
<h2 id="retrieve-a-resource">Retrieve a resource</h2>
<p>This API lets you retrieve and view a specific resource by ID.</p>
<h3 id="http-request">HTTP request</h3>
<div class="api-endpoint">
<div class="endpoint-data"><i class="label label-get">GET</i> </p>
<h6>/wp-json/wc-bookings/v1/resources/&lt;id&gt;</h6>
</div>
</div>
<pre class="highlight shell tab-shell"><code>curl https://example.com/wp-json/wc-bookings/v1/resources/99 <span class="se"></span>
    -u consumer_key:consumer_secret
</code></pre>
<blockquote>
<p>JSON response example:</p>
</blockquote>
<pre class="highlight json tab-json"><code><span class="p">{</span>
    <span class="s2">"id"</span><span class="p">:</span> <span class="mi">99</span><span class="p">,</span>
    <span class="s2">"availability"</span><span class="p">:</span> <span class="p">[</span>
        <span class="p">{</span>
            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"time:6"</span><span class="p">,</span>
            <span class="s2">"bookable"</span><span class="p">:</span> <span class="s2">"yes"</span><span class="p">,</span>
            <span class="s2">"priority"</span><span class="p">:</span> <span class="mi">10</span><span class="p">,</span>
            <span class="s2">"from"</span><span class="p">:</span> <span class="s2">"12:00"</span><span class="p">,</span>
            <span class="s2">"to"</span><span class="p">:</span> <span class="s2">"20:00"</span>
        <span class="p">},</span>
        <span class="p">{</span>
            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"time:7"</span><span class="p">,</span>
            <span class="s2">"bookable"</span><span class="p">:</span> <span class="s2">"yes"</span><span class="p">,</span>
            <span class="s2">"priority"</span><span class="p">:</span> <span class="mi">10</span><span class="p">,</span>
            <span class="s2">"from"</span><span class="p">:</span> <span class="s2">"12:00"</span><span class="p">,</span>
            <span class="s2">"to"</span><span class="p">:</span> <span class="s2">"20:00"</span>
        <span class="p">},</span>
        <span class="p">{</span>
            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"custom"</span><span class="p">,</span>
            <span class="s2">"bookable"</span><span class="p">:</span> <span class="s2">"no"</span><span class="p">,</span>
            <span class="s2">"priority"</span><span class="p">:</span> <span class="mi">9</span><span class="p">,</span>
            <span class="s2">"from"</span><span class="p">:</span> <span class="s2">"2019-05-18"</span><span class="p">,</span>
            <span class="s2">"to"</span><span class="p">:</span> <span class="s2">"2019-05-18"</span>
        <span class="p">},</span>
        <span class="p">{</span>
            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"custom"</span><span class="p">,</span>
            <span class="s2">"bookable"</span><span class="p">:</span> <span class="s2">"no"</span><span class="p">,</span>
            <span class="s2">"priority"</span><span class="p">:</span> <span class="mi">9</span><span class="p">,</span>
            <span class="s2">"from"</span><span class="p">:</span> <span class="s2">"2019-05-25"</span><span class="p">,</span>
            <span class="s2">"to"</span><span class="p">:</span> <span class="s2">"2019-05-25"</span>
        <span class="p">}</span>
    <span class="p">],</span>
    <span class="s2">"base_cost"</span><span class="p">:</span> <span class="mi">10</span><span class="p">,</span>
    <span class="s2">"block_cost"</span><span class="p">:</span> <span class="mi">10</span><span class="p">,</span>
    <span class="s2">"name"</span><span class="p">:</span> <span class="s2">"Gym of Your Choice"</span><span class="p">,</span>
    <span class="s2">"parent_id"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"qty"</span><span class="p">:</span> <span class="s2">"1"</span><span class="p">,</span>
    <span class="s2">"sort_order"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"_links"</span><span class="p">:</span> <span class="p">{</span>
        <span class="s2">"self"</span><span class="p">:</span> <span class="p">[</span>
            <span class="p">{</span>
                <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/resources/99"</span>
            <span class="p">}</span>
        <span class="p">],</span>
        <span class="s2">"collection"</span><span class="p">:</span> <span class="p">[</span>
            <span class="p">{</span>
                <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/resources"</span>
            <span class="p">}</span>
        <span class="p">]</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre>
<h4 id="available-parameters">Available parameters</h4>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>id</code></td>
<td>integer</td>
<td>The post ID of a specific resource.</td>
</tr>
</tbody>
</table>
<h2 id="list-all-resources">List all resources</h2>
<p>This API helps you to list all the resources that have been created.</p>
<h3 id="http-request-2">HTTP request</h3>
<div class="api-endpoint">
<div class="endpoint-data"><i class="label label-get">GET</i> </p>
<h6>/wp-json/wc-bookings/v1/resources</h6>
</div>
</div>
<pre class="highlight shell tab-shell"><code>curl https://example.com/wp-json/wc-bookings/v1/resources <span class="se"></span>
    -u consumer_key:consumer_secret
</code></pre>
<blockquote>
<p>JSON response example:</p>
</blockquote>
<pre class="highlight json tab-json"><code><span class="p">[</span>
    <span class="p">{</span>
        <span class="s2">"id"</span><span class="p">:</span> <span class="mi">99</span><span class="p">,</span>
        <span class="s2">"availability"</span><span class="p">:</span> <span class="p">[</span>
            <span class="p">{</span>
                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"time:6"</span><span class="p">,</span>
                <span class="s2">"bookable"</span><span class="p">:</span> <span class="s2">"yes"</span><span class="p">,</span>
                <span class="s2">"priority"</span><span class="p">:</span> <span class="mi">10</span><span class="p">,</span>
                <span class="s2">"from"</span><span class="p">:</span> <span class="s2">"12:00"</span><span class="p">,</span>
                <span class="s2">"to"</span><span class="p">:</span> <span class="s2">"20:00"</span>
            <span class="p">},</span>
            <span class="p">{</span>
                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"time:7"</span><span class="p">,</span>
                <span class="s2">"bookable"</span><span class="p">:</span> <span class="s2">"yes"</span><span class="p">,</span>
                <span class="s2">"priority"</span><span class="p">:</span> <span class="mi">10</span><span class="p">,</span>
                <span class="s2">"from"</span><span class="p">:</span> <span class="s2">"12:00"</span><span class="p">,</span>
                <span class="s2">"to"</span><span class="p">:</span> <span class="s2">"20:00"</span>
            <span class="p">},</span>
            <span class="p">{</span>
                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"custom"</span><span class="p">,</span>
                <span class="s2">"bookable"</span><span class="p">:</span> <span class="s2">"no"</span><span class="p">,</span>
                <span class="s2">"priority"</span><span class="p">:</span> <span class="mi">9</span><span class="p">,</span>
                <span class="s2">"from"</span><span class="p">:</span> <span class="s2">"2019-05-18"</span><span class="p">,</span>
                <span class="s2">"to"</span><span class="p">:</span> <span class="s2">"2019-05-18"</span>
            <span class="p">},</span>
            <span class="p">{</span>
                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"custom"</span><span class="p">,</span>
                <span class="s2">"bookable"</span><span class="p">:</span> <span class="s2">"no"</span><span class="p">,</span>
                <span class="s2">"priority"</span><span class="p">:</span> <span class="mi">9</span><span class="p">,</span>
                <span class="s2">"from"</span><span class="p">:</span> <span class="s2">"2019-05-25"</span><span class="p">,</span>
                <span class="s2">"to"</span><span class="p">:</span> <span class="s2">"2019-05-25"</span>
            <span class="p">}</span>
        <span class="p">],</span>
        <span class="s2">"base_cost"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
        <span class="s2">"block_cost"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
        <span class="s2">"name"</span><span class="p">:</span> <span class="s2">"The Second Best Gym, San Jose"</span><span class="p">,</span>
        <span class="s2">"parent_id"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
        <span class="s2">"qty"</span><span class="p">:</span> <span class="s2">"1"</span><span class="p">,</span>
        <span class="s2">"sort_order"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
        <span class="s2">"_links"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"self"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/resources/657"</span>
                <span class="p">}</span>
            <span class="p">],</span>
            <span class="s2">"collection"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/resources"</span>
                <span class="p">}</span>
            <span class="p">]</span>
        <span class="p">}</span>
    <span class="p">},</span>
    <span class="p">{</span>
        <span class="s2">"id"</span><span class="p">:</span> <span class="mi">98</span><span class="p">,</span>
        <span class="s2">"availability"</span><span class="p">:</span> <span class="p">[</span>
            <span class="p">{</span>
                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"time:6"</span><span class="p">,</span>
                <span class="s2">"bookable"</span><span class="p">:</span> <span class="s2">"yes"</span><span class="p">,</span>
                <span class="s2">"priority"</span><span class="p">:</span> <span class="mi">10</span><span class="p">,</span>
                <span class="s2">"from"</span><span class="p">:</span> <span class="s2">"18:00"</span><span class="p">,</span>
                <span class="s2">"to"</span><span class="p">:</span> <span class="s2">"22:00"</span>
            <span class="p">},</span>
            <span class="p">{</span>
                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"time:7"</span><span class="p">,</span>
                <span class="s2">"bookable"</span><span class="p">:</span> <span class="s2">"yes"</span><span class="p">,</span>
                <span class="s2">"priority"</span><span class="p">:</span> <span class="mi">10</span><span class="p">,</span>
                <span class="s2">"from"</span><span class="p">:</span> <span class="s2">"18:00"</span><span class="p">,</span>
                <span class="s2">"to"</span><span class="p">:</span> <span class="s2">"22:00"</span>
            <span class="p">}</span>
        <span class="p">],</span>
        <span class="s2">"base_cost"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
        <span class="s2">"block_cost"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
        <span class="s2">"name"</span><span class="p">:</span> <span class="s2">"The Best Gym, Los Angeles"</span><span class="p">,</span>
        <span class="s2">"parent_id"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
        <span class="s2">"qty"</span><span class="p">:</span> <span class="s2">"1"</span><span class="p">,</span>
        <span class="s2">"sort_order"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
        <span class="s2">"_links"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"self"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/resources/656"</span>
                <span class="p">}</span>
            <span class="p">],</span>
            <span class="s2">"collection"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/resources"</span>
                <span class="p">}</span>
            <span class="p">]</span>
        <span class="p">}</span>
    <span class="p">}</span>
<span class="p">]</span>
</code></pre>
<h1 id="bookable-products">Bookable Products</h1>
<p>The products API allows you to read, update, and delete individual bookable products as well as list all bookable products.</p>
<h2 id="bookable-product-properties">Bookable Product properties</h2>
<table>
<thead>
<tr>
<th>Attribute</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>id</code></td>
<td>integer</td>
<td>Unique identifier for the product.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>name</code></td>
<td>string</td>
<td>Product name.</td>
</tr>
<tr>
<td><code>slug</code></td>
<td>string</td>
<td>Product slug.</td>
</tr>
<tr>
<td><code>permalink</code></td>
<td>string</td>
<td>Product URL.</td>
</tr>
<tr>
<td><code>date_created</code></td>
<td>date-time</td>
<td>The date the product was created, in the site&#8217;s timezone.</td>
</tr>
<tr>
<td><code>date_created_gmt</code></td>
<td>date-time</td>
<td>The date the product was created, as GMT.</td>
</tr>
<tr>
<td><code>date_modified</code></td>
<td>date-time</td>
<td>The date the product was last modified, in the site&#8217;s timezone.</td>
</tr>
<tr>
<td><code>date_modified_gmt</code></td>
<td>date-time</td>
<td>The date the product was last modified, as GMT.</td>
</tr>
<tr>
<td><code>type</code></td>
<td>string</td>
<td>Product type. Options: <code>simple</code>, <code>grouped</code>, <code>external</code> and <code>variable</code>. Default is <code>simple</code>.</td>
</tr>
<tr>
<td><code>status</code></td>
<td>string</td>
<td>Product status (post status). Options: <code>draft</code>, <code>pending</code>, <code>private</code> and <code>publish</code>. Default is <code>publish</code>.</td>
</tr>
<tr>
<td><code>featured</code></td>
<td>boolean</td>
<td>Featured product. Default is</td>
</tr>
<tr>
<td><code>catalog_visibility</code></td>
<td>string</td>
<td>Catalog visibility. Options: <code>visible</code>, <code>catalog</code>, <code>search</code> and <code>hidden</code>. Default is <code>visible</code>.</td>
</tr>
<tr>
<td><code>description</code></td>
<td>string</td>
<td>Product description.</td>
</tr>
<tr>
<td><code>short_description</code></td>
<td>string</td>
<td>Product short description.</td>
</tr>
<tr>
<td><code>sku</code></td>
<td>string</td>
<td>Unique identifier.</td>
</tr>
<tr>
<td><code>price</code></td>
<td>string</td>
<td>Current product price.</td>
</tr>
<tr>
<td><code>regular_price</code></td>
<td>string</td>
<td>Product regular price.</td>
</tr>
<tr>
<td><code>sale_price</code></td>
<td>string</td>
<td>Product sale price.</td>
</tr>
<tr>
<td><code>date_on_sale_from</code></td>
<td>date-time</td>
<td>Start date of sale price, in the site&#8217;s timezone.</td>
</tr>
<tr>
<td><code>date_on_sale_from_gmt</code></td>
<td>date-time</td>
<td>Start date of sale price, as GMT.</td>
</tr>
<tr>
<td><code>date_on_sale_to</code></td>
<td>date-time</td>
<td>End date of sale price, in the site&#8217;s timezone.</td>
</tr>
<tr>
<td><code>date_on_sale_to_gmt</code></td>
<td>date-time</td>
<td>End date of sale price, as GMT.</td>
</tr>
<tr>
<td><code>price_html</code></td>
<td>string</td>
<td>Price formatted in HTML.</td>
</tr>
<tr>
<td><code>on_sale</code></td>
<td>boolean</td>
<td>Shows if the product is on sale.</td>
</tr>
<tr>
<td><code>purchasable</code></td>
<td>boolean</td>
<td>Shows if the product can be bought.</td>
</tr>
<tr>
<td><code>total_sales</code></td>
<td>integer</td>
<td>Amount of sales.</td>
</tr>
<tr>
<td><code>virtual</code></td>
<td>boolean</td>
<td>If the product is virtual. Default is <code>false</code>.</td>
</tr>
<tr>
<td><code>downloadable</code></td>
<td>boolean</td>
<td>If the product is downloadable. Default is <code>false</code>.</td>
</tr>
<tr>
<td><code>downloads</code></td>
<td>array</td>
<td>List of downloadable files.</td>
</tr>
<tr>
<td><code>download_limit</code></td>
<td>integer</td>
<td>Number of times downloadable files can be downloaded after purchase. Default is <code>-1</code>.</td>
</tr>
<tr>
<td><code>download_expiry</code></td>
<td>integer</td>
<td>Number of days until access to downloadable files expires. Default is <code>-1</code>.</td>
</tr>
<tr>
<td><code>external_url</code></td>
<td>string</td>
<td>Product external URL. Only for external products.</td>
</tr>
<tr>
<td><code>button_text</code></td>
<td>string</td>
<td>Product external button text. Only for external products.</td>
</tr>
<tr>
<td><code>tax_status</code></td>
<td>string</td>
<td>Tax status. Options: <code>taxable</code>, <code>shipping</code> and <code>none</code>. Default is <code>taxable</code>.</td>
</tr>
<tr>
<td><code>tax_class</code></td>
<td>string</td>
<td>Tax class.</td>
</tr>
<tr>
<td><code>manage_stock</code></td>
<td>boolean</td>
<td>Stock management at product level. Default is <code>false</code>.</td>
</tr>
<tr>
<td><code>stock_quantity</code></td>
<td>integer</td>
<td>Stock quantity.</td>
</tr>
<tr>
<td><code>stock_status</code></td>
<td>string</td>
<td>Controls the stock status of the product. Options: <code>instock</code>, <code>outofstock</code>, <code>onbackorder</code>. Default is <code>instock</code>.</td>
</tr>
<tr>
<td><code>backorders</code></td>
<td>string</td>
<td>If managing stock, this controls if backorders are allowed. Options: <code>no</code>, <code>notify</code> and <code>yes</code>. Default is <code>no</code>.</td>
</tr>
<tr>
<td><code>backorders_allowed</code></td>
<td>boolean</td>
<td>Shows if backorders are allowed.</td>
</tr>
<tr>
<td><code>backordered</code></td>
<td>boolean</td>
<td>Shows if the product is on backordered.</td>
</tr>
<tr>
<td><code>sold_individually</code></td>
<td>boolean</td>
<td>Allow one item to be bought in a single order. Default is <code>false</code>.</td>
</tr>
<tr>
<td><code>weight</code></td>
<td>string</td>
<td>Product weight.</td>
</tr>
<tr>
<td><code>dimensions</code></td>
<td>object</td>
<td>Product dimensions.</td>
</tr>
<tr>
<td><code>shipping_required</code></td>
<td>boolean</td>
<td>Shows if the product need to be shipped.</td>
</tr>
<tr>
<td><code>shipping_taxable</code></td>
<td>boolean</td>
<td>Shows whether or not the product shipping is taxable.</td>
</tr>
<tr>
<td><code>shipping_class</code></td>
<td>string</td>
<td>Shipping class slug.</td>
</tr>
<tr>
<td><code>shipping_class_id</code></td>
<td>integer</td>
<td>Shipping class ID.</td>
</tr>
<tr>
<td><code>reviews_allowed</code></td>
<td>boolean</td>
<td>Allow reviews. Default is <code>true</code>.</td>
</tr>
<tr>
<td><code>average_rating</code></td>
<td>string</td>
<td>Reviews average rating.</td>
</tr>
<tr>
<td><code>rating_count</code></td>
<td>integer</td>
<td>Amount of reviews that the product have.</td>
</tr>
<tr>
<td><code>related_ids</code></td>
<td>array</td>
<td>List of related products IDs.</td>
</tr>
<tr>
<td><code>upsell_ids</code></td>
<td>array</td>
<td>List of up-sell products IDs.</td>
</tr>
<tr>
<td><code>cross_sell_ids</code></td>
<td>array</td>
<td>List of cross-sell products IDs.</td>
</tr>
<tr>
<td><code>parent_id</code></td>
<td>integer</td>
<td>Product parent ID.</td>
</tr>
<tr>
<td><code>purchase_note</code></td>
<td>string</td>
<td>Optional note to send the customer after purchase.</td>
</tr>
<tr>
<td><code>categories</code></td>
<td>array</td>
<td>List of categories.</td>
</tr>
<tr>
<td><code>tags</code></td>
<td>array</td>
<td>List of tags.</td>
</tr>
<tr>
<td><code>images</code></td>
<td>array</td>
<td>List of images.</td>
</tr>
<tr>
<td><code>attributes</code></td>
<td>array</td>
<td>List of attributes.</td>
</tr>
<tr>
<td><code>default_attributes</code></td>
<td>array</td>
<td>Defaults variation attributes.</td>
</tr>
<tr>
<td><code>variations</code></td>
<td>array</td>
<td>List of variations IDs.</td>
</tr>
<tr>
<td><code>grouped_products</code></td>
<td>array</td>
<td>List of grouped products ID.</td>
</tr>
<tr>
<td><code>menu_order</code></td>
<td>integer</td>
<td>Menu order, used to custom sort products.</td>
</tr>
<tr>
<td><code>meta_data</code></td>
<td>array</td>
<td>Meta data.</td>
</tr>
<tr>
<td><code>apply_adjacent_buffer</code></td>
<td>boolean</td>
<td>Use adjacent buffering for calculating availability.</td>
</tr>
<tr>
<td><code>availability</code></td>
<td>array</td>
<td>List of custom availability rules.</td>
</tr>
<tr>
<td><code>block_cost</code></td>
<td>integer</td>
<td>Block cost of the bookable product.</td>
</tr>
<tr>
<td><code>buffer_period</code></td>
<td>integer</td>
<td>Time(minutes) to apply a buffer between bookings.</td>
</tr>
<tr>
<td><code>calendar_display_mode</code></td>
<td>string</td>
<td>Calendar display mode on the product page.</td>
</tr>
<tr>
<td><code>cancel_limit_unit</code></td>
<td>string</td>
<td>The unit type for the cancellation limit.</td>
</tr>
<tr>
<td><code>cancel_limit</code></td>
<td>integer</td>
<td>The length of the cancellation limit.</td>
</tr>
<tr>
<td><code>check_start_block_only</code></td>
<td>boolean</td>
<td>Check availability only from the starting block.</td>
</tr>
<tr>
<td><code>cost</code></td>
<td>integer</td>
<td>The base cost of the bookable product.</td>
</tr>
<tr>
<td><code>default_date_availability</code></td>
<td>string</td>
<td>Make the bookable product available by default.</td>
</tr>
<tr>
<td><code>display_cost</code></td>
<td>string</td>
<td>String override for the booking display cost.</td>
</tr>
<tr>
<td><code>duration_type</code></td>
<td>string</td>
<td>The product&#8217;s block duration(fixed or customer-defined).</td>
</tr>
<tr>
<td><code>duration_unit</code></td>
<td>string</td>
<td>The product&#8217;s block duration unit type(minutes, hours, days).</td>
</tr>
<tr>
<td><code>duration</code></td>
<td>integer</td>
<td>The value of the block duration unit.</td>
</tr>
<tr>
<td><code>enable_range_picker</code></td>
<td>boolean</td>
<td>Enable date range selection on product pages.</td>
</tr>
<tr>
<td><code>first_block_time</code></td>
<td>string</td>
<td>Set a beginning time in which availability is calculated.</td>
</tr>
<tr>
<td><code>has_person_cost_multiplier</code></td>
<td>boolean</td>
<td>Multiply booking costs by number of persons.</td>
</tr>
<tr>
<td><code>has_person_qty_multiplier</code></td>
<td>boolean</td>
<td>Treat each person as a booking.</td>
</tr>
<tr>
<td><code>has_person_types</code></td>
<td>boolean</td>
<td>Enable person types for the product.</td>
</tr>
<tr>
<td><code>has_persons</code></td>
<td>boolean</td>
<td>Enable persons for the product.</td>
</tr>
<tr>
<td><code>has_resources</code></td>
<td>boolean</td>
<td>Enable resources for the product.</td>
</tr>
<tr>
<td><code>has_restricted_days</code></td>
<td>string</td>
<td>Days of week are disabled for availability (&#8220;1&#8221; or &#8220;0&#8221;).</td>
</tr>
<tr>
<td><code>restricted_days</code></td>
<td>object</td>
<td>Days of the week which are disabled, &#8220;0&#8221; through &#8220;6&#8221;.</td>
</tr>
<tr>
<td><code>max_duration</code></td>
<td>integer</td>
<td>Maximum number of blocks per booking.</td>
</tr>
<tr>
<td><code>min_duration</code></td>
<td>integer</td>
<td>Minimum number of blocks per booking.</td>
</tr>
<tr>
<td><code>max_persons</code></td>
<td>integer</td>
<td>Maximum number of persons per booking.</td>
</tr>
<tr>
<td><code>min_persons</code></td>
<td>integer</td>
<td>Minimum number of persons per booking.</td>
</tr>
<tr>
<td><code>person_types</code></td>
<td>object</td>
<td>The person types attached to product, linked by ID.</td>
</tr>
<tr>
<td><code>requires_confirmation</code></td>
<td>boolean</td>
<td>Require admin confirmation for bookings of this product.</td>
</tr>
<tr>
<td><code>resource_label</code></td>
<td>string</td>
<td>Label shown on product page for resource selection.</td>
</tr>
<tr>
<td><code>resource_base_costs</code></td>
<td>object</td>
<td>The base cost per resource attached to product, linked by ID.</td>
</tr>
<tr>
<td><code>resource_block_costs</code></td>
<td>object</td>
<td>The block cost per resource attached to product, linked by ID.</td>
</tr>
<tr>
<td><code>resource_ids</code></td>
<td>object</td>
<td>The resources attached to product, linked by ID.</td>
</tr>
<tr>
<td><code>resources_assignment</code></td>
<td>object</td>
<td>How resources are chosen, either &#8220;automatic&#8221; or &#8220;customer&#8221;.</td>
</tr>
<tr>
<td><code>can_be_cancelled</code></td>
<td>boolean</td>
<td>Allow cancellation of bookings.</td>
</tr>
<tr>
<td><code>user_can_cancel</code></td>
<td>boolean</td>
<td>Allow customer cancellation of bookings.</td>
</tr>
</tbody>
</table>
<h3 id="bookable-product-max_date-properties">Bookable Product &#8211; max_date properties</h3>
<table>
<thead>
<tr>
<th>Attribute</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>value</code></td>
<td>integer</td>
<td>Value of the maximum date bookings can be made in the future.</td>
</tr>
<tr>
<td><code>unit</code></td>
<td>string</td>
<td>Unit type(&#8220;month, day&#8221;) for maximum future booking date.</td>
</tr>
</tbody>
</table>
<h3 id="bookable-product-min_date-properties">Bookable Product &#8211; min_date properties</h3>
<table>
<thead>
<tr>
<th>Attribute</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>value</code></td>
<td>integer</td>
<td>Value of the minimum date bookings can be made in the future.</td>
</tr>
<tr>
<td><code>unit</code></td>
<td>string</td>
<td>Unit type(&#8220;month, day&#8221;) for minimum future booking date.</td>
</tr>
</tbody>
</table>
<h3 id="bookable-product-pricing-properties">Bookable Product &#8211; pricing properties</h3>
<table>
<thead>
<tr>
<th>Attribute</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>type</code></td>
<td>string</td>
<td>The custom pricing rule type.</td>
</tr>
<tr>
<td><code>cost</code></td>
<td>string</td>
<td>Custom block cost.</td>
</tr>
<tr>
<td><code>modifier</code></td>
<td>string</td>
<td>Modifier type for calculating block cost.</td>
</tr>
<tr>
<td><code>cost</code></td>
<td>string</td>
<td>Custom base cost.</td>
</tr>
<tr>
<td><code>from</code></td>
<td>string</td>
<td>Minimum value to apply cost rule.</td>
</tr>
<tr>
<td><code>to</code></td>
<td>string</td>
<td>Maximum value to apply cost rule.</td>
</tr>
<tr>
<td><code>base_modifier</code></td>
<td>string</td>
<td>Modifier type for calculating base cost.</td>
</tr>
</tbody>
</table>
<h2 id="retrieve-a-bookable-product">Retrieve a bookable product</h2>
<p>This API lets you retrieve and view a specific bookable product by ID.</p>
<h3 id="http-request">HTTP request</h3>
<div class="api-endpoint">
<div class="endpoint-data"><i class="label label-get">GET</i> </p>
<h6>/wp-json/wc-bookings/v1/products/&lt;id&gt;</h6>
</div>
</div>
<pre class="highlight shell tab-shell"><code>curl https://example.com/wp-json/wc-bookings/v1/products/655 <span class="se"></span>
    -u consumer_key:consumer_secret
</code></pre>
<blockquote>
<p>JSON response example:</p>
</blockquote>
<pre class="highlight json tab-json"><code><span class="p">{</span>
    <span class="s2">"id"</span><span class="p">:</span> <span class="mi">655</span><span class="p">,</span>
    <span class="s2">"name"</span><span class="p">:</span> <span class="s2">"Fitness Photo Shoot"</span><span class="p">,</span>
    <span class="s2">"slug"</span><span class="p">:</span> <span class="s2">"fitness-photo-shoot"</span><span class="p">,</span>
    <span class="s2">"permalink"</span><span class="p">:</span> <span class="s2">"https://example.com/product/fitness-photo-shoot/"</span><span class="p">,</span>
    <span class="s2">"date_created"</span><span class="p">:</span> <span class="s2">"2020-04-09T13:38:30"</span><span class="p">,</span>
    <span class="s2">"date_created_gmt"</span><span class="p">:</span> <span class="s2">"2020-04-09T13:38:30"</span><span class="p">,</span>
    <span class="s2">"date_modified"</span><span class="p">:</span> <span class="s2">"2020-04-22T19:04:49"</span><span class="p">,</span>
    <span class="s2">"date_modified_gmt"</span><span class="p">:</span> <span class="s2">"2020-04-22T19:04:49"</span><span class="p">,</span>
    <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"booking"</span><span class="p">,</span>
    <span class="s2">"status"</span><span class="p">:</span> <span class="s2">"publish"</span><span class="p">,</span>
    <span class="s2">"featured"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"catalog_visibility"</span><span class="p">:</span> <span class="s2">"visible"</span><span class="p">,</span>
    <span class="s2">"description"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"short_description"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"sku"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"price"</span><span class="p">:</span> <span class="s2">"200"</span><span class="p">,</span>
    <span class="s2">"regular_price"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"sale_price"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"date_on_sale_from"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
    <span class="s2">"date_on_sale_from_gmt"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
    <span class="s2">"date_on_sale_to"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
    <span class="s2">"date_on_sale_to_gmt"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
    <span class="s2">"price_html"</span><span class="p">:</span> <span class="s2">"From: &lt;span class=</span><span class="se">"</span><span class="s2">woocommerce-Price-amount amount</span><span class="se">"</span><span class="s2">&gt;&lt;span class=</span><span class="se">"</span><span class="s2">woocommerce-Price-currencySymbol</span><span class="se">"</span><span class="s2">&gt;&amp;#36;&lt;/span&gt;200.00&lt;/span&gt;"</span><span class="p">,</span>
    <span class="s2">"on_sale"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"purchasable"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
    <span class="s2">"total_sales"</span><span class="p">:</span> <span class="mi">4</span><span class="p">,</span>
    <span class="s2">"virtual"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
    <span class="s2">"downloadable"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"downloads"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"download_limit"</span><span class="p">:</span> <span class="mi">-1</span><span class="p">,</span>
    <span class="s2">"download_expiry"</span><span class="p">:</span> <span class="mi">-1</span><span class="p">,</span>
    <span class="s2">"external_url"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"button_text"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"tax_status"</span><span class="p">:</span> <span class="s2">"taxable"</span><span class="p">,</span>
    <span class="s2">"tax_class"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"manage_stock"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"stock_quantity"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
    <span class="s2">"stock_status"</span><span class="p">:</span> <span class="s2">"instock"</span><span class="p">,</span>
    <span class="s2">"backorders"</span><span class="p">:</span> <span class="s2">"no"</span><span class="p">,</span>
    <span class="s2">"backorders_allowed"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"backordered"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"sold_individually"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
    <span class="s2">"weight"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"dimensions"</span><span class="p">:</span> <span class="p">{</span>
        <span class="s2">"length"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"width"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"height"</span><span class="p">:</span> <span class="s2">""</span>
    <span class="p">},</span>
    <span class="s2">"shipping_required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"shipping_taxable"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"shipping_class"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"shipping_class_id"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"reviews_allowed"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
    <span class="s2">"average_rating"</span><span class="p">:</span> <span class="s2">"0.00"</span><span class="p">,</span>
    <span class="s2">"rating_count"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"related_ids"</span><span class="p">:</span> <span class="p">[</span>
        <span class="mi">658</span><span class="p">,</span>
        <span class="mi">588</span><span class="p">,</span>
        <span class="mi">523</span><span class="p">,</span>
        <span class="mi">673</span><span class="p">,</span>
        <span class="mi">659</span>
    <span class="p">],</span>
    <span class="s2">"upsell_ids"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"cross_sell_ids"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"parent_id"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"purchase_note"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"categories"</span><span class="p">:</span> <span class="p">[</span>
        <span class="p">{</span>
            <span class="s2">"id"</span><span class="p">:</span> <span class="mi">15</span><span class="p">,</span>
            <span class="s2">"name"</span><span class="p">:</span> <span class="s2">"Uncategorized"</span><span class="p">,</span>
            <span class="s2">"slug"</span><span class="p">:</span> <span class="s2">"uncategorized"</span>
        <span class="p">}</span>
    <span class="p">],</span>
    <span class="s2">"tags"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"images"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"attributes"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"default_attributes"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"variations"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"grouped_products"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"menu_order"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"meta_data"</span><span class="p">:</span> <span class="p">[</span>
        <span class="p">{</span>
            <span class="s2">"id"</span><span class="p">:</span> <span class="mi">18087</span><span class="p">,</span>
            <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_wc_booking_base_cost"</span><span class="p">,</span>
            <span class="s2">"value"</span><span class="p">:</span> <span class="s2">"0"</span>
        <span class="p">},</span>
        <span class="p">{</span>
            <span class="s2">"id"</span><span class="p">:</span> <span class="mi">18117</span><span class="p">,</span>
            <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_wc_booking_resouce_label"</span><span class="p">,</span>
            <span class="s2">"value"</span><span class="p">:</span> <span class="s2">""</span>
        <span class="p">},</span>
        <span class="p">{</span>
            <span class="s2">"id"</span><span class="p">:</span> <span class="mi">18134</span><span class="p">,</span>
            <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_product_addons"</span><span class="p">,</span>
            <span class="s2">"value"</span><span class="p">:</span> <span class="p">[]</span>
        <span class="p">},</span>
        <span class="p">{</span>
            <span class="s2">"id"</span><span class="p">:</span> <span class="mi">18135</span><span class="p">,</span>
            <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_product_addons_exclude_global"</span><span class="p">,</span>
            <span class="s2">"value"</span><span class="p">:</span> <span class="s2">"0"</span>
        <span class="p">},</span>
        <span class="p">{</span>
            <span class="s2">"id"</span><span class="p">:</span> <span class="mi">18895</span><span class="p">,</span>
            <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_nyp"</span><span class="p">,</span>
            <span class="s2">"value"</span><span class="p">:</span> <span class="s2">"no"</span>
        <span class="p">},</span>
        <span class="p">{</span>
            <span class="s2">"id"</span><span class="p">:</span> <span class="mi">18896</span><span class="p">,</span>
            <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_suggested_price"</span><span class="p">,</span>
            <span class="s2">"value"</span><span class="p">:</span> <span class="s2">""</span>
        <span class="p">},</span>
        <span class="p">{</span>
            <span class="s2">"id"</span><span class="p">:</span> <span class="mi">18897</span><span class="p">,</span>
            <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_min_price"</span><span class="p">,</span>
            <span class="s2">"value"</span><span class="p">:</span> <span class="s2">""</span>
        <span class="p">},</span>
        <span class="p">{</span>
            <span class="s2">"id"</span><span class="p">:</span> <span class="mi">18898</span><span class="p">,</span>
            <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_hide_nyp_minimum"</span><span class="p">,</span>
            <span class="s2">"value"</span><span class="p">:</span> <span class="s2">"no"</span>
        <span class="p">},</span>
        <span class="p">{</span>
            <span class="s2">"id"</span><span class="p">:</span> <span class="mi">18899</span><span class="p">,</span>
            <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_maximum_price"</span><span class="p">,</span>
            <span class="s2">"value"</span><span class="p">:</span> <span class="s2">""</span>
        <span class="p">},</span>
        <span class="p">{</span>
            <span class="s2">"id"</span><span class="p">:</span> <span class="mi">18900</span><span class="p">,</span>
            <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_wcopc"</span><span class="p">,</span>
            <span class="s2">"value"</span><span class="p">:</span> <span class="s2">"no"</span>
        <span class="p">}</span>
    <span class="p">],</span>
    <span class="s2">"apply_adjacent_buffer"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"availability"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"block_cost"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"buffer_period"</span><span class="p">:</span> <span class="mi">30</span><span class="p">,</span>
    <span class="s2">"calendar_display_mode"</span><span class="p">:</span> <span class="s2">"always_visible"</span><span class="p">,</span>
    <span class="s2">"cancel_limit_unit"</span><span class="p">:</span> <span class="s2">"month"</span><span class="p">,</span>
    <span class="s2">"cancel_limit"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
    <span class="s2">"check_start_block_only"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"cost"</span><span class="p">:</span> <span class="mi">200</span><span class="p">,</span>
    <span class="s2">"default_date_availability"</span><span class="p">:</span> <span class="s2">"non-available"</span><span class="p">,</span>
    <span class="s2">"display_cost"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"duration_type"</span><span class="p">:</span> <span class="s2">"fixed"</span><span class="p">,</span>
    <span class="s2">"duration_unit"</span><span class="p">:</span> <span class="s2">"minute"</span><span class="p">,</span>
    <span class="s2">"duration"</span><span class="p">:</span> <span class="mi">90</span><span class="p">,</span>
    <span class="s2">"enable_range_picker"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"first_block_time"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"has_person_cost_multiplier"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"has_person_qty_multiplier"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"has_person_types"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"has_persons"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
    <span class="s2">"has_resources"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
    <span class="s2">"has_restricted_days"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"max_date"</span><span class="p">:</span> <span class="p">{</span>
        <span class="s2">"value"</span><span class="p">:</span> <span class="mi">6</span><span class="p">,</span>
        <span class="s2">"unit"</span><span class="p">:</span> <span class="s2">"month"</span>
    <span class="p">},</span>
    <span class="s2">"max_date_value"</span><span class="p">:</span> <span class="mi">6</span><span class="p">,</span>
    <span class="s2">"max_date_unit"</span><span class="p">:</span> <span class="s2">"month"</span><span class="p">,</span>
    <span class="s2">"max_duration"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
    <span class="s2">"max_persons"</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span>
    <span class="s2">"min_date"</span><span class="p">:</span> <span class="p">{</span>
        <span class="s2">"value"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
        <span class="s2">"unit"</span><span class="p">:</span> <span class="s2">"month"</span>
    <span class="p">},</span>
    <span class="s2">"min_date_value"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"min_date_unit"</span><span class="p">:</span> <span class="s2">"month"</span><span class="p">,</span>
    <span class="s2">"min_duration"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
    <span class="s2">"min_persons"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
    <span class="s2">"person_types"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"pricing"</span><span class="p">:</span> <span class="p">[</span>
        <span class="p">{</span>
            <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"persons"</span><span class="p">,</span>
            <span class="s2">"cost"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
            <span class="s2">"modifier"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
            <span class="s2">"base_cost"</span><span class="p">:</span> <span class="s2">"60"</span><span class="p">,</span>
            <span class="s2">"base_modifier"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
            <span class="s2">"from"</span><span class="p">:</span> <span class="s2">"2"</span><span class="p">,</span>
            <span class="s2">"to"</span><span class="p">:</span> <span class="s2">"2"</span>
        <span class="p">}</span>
    <span class="p">],</span>
    <span class="s2">"qty"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
    <span class="s2">"requires_confirmation"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"resource_label"</span><span class="p">:</span> <span class="s2">"Shoot Location"</span><span class="p">,</span>
    <span class="s2">"resource_base_costs"</span><span class="p">:</span> <span class="p">{</span>
        <span class="s2">"656"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"657"</span><span class="p">:</span> <span class="s2">"50"</span>
    <span class="p">},</span>
    <span class="s2">"resource_block_costs"</span><span class="p">:</span> <span class="p">{</span>
        <span class="s2">"656"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"657"</span><span class="p">:</span> <span class="s2">""</span>
    <span class="p">},</span>
    <span class="s2">"resource_ids"</span><span class="p">:</span> <span class="p">[</span>
        <span class="mi">656</span><span class="p">,</span>
        <span class="mi">657</span>
    <span class="p">],</span>
    <span class="s2">"resources_assignment"</span><span class="p">:</span> <span class="s2">"customer"</span><span class="p">,</span>
    <span class="s2">"restricted_days"</span><span class="p">:</span> <span class="p">{</span>
        <span class="s2">"0"</span><span class="p">:</span> <span class="s2">"0"</span><span class="p">,</span>
        <span class="s2">"6"</span><span class="p">:</span> <span class="s2">"6"</span>
    <span class="p">},</span>
    <span class="s2">"can_be_cancelled"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"user_can_cancel"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"_links"</span><span class="p">:</span> <span class="p">{</span>
        <span class="s2">"self"</span><span class="p">:</span> <span class="p">[</span>
            <span class="p">{</span>
                <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/products/655"</span>
            <span class="p">}</span>
        <span class="p">],</span>
        <span class="s2">"collection"</span><span class="p">:</span> <span class="p">[</span>
            <span class="p">{</span>
                <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/products"</span>
            <span class="p">}</span>
        <span class="p">]</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre>
<h2 id="list-all-bookable-products">List all bookable products</h2>
<p>This API helps you to view all published bookable products.</p>
<h3 id="http-request-2">HTTP request</h3>
<div class="api-endpoint">
<div class="endpoint-data"><i class="label label-get">GET</i> </p>
<h6>/wp-json/wc-bookings/v1/products</h6>
</div>
</div>
<pre class="highlight shell tab-shell"><code>curl https://example.com/wp-json/wc-bookings/v1/products <span class="se"></span>
    -u consumer_key:consumer_secret
</code></pre>
<blockquote>
<p>JSON response example:</p>
</blockquote>
<pre class="highlight json tab-json"><code><span class="p">[</span>
    <span class="p">{</span>
        <span class="s2">"id"</span><span class="p">:</span> <span class="mi">680</span><span class="p">,</span>
        <span class="s2">"name"</span><span class="p">:</span> <span class="s2">"Personal Trainer Session"</span><span class="p">,</span>
        <span class="s2">"slug"</span><span class="p">:</span> <span class="s2">"personal-trainer-session"</span><span class="p">,</span>
        <span class="s2">"permalink"</span><span class="p">:</span> <span class="s2">"https://example.com/product/personal-trainer-session/"</span><span class="p">,</span>
        <span class="s2">"date_created"</span><span class="p">:</span> <span class="s2">"2020-04-23T10:12:27"</span><span class="p">,</span>
        <span class="s2">"date_created_gmt"</span><span class="p">:</span> <span class="s2">"2020-04-23T10:12:27"</span><span class="p">,</span>
        <span class="s2">"date_modified"</span><span class="p">:</span> <span class="s2">"2020-04-23T10:13:20"</span><span class="p">,</span>
        <span class="s2">"date_modified_gmt"</span><span class="p">:</span> <span class="s2">"2020-04-23T10:13:20"</span><span class="p">,</span>
        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"booking"</span><span class="p">,</span>
        <span class="s2">"status"</span><span class="p">:</span> <span class="s2">"publish"</span><span class="p">,</span>
        <span class="s2">"featured"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"catalog_visibility"</span><span class="p">:</span> <span class="s2">"visible"</span><span class="p">,</span>
        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"short_description"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"sku"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"price"</span><span class="p">:</span> <span class="s2">"100"</span><span class="p">,</span>
        <span class="s2">"regular_price"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"sale_price"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"date_on_sale_from"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
        <span class="s2">"date_on_sale_from_gmt"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
        <span class="s2">"date_on_sale_to"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
        <span class="s2">"date_on_sale_to_gmt"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
        <span class="s2">"price_html"</span><span class="p">:</span> <span class="s2">"From: &lt;span class=</span><span class="se">"</span><span class="s2">woocommerce-Price-amount amount</span><span class="se">"</span><span class="s2">&gt;&lt;span class=</span><span class="se">"</span><span class="s2">woocommerce-Price-currencySymbol</span><span class="se">"</span><span class="s2">&gt;&amp;#36;&lt;/span&gt;100.00&lt;/span&gt;"</span><span class="p">,</span>
        <span class="s2">"on_sale"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"purchasable"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
        <span class="s2">"total_sales"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
        <span class="s2">"virtual"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
        <span class="s2">"downloadable"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"downloads"</span><span class="p">:</span> <span class="p">[],</span>
        <span class="s2">"download_limit"</span><span class="p">:</span> <span class="mi">-1</span><span class="p">,</span>
        <span class="s2">"download_expiry"</span><span class="p">:</span> <span class="mi">-1</span><span class="p">,</span>
        <span class="s2">"external_url"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"button_text"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"tax_status"</span><span class="p">:</span> <span class="s2">"taxable"</span><span class="p">,</span>
        <span class="s2">"tax_class"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"manage_stock"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"stock_quantity"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
        <span class="s2">"stock_status"</span><span class="p">:</span> <span class="s2">"instock"</span><span class="p">,</span>
        <span class="s2">"backorders"</span><span class="p">:</span> <span class="s2">"no"</span><span class="p">,</span>
        <span class="s2">"backorders_allowed"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"backordered"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"sold_individually"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
        <span class="s2">"weight"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"dimensions"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"length"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
            <span class="s2">"width"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
            <span class="s2">"height"</span><span class="p">:</span> <span class="s2">""</span>
        <span class="p">},</span>
        <span class="s2">"shipping_required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"shipping_taxable"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"shipping_class"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"shipping_class_id"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
        <span class="s2">"reviews_allowed"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
        <span class="s2">"average_rating"</span><span class="p">:</span> <span class="s2">"0.00"</span><span class="p">,</span>
        <span class="s2">"rating_count"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
        <span class="s2">"related_ids"</span><span class="p">:</span> <span class="p">[</span>
            <span class="mi">659</span><span class="p">,</span>
            <span class="mi">663</span><span class="p">,</span>
            <span class="mi">655</span><span class="p">,</span>
            <span class="mi">673</span><span class="p">,</span>
            <span class="mi">523</span>
        <span class="p">],</span>
        <span class="s2">"upsell_ids"</span><span class="p">:</span> <span class="p">[],</span>
        <span class="s2">"cross_sell_ids"</span><span class="p">:</span> <span class="p">[],</span>
        <span class="s2">"parent_id"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
        <span class="s2">"purchase_note"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"categories"</span><span class="p">:</span> <span class="p">[</span>
            <span class="p">{</span>
                <span class="s2">"id"</span><span class="p">:</span> <span class="mi">15</span><span class="p">,</span>
                <span class="s2">"name"</span><span class="p">:</span> <span class="s2">"Uncategorized"</span><span class="p">,</span>
                <span class="s2">"slug"</span><span class="p">:</span> <span class="s2">"uncategorized"</span>
            <span class="p">}</span>
        <span class="p">],</span>
        <span class="s2">"tags"</span><span class="p">:</span> <span class="p">[],</span>
        <span class="s2">"images"</span><span class="p">:</span> <span class="p">[],</span>
        <span class="s2">"attributes"</span><span class="p">:</span> <span class="p">[],</span>
        <span class="s2">"default_attributes"</span><span class="p">:</span> <span class="p">[],</span>
        <span class="s2">"variations"</span><span class="p">:</span> <span class="p">[],</span>
        <span class="s2">"grouped_products"</span><span class="p">:</span> <span class="p">[],</span>
        <span class="s2">"menu_order"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
        <span class="s2">"meta_data"</span><span class="p">:</span> <span class="p">[</span>
            <span class="p">{</span>
                <span class="s2">"id"</span><span class="p">:</span> <span class="mi">19191</span><span class="p">,</span>
                <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_wc_booking_base_cost"</span><span class="p">,</span>
                <span class="s2">"value"</span><span class="p">:</span> <span class="s2">"0"</span>
            <span class="p">},</span>
            <span class="p">{</span>
                <span class="s2">"id"</span><span class="p">:</span> <span class="mi">19192</span><span class="p">,</span>
                <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_wc_booking_resouce_label"</span><span class="p">,</span>
                <span class="s2">"value"</span><span class="p">:</span> <span class="s2">""</span>
            <span class="p">},</span>
            <span class="p">{</span>
                <span class="s2">"id"</span><span class="p">:</span> <span class="mi">19193</span><span class="p">,</span>
                <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_product_addons"</span><span class="p">,</span>
                <span class="s2">"value"</span><span class="p">:</span> <span class="p">[]</span>
            <span class="p">},</span>
            <span class="p">{</span>
                <span class="s2">"id"</span><span class="p">:</span> <span class="mi">19194</span><span class="p">,</span>
                <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_product_addons_exclude_global"</span><span class="p">,</span>
                <span class="s2">"value"</span><span class="p">:</span> <span class="s2">"0"</span>
            <span class="p">},</span>
            <span class="p">{</span>
                <span class="s2">"id"</span><span class="p">:</span> <span class="mi">19195</span><span class="p">,</span>
                <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_nyp"</span><span class="p">,</span>
                <span class="s2">"value"</span><span class="p">:</span> <span class="s2">"no"</span>
            <span class="p">},</span>
            <span class="p">{</span>
                <span class="s2">"id"</span><span class="p">:</span> <span class="mi">19196</span><span class="p">,</span>
                <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_suggested_price"</span><span class="p">,</span>
                <span class="s2">"value"</span><span class="p">:</span> <span class="s2">""</span>
            <span class="p">},</span>
            <span class="p">{</span>
                <span class="s2">"id"</span><span class="p">:</span> <span class="mi">19197</span><span class="p">,</span>
                <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_min_price"</span><span class="p">,</span>
                <span class="s2">"value"</span><span class="p">:</span> <span class="s2">""</span>
            <span class="p">},</span>
            <span class="p">{</span>
                <span class="s2">"id"</span><span class="p">:</span> <span class="mi">19198</span><span class="p">,</span>
                <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_hide_nyp_minimum"</span><span class="p">,</span>
                <span class="s2">"value"</span><span class="p">:</span> <span class="s2">"no"</span>
            <span class="p">},</span>
            <span class="p">{</span>
                <span class="s2">"id"</span><span class="p">:</span> <span class="mi">19199</span><span class="p">,</span>
                <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_maximum_price"</span><span class="p">,</span>
                <span class="s2">"value"</span><span class="p">:</span> <span class="s2">""</span>
            <span class="p">},</span>
            <span class="p">{</span>
                <span class="s2">"id"</span><span class="p">:</span> <span class="mi">19200</span><span class="p">,</span>
                <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_wcopc"</span><span class="p">,</span>
                <span class="s2">"value"</span><span class="p">:</span> <span class="s2">"no"</span>
            <span class="p">}</span>
        <span class="p">],</span>
        <span class="s2">"apply_adjacent_buffer"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"availability"</span><span class="p">:</span> <span class="p">[],</span>
        <span class="s2">"block_cost"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
        <span class="s2">"buffer_period"</span><span class="p">:</span> <span class="mi">30</span><span class="p">,</span>
        <span class="s2">"calendar_display_mode"</span><span class="p">:</span> <span class="s2">"always_visible"</span><span class="p">,</span>
        <span class="s2">"cancel_limit_unit"</span><span class="p">:</span> <span class="s2">"month"</span><span class="p">,</span>
        <span class="s2">"cancel_limit"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
        <span class="s2">"check_start_block_only"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"cost"</span><span class="p">:</span> <span class="mi">100</span><span class="p">,</span>
        <span class="s2">"default_date_availability"</span><span class="p">:</span> <span class="s2">"non-available"</span><span class="p">,</span>
        <span class="s2">"display_cost"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"duration_type"</span><span class="p">:</span> <span class="s2">"fixed"</span><span class="p">,</span>
        <span class="s2">"duration_unit"</span><span class="p">:</span> <span class="s2">"minute"</span><span class="p">,</span>
        <span class="s2">"duration"</span><span class="p">:</span> <span class="mi">90</span><span class="p">,</span>
        <span class="s2">"enable_range_picker"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"first_block_time"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"has_person_cost_multiplier"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"has_person_qty_multiplier"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"has_person_types"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"has_persons"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
        <span class="s2">"has_resources"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
        <span class="s2">"has_restricted_days"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"max_date"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"value"</span><span class="p">:</span> <span class="mi">6</span><span class="p">,</span>
            <span class="s2">"unit"</span><span class="p">:</span> <span class="s2">"month"</span>
        <span class="p">},</span>
        <span class="s2">"max_date_value"</span><span class="p">:</span> <span class="mi">6</span><span class="p">,</span>
        <span class="s2">"max_date_unit"</span><span class="p">:</span> <span class="s2">"month"</span><span class="p">,</span>
        <span class="s2">"max_duration"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
        <span class="s2">"max_persons"</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span>
        <span class="s2">"min_date"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"value"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
            <span class="s2">"unit"</span><span class="p">:</span> <span class="s2">"month"</span>
        <span class="p">},</span>
        <span class="s2">"min_date_value"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
        <span class="s2">"min_date_unit"</span><span class="p">:</span> <span class="s2">"month"</span><span class="p">,</span>
        <span class="s2">"min_duration"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
        <span class="s2">"min_persons"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
        <span class="s2">"person_types"</span><span class="p">:</span> <span class="p">[],</span>
        <span class="s2">"pricing"</span><span class="p">:</span> <span class="p">[</span>
            <span class="p">{</span>
                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"persons"</span><span class="p">,</span>
                <span class="s2">"cost"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
                <span class="s2">"modifier"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
                <span class="s2">"base_cost"</span><span class="p">:</span> <span class="s2">"60"</span><span class="p">,</span>
                <span class="s2">"base_modifier"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
                <span class="s2">"from"</span><span class="p">:</span> <span class="s2">"2"</span><span class="p">,</span>
                <span class="s2">"to"</span><span class="p">:</span> <span class="s2">"2"</span>
            <span class="p">}</span>
        <span class="p">],</span>
        <span class="s2">"qty"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
        <span class="s2">"requires_confirmation"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"resource_label"</span><span class="p">:</span> <span class="s2">"Training Location"</span><span class="p">,</span>
        <span class="s2">"resource_base_costs"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"656"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
            <span class="s2">"657"</span><span class="p">:</span> <span class="s2">"50"</span>
        <span class="p">},</span>
        <span class="s2">"resource_block_costs"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"656"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
            <span class="s2">"657"</span><span class="p">:</span> <span class="s2">""</span>
        <span class="p">},</span>
        <span class="s2">"resource_ids"</span><span class="p">:</span> <span class="p">[</span>
            <span class="mi">656</span><span class="p">,</span>
            <span class="mi">657</span>
        <span class="p">],</span>
        <span class="s2">"resources_assignment"</span><span class="p">:</span> <span class="s2">"customer"</span><span class="p">,</span>
        <span class="s2">"restricted_days"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"0"</span><span class="p">:</span> <span class="s2">"0"</span><span class="p">,</span>
            <span class="s2">"6"</span><span class="p">:</span> <span class="s2">"6"</span>
        <span class="p">},</span>
        <span class="s2">"can_be_cancelled"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"user_can_cancel"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"_links"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"self"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/products/680"</span>
                <span class="p">}</span>
            <span class="p">],</span>
            <span class="s2">"collection"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/products"</span>
                <span class="p">}</span>
            <span class="p">]</span>
        <span class="p">}</span>
    <span class="p">},</span>
    <span class="p">{</span>
        <span class="s2">"id"</span><span class="p">:</span> <span class="mi">655</span><span class="p">,</span>
        <span class="s2">"name"</span><span class="p">:</span> <span class="s2">"Fitness Photo Shoot"</span><span class="p">,</span>
        <span class="s2">"slug"</span><span class="p">:</span> <span class="s2">"fitness-photo-shoot"</span><span class="p">,</span>
        <span class="s2">"permalink"</span><span class="p">:</span> <span class="s2">"https://example.com/product/fitness-photo-shoot/"</span><span class="p">,</span>
        <span class="s2">"date_created"</span><span class="p">:</span> <span class="s2">"2020-04-09T13:38:30"</span><span class="p">,</span>
        <span class="s2">"date_created_gmt"</span><span class="p">:</span> <span class="s2">"2020-04-09T13:38:30"</span><span class="p">,</span>
        <span class="s2">"date_modified"</span><span class="p">:</span> <span class="s2">"2020-04-22T19:04:49"</span><span class="p">,</span>
        <span class="s2">"date_modified_gmt"</span><span class="p">:</span> <span class="s2">"2020-04-22T19:04:49"</span><span class="p">,</span>
        <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"booking"</span><span class="p">,</span>
        <span class="s2">"status"</span><span class="p">:</span> <span class="s2">"publish"</span><span class="p">,</span>
        <span class="s2">"featured"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"catalog_visibility"</span><span class="p">:</span> <span class="s2">"visible"</span><span class="p">,</span>
        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"short_description"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"sku"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"price"</span><span class="p">:</span> <span class="s2">"200"</span><span class="p">,</span>
        <span class="s2">"regular_price"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"sale_price"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"date_on_sale_from"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
        <span class="s2">"date_on_sale_from_gmt"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
        <span class="s2">"date_on_sale_to"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
        <span class="s2">"date_on_sale_to_gmt"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
        <span class="s2">"price_html"</span><span class="p">:</span> <span class="s2">"From: &lt;span class=</span><span class="se">"</span><span class="s2">woocommerce-Price-amount amount</span><span class="se">"</span><span class="s2">&gt;&lt;span class=</span><span class="se">"</span><span class="s2">woocommerce-Price-currencySymbol</span><span class="se">"</span><span class="s2">&gt;&amp;#36;&lt;/span&gt;200.00&lt;/span&gt;"</span><span class="p">,</span>
        <span class="s2">"on_sale"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"purchasable"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
        <span class="s2">"total_sales"</span><span class="p">:</span> <span class="mi">4</span><span class="p">,</span>
        <span class="s2">"virtual"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
        <span class="s2">"downloadable"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"downloads"</span><span class="p">:</span> <span class="p">[],</span>
        <span class="s2">"download_limit"</span><span class="p">:</span> <span class="mi">-1</span><span class="p">,</span>
        <span class="s2">"download_expiry"</span><span class="p">:</span> <span class="mi">-1</span><span class="p">,</span>
        <span class="s2">"external_url"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"button_text"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"tax_status"</span><span class="p">:</span> <span class="s2">"taxable"</span><span class="p">,</span>
        <span class="s2">"tax_class"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"manage_stock"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"stock_quantity"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
        <span class="s2">"stock_status"</span><span class="p">:</span> <span class="s2">"instock"</span><span class="p">,</span>
        <span class="s2">"backorders"</span><span class="p">:</span> <span class="s2">"no"</span><span class="p">,</span>
        <span class="s2">"backorders_allowed"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"backordered"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"sold_individually"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
        <span class="s2">"weight"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"dimensions"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"length"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
            <span class="s2">"width"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
            <span class="s2">"height"</span><span class="p">:</span> <span class="s2">""</span>
        <span class="p">},</span>
        <span class="s2">"shipping_required"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"shipping_taxable"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"shipping_class"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"shipping_class_id"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
        <span class="s2">"reviews_allowed"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
        <span class="s2">"average_rating"</span><span class="p">:</span> <span class="s2">"0.00"</span><span class="p">,</span>
        <span class="s2">"rating_count"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
        <span class="s2">"related_ids"</span><span class="p">:</span> <span class="p">[</span>
            <span class="mi">510</span><span class="p">,</span>
            <span class="mi">522</span><span class="p">,</span>
            <span class="mi">523</span><span class="p">,</span>
            <span class="mi">663</span><span class="p">,</span>
            <span class="mi">673</span>
        <span class="p">],</span>
        <span class="s2">"upsell_ids"</span><span class="p">:</span> <span class="p">[],</span>
        <span class="s2">"cross_sell_ids"</span><span class="p">:</span> <span class="p">[],</span>
        <span class="s2">"parent_id"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
        <span class="s2">"purchase_note"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"categories"</span><span class="p">:</span> <span class="p">[</span>
            <span class="p">{</span>
                <span class="s2">"id"</span><span class="p">:</span> <span class="mi">15</span><span class="p">,</span>
                <span class="s2">"name"</span><span class="p">:</span> <span class="s2">"Uncategorized"</span><span class="p">,</span>
                <span class="s2">"slug"</span><span class="p">:</span> <span class="s2">"uncategorized"</span>
            <span class="p">}</span>
        <span class="p">],</span>
        <span class="s2">"tags"</span><span class="p">:</span> <span class="p">[],</span>
        <span class="s2">"images"</span><span class="p">:</span> <span class="p">[],</span>
        <span class="s2">"attributes"</span><span class="p">:</span> <span class="p">[],</span>
        <span class="s2">"default_attributes"</span><span class="p">:</span> <span class="p">[],</span>
        <span class="s2">"variations"</span><span class="p">:</span> <span class="p">[],</span>
        <span class="s2">"grouped_products"</span><span class="p">:</span> <span class="p">[],</span>
        <span class="s2">"menu_order"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
        <span class="s2">"meta_data"</span><span class="p">:</span> <span class="p">[</span>
            <span class="p">{</span>
                <span class="s2">"id"</span><span class="p">:</span> <span class="mi">18087</span><span class="p">,</span>
                <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_wc_booking_base_cost"</span><span class="p">,</span>
                <span class="s2">"value"</span><span class="p">:</span> <span class="s2">"0"</span>
            <span class="p">},</span>
            <span class="p">{</span>
                <span class="s2">"id"</span><span class="p">:</span> <span class="mi">18117</span><span class="p">,</span>
                <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_wc_booking_resouce_label"</span><span class="p">,</span>
                <span class="s2">"value"</span><span class="p">:</span> <span class="s2">""</span>
            <span class="p">},</span>
            <span class="p">{</span>
                <span class="s2">"id"</span><span class="p">:</span> <span class="mi">18134</span><span class="p">,</span>
                <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_product_addons"</span><span class="p">,</span>
                <span class="s2">"value"</span><span class="p">:</span> <span class="p">[]</span>
            <span class="p">},</span>
            <span class="p">{</span>
                <span class="s2">"id"</span><span class="p">:</span> <span class="mi">18135</span><span class="p">,</span>
                <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_product_addons_exclude_global"</span><span class="p">,</span>
                <span class="s2">"value"</span><span class="p">:</span> <span class="s2">"0"</span>
            <span class="p">},</span>
            <span class="p">{</span>
                <span class="s2">"id"</span><span class="p">:</span> <span class="mi">18895</span><span class="p">,</span>
                <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_nyp"</span><span class="p">,</span>
                <span class="s2">"value"</span><span class="p">:</span> <span class="s2">"no"</span>
            <span class="p">},</span>
            <span class="p">{</span>
                <span class="s2">"id"</span><span class="p">:</span> <span class="mi">18896</span><span class="p">,</span>
                <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_suggested_price"</span><span class="p">,</span>
                <span class="s2">"value"</span><span class="p">:</span> <span class="s2">""</span>
            <span class="p">},</span>
            <span class="p">{</span>
                <span class="s2">"id"</span><span class="p">:</span> <span class="mi">18897</span><span class="p">,</span>
                <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_min_price"</span><span class="p">,</span>
                <span class="s2">"value"</span><span class="p">:</span> <span class="s2">""</span>
            <span class="p">},</span>
            <span class="p">{</span>
                <span class="s2">"id"</span><span class="p">:</span> <span class="mi">18898</span><span class="p">,</span>
                <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_hide_nyp_minimum"</span><span class="p">,</span>
                <span class="s2">"value"</span><span class="p">:</span> <span class="s2">"no"</span>
            <span class="p">},</span>
            <span class="p">{</span>
                <span class="s2">"id"</span><span class="p">:</span> <span class="mi">18899</span><span class="p">,</span>
                <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_maximum_price"</span><span class="p">,</span>
                <span class="s2">"value"</span><span class="p">:</span> <span class="s2">""</span>
            <span class="p">},</span>
            <span class="p">{</span>
                <span class="s2">"id"</span><span class="p">:</span> <span class="mi">18900</span><span class="p">,</span>
                <span class="s2">"key"</span><span class="p">:</span> <span class="s2">"_wcopc"</span><span class="p">,</span>
                <span class="s2">"value"</span><span class="p">:</span> <span class="s2">"no"</span>
            <span class="p">}</span>
        <span class="p">],</span>
        <span class="s2">"apply_adjacent_buffer"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"availability"</span><span class="p">:</span> <span class="p">[],</span>
        <span class="s2">"block_cost"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
        <span class="s2">"buffer_period"</span><span class="p">:</span> <span class="mi">30</span><span class="p">,</span>
        <span class="s2">"calendar_display_mode"</span><span class="p">:</span> <span class="s2">"always_visible"</span><span class="p">,</span>
        <span class="s2">"cancel_limit_unit"</span><span class="p">:</span> <span class="s2">"month"</span><span class="p">,</span>
        <span class="s2">"cancel_limit"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
        <span class="s2">"check_start_block_only"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"cost"</span><span class="p">:</span> <span class="mi">200</span><span class="p">,</span>
        <span class="s2">"default_date_availability"</span><span class="p">:</span> <span class="s2">"non-available"</span><span class="p">,</span>
        <span class="s2">"display_cost"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"duration_type"</span><span class="p">:</span> <span class="s2">"fixed"</span><span class="p">,</span>
        <span class="s2">"duration_unit"</span><span class="p">:</span> <span class="s2">"minute"</span><span class="p">,</span>
        <span class="s2">"duration"</span><span class="p">:</span> <span class="mi">90</span><span class="p">,</span>
        <span class="s2">"enable_range_picker"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"first_block_time"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"has_person_cost_multiplier"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"has_person_qty_multiplier"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"has_person_types"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"has_persons"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
        <span class="s2">"has_resources"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
        <span class="s2">"has_restricted_days"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"max_date"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"value"</span><span class="p">:</span> <span class="mi">6</span><span class="p">,</span>
            <span class="s2">"unit"</span><span class="p">:</span> <span class="s2">"month"</span>
        <span class="p">},</span>
        <span class="s2">"max_date_value"</span><span class="p">:</span> <span class="mi">6</span><span class="p">,</span>
        <span class="s2">"max_date_unit"</span><span class="p">:</span> <span class="s2">"month"</span><span class="p">,</span>
        <span class="s2">"max_duration"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
        <span class="s2">"max_persons"</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span>
        <span class="s2">"min_date"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"value"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
            <span class="s2">"unit"</span><span class="p">:</span> <span class="s2">"month"</span>
        <span class="p">},</span>
        <span class="s2">"min_date_value"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
        <span class="s2">"min_date_unit"</span><span class="p">:</span> <span class="s2">"month"</span><span class="p">,</span>
        <span class="s2">"min_duration"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
        <span class="s2">"min_persons"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
        <span class="s2">"person_types"</span><span class="p">:</span> <span class="p">[],</span>
        <span class="s2">"pricing"</span><span class="p">:</span> <span class="p">[</span>
            <span class="p">{</span>
                <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"persons"</span><span class="p">,</span>
                <span class="s2">"cost"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
                <span class="s2">"modifier"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
                <span class="s2">"base_cost"</span><span class="p">:</span> <span class="s2">"60"</span><span class="p">,</span>
                <span class="s2">"base_modifier"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
                <span class="s2">"from"</span><span class="p">:</span> <span class="s2">"2"</span><span class="p">,</span>
                <span class="s2">"to"</span><span class="p">:</span> <span class="s2">"2"</span>
            <span class="p">}</span>
        <span class="p">],</span>
        <span class="s2">"qty"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
        <span class="s2">"requires_confirmation"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"resource_label"</span><span class="p">:</span> <span class="s2">"Shoot Location"</span><span class="p">,</span>
        <span class="s2">"resource_base_costs"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"656"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
            <span class="s2">"657"</span><span class="p">:</span> <span class="s2">"50"</span>
        <span class="p">},</span>
        <span class="s2">"resource_block_costs"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"656"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
            <span class="s2">"657"</span><span class="p">:</span> <span class="s2">""</span>
        <span class="p">},</span>
        <span class="s2">"resource_ids"</span><span class="p">:</span> <span class="p">[</span>
            <span class="mi">656</span><span class="p">,</span>
            <span class="mi">657</span>
        <span class="p">],</span>
        <span class="s2">"resources_assignment"</span><span class="p">:</span> <span class="s2">"customer"</span><span class="p">,</span>
        <span class="s2">"restricted_days"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"0"</span><span class="p">:</span> <span class="s2">"0"</span><span class="p">,</span>
            <span class="s2">"6"</span><span class="p">:</span> <span class="s2">"6"</span>
        <span class="p">},</span>
        <span class="s2">"can_be_cancelled"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"user_can_cancel"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
        <span class="s2">"_links"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"self"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/products/655"</span>
                <span class="p">}</span>
            <span class="p">],</span>
            <span class="s2">"collection"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/products"</span>
                <span class="p">}</span>
            <span class="p">]</span>
        <span class="p">}</span>
    <span class="p">}</span>
<span class="p">]</span>
</code></pre>
<h4 id="available-parameters">Available parameters</h4>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>resource</code></td>
<td>integer</td>
<td>Resource ID attached to a bookable product.</td>
</tr>
<tr>
<td><code>page</code></td>
<td>integer</td>
<td>Current page of the collection. Default is <code>1</code>.</td>
</tr>
<tr>
<td><code>per_page</code></td>
<td>integer</td>
<td>Maximum number of items to be returned in result set. Default is <code>10</code>.</td>
</tr>
<tr>
<td><code>search</code></td>
<td>string</td>
<td>Limit results to those matching a string.</td>
</tr>
<tr>
<td><code>after</code></td>
<td>string</td>
<td>Limit response to resources published after a given ISO8601 compliant date.</td>
</tr>
<tr>
<td><code>before</code></td>
<td>string</td>
<td>Limit response to resources published before a given ISO8601 compliant date.</td>
</tr>
<tr>
<td><code>exclude</code></td>
<td>array</td>
<td>Ensure result set excludes specific IDs.</td>
</tr>
<tr>
<td><code>include</code></td>
<td>array</td>
<td>Limit result set to specific ids.</td>
</tr>
<tr>
<td><code>offset</code></td>
<td>integer</td>
<td>Offset the result set by a specific number of items.</td>
</tr>
<tr>
<td><code>order</code></td>
<td>string</td>
<td>Order sort attribute ascending or descending. Options: <code>asc</code> and <code>desc</code>. Default is <code>desc</code>.</td>
</tr>
<tr>
<td><code>orderby</code></td>
<td>string</td>
<td>Sort collection by object attribute. Options: <code>date</code>, <code>id</code>, <code>include</code>, <code>title</code> and <code>slug</code>. Default is <code>date</code>.</td>
</tr>
<tr>
<td><code>parent</code></td>
<td>array</td>
<td>Limit result set to those of particular parent IDs.</td>
</tr>
<tr>
<td><code>parent_exclude</code></td>
<td>array</td>
<td>Limit result set to all items except those of a particular parent ID.</td>
</tr>
<tr>
<td><code>slug</code></td>
<td>string</td>
<td>Limit result set to products with a specific slug.</td>
</tr>
<tr>
<td><code>status</code></td>
<td>string</td>
<td>Limit result set to products assigned a specific status. Options: <code>any</code>, <code>draft</code>, <code>pending</code>, <code>private</code> and <code>publish</code>. Default is <code>any</code>.</td>
</tr>
<tr>
<td><code>type</code></td>
<td>string</td>
<td>Limit result set to products assigned a specific type. Options: <code>simple</code>, <code>grouped</code>, <code>external</code> and <code>variable</code>.</td>
</tr>
<tr>
<td><code>sku</code></td>
<td>string</td>
<td>Limit result set to products with a specific SKU.</td>
</tr>
<tr>
<td><code>featured</code></td>
<td>boolean</td>
<td>Limit result set to featured products.</td>
</tr>
<tr>
<td><code>category</code></td>
<td>string</td>
<td>Limit result set to products assigned a specific category ID.</td>
</tr>
<tr>
<td><code>tag</code></td>
<td>string</td>
<td>Limit result set to products assigned a specific tag ID.</td>
</tr>
<tr>
<td><code>shipping_class</code></td>
<td>string</td>
<td>Limit result set to products assigned a specific shipping class ID.</td>
</tr>
<tr>
<td><code>attribute</code></td>
<td>string</td>
<td>Limit result set to products with a specific attribute.</td>
</tr>
<tr>
<td><code>attribute_term</code></td>
<td>string</td>
<td>Limit result set to products with a specific attribute term ID (required an assigned attribute).</td>
</tr>
<tr>
<td><code>tax_class</code></td>
<td>string</td>
<td>Limit result set to products with a specific tax class. Default options: <code>standard</code>, <code>reduced-rate</code> and <code>zero-rate</code>.</td>
</tr>
<tr>
<td><code>on_sale</code></td>
<td>boolean</td>
<td>Limit result set to products on sale.</td>
</tr>
<tr>
<td><code>min_price</code></td>
<td>string</td>
<td>Limit result set to products based on a minimum price.</td>
</tr>
<tr>
<td><code>max_price</code></td>
<td>string</td>
<td>Limit result set to products based on a maximum price.</td>
</tr>
<tr>
<td><code>stock_status</code></td>
<td>string</td>
<td>Limit result set to products with specified stock status. Options: <code>instock</code>, <code>outofstock</code> and <code>onbackorder</code>.</td>
</tr>
</tbody>
</table>
<h2 id="update-a-bookable-product">Update a bookable product</h2>
<p>This API helps you to update an existing bookable product.</p>
<h3 id="http-request-3">HTTP request</h3>
<div class="api-endpoint">
<div class="endpoint-data"><i class="label label-post">PUT</i> </p>
<h6>/wp-json/wc-bookings/v1/products/&lt;id&gt;</h6>
</div>
</div>
<blockquote>
<p>Example of updating an existing booking:</p>
</blockquote>
<pre class="highlight shell tab-shell"><code>curl -X PUT https://example.com/wp-json/wc-bookings/v1/products/684 <span class="se"></span>
    -u consumer_key:consumer_secret <span class="se"></span>
    -d <span class="s1">'{
    "name": "Fitness Video Shoot",
    "cost": 50,
    "featured": true,
    "requires_confirmation": true
    }'</span>
</code></pre>
<blockquote>
<p>JSON response example:</p>
</blockquote>
<pre class="highlight json tab-json"><code><span class="p">{</span>
    <span class="s2">"id"</span><span class="p">:</span> <span class="mi">684</span><span class="p">,</span>
    <span class="s2">"name"</span><span class="p">:</span> <span class="s2">"Fitness Video Shoot"</span><span class="p">,</span>
    <span class="s2">"slug"</span><span class="p">:</span> <span class="s2">"product-2"</span><span class="p">,</span>
    <span class="s2">"permalink"</span><span class="p">:</span> <span class="s2">"https://example.com/product/product-2/"</span><span class="p">,</span>
    <span class="s2">"date_created"</span><span class="p">:</span> <span class="s2">"2020-04-23T13:38:43"</span><span class="p">,</span>
    <span class="s2">"date_created_gmt"</span><span class="p">:</span> <span class="s2">"2020-04-23T13:38:43"</span><span class="p">,</span>
    <span class="s2">"date_modified"</span><span class="p">:</span> <span class="s2">"2020-04-23T13:43:58"</span><span class="p">,</span>
    <span class="s2">"date_modified_gmt"</span><span class="p">:</span> <span class="s2">"2020-04-23T13:43:58"</span><span class="p">,</span>
    <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"booking"</span><span class="p">,</span>
    <span class="s2">"status"</span><span class="p">:</span> <span class="s2">"publish"</span><span class="p">,</span>
    <span class="s2">"featured"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
    <span class="s2">"catalog_visibility"</span><span class="p">:</span> <span class="s2">"visible"</span><span class="p">,</span>
    <span class="s2">"description"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"short_description"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"sku"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"price"</span><span class="p">:</span> <span class="s2">"50"</span><span class="p">,</span>
    <span class="s2">"regular_price"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"sale_price"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"date_on_sale_from"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
    <span class="s2">"date_on_sale_from_gmt"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
    <span class="s2">"date_on_sale_to"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
    <span class="s2">"date_on_sale_to_gmt"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
    <span class="s2">"price_html"</span><span class="p">:</span> <span class="s2">"&lt;span class=</span><span class="se">"</span><span class="s2">woocommerce-Price-amount amount</span><span class="se">"</span><span class="s2">&gt;&lt;span class=</span><span class="se">"</span><span class="s2">woocommerce-Price-currencySymbol</span><span class="se">"</span><span class="s2">&gt;&amp;#36;&lt;/span&gt;50.00&lt;/span&gt;"</span><span class="p">,</span>
    <span class="s2">"on_sale"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"purchasable"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
    <span class="s2">"total_sales"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"virtual"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"downloadable"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"downloads"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"download_limit"</span><span class="p">:</span> <span class="mi">-1</span><span class="p">,</span>
    <span class="s2">"download_expiry"</span><span class="p">:</span> <span class="mi">-1</span><span class="p">,</span>
    <span class="s2">"external_url"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"button_text"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"tax_status"</span><span class="p">:</span> <span class="s2">"taxable"</span><span class="p">,</span>
    <span class="s2">"tax_class"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"manage_stock"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"stock_quantity"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
    <span class="s2">"stock_status"</span><span class="p">:</span> <span class="s2">"instock"</span><span class="p">,</span>
    <span class="s2">"backorders"</span><span class="p">:</span> <span class="s2">"no"</span><span class="p">,</span>
    <span class="s2">"backorders_allowed"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"backordered"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"sold_individually"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
    <span class="s2">"weight"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"dimensions"</span><span class="p">:</span> <span class="p">{</span>
        <span class="s2">"length"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"width"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"height"</span><span class="p">:</span> <span class="s2">""</span>
    <span class="p">},</span>
    <span class="s2">"shipping_required"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
    <span class="s2">"shipping_taxable"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
    <span class="s2">"shipping_class"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"shipping_class_id"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"reviews_allowed"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
    <span class="s2">"average_rating"</span><span class="p">:</span> <span class="s2">"0"</span><span class="p">,</span>
    <span class="s2">"rating_count"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"related_ids"</span><span class="p">:</span> <span class="p">[</span>
        <span class="mi">663</span><span class="p">,</span>
        <span class="mi">523</span><span class="p">,</span>
        <span class="mi">680</span><span class="p">,</span>
        <span class="mi">655</span><span class="p">,</span>
        <span class="mi">510</span>
    <span class="p">],</span>
    <span class="s2">"upsell_ids"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"cross_sell_ids"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"parent_id"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"purchase_note"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"categories"</span><span class="p">:</span> <span class="p">[</span>
        <span class="p">{</span>
            <span class="s2">"id"</span><span class="p">:</span> <span class="mi">15</span><span class="p">,</span>
            <span class="s2">"name"</span><span class="p">:</span> <span class="s2">"Uncategorized"</span><span class="p">,</span>
            <span class="s2">"slug"</span><span class="p">:</span> <span class="s2">"uncategorized"</span>
        <span class="p">}</span>
    <span class="p">],</span>
    <span class="s2">"tags"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"images"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"attributes"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"default_attributes"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"variations"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"grouped_products"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"menu_order"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"meta_data"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"apply_adjacent_buffer"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"availability"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"block_cost"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"buffer_period"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"calendar_display_mode"</span><span class="p">:</span> <span class="s2">"always_visible"</span><span class="p">,</span>
    <span class="s2">"cancel_limit_unit"</span><span class="p">:</span> <span class="s2">"month"</span><span class="p">,</span>
    <span class="s2">"cancel_limit"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
    <span class="s2">"check_start_block_only"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"cost"</span><span class="p">:</span> <span class="mi">50</span><span class="p">,</span>
    <span class="s2">"default_date_availability"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"display_cost"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"duration_type"</span><span class="p">:</span> <span class="s2">"fixed"</span><span class="p">,</span>
    <span class="s2">"duration_unit"</span><span class="p">:</span> <span class="s2">"day"</span><span class="p">,</span>
    <span class="s2">"duration"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
    <span class="s2">"enable_range_picker"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"first_block_time"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"has_person_cost_multiplier"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"has_person_qty_multiplier"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"has_person_types"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"has_persons"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"has_resources"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"has_restricted_days"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"max_date_value"</span><span class="p">:</span> <span class="mi">12</span><span class="p">,</span>
    <span class="s2">"max_date_unit"</span><span class="p">:</span> <span class="s2">"month"</span><span class="p">,</span>
    <span class="s2">"max_duration"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
    <span class="s2">"max_persons"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
    <span class="s2">"min_date_value"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"min_date_unit"</span><span class="p">:</span> <span class="s2">"day"</span><span class="p">,</span>
    <span class="s2">"min_duration"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
    <span class="s2">"min_persons"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
    <span class="s2">"person_types"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"pricing"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"qty"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
    <span class="s2">"requires_confirmation"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
    <span class="s2">"resource_label"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"resource_base_costs"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"resource_block_costs"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"resource_ids"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"resources_assignment"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"restricted_days"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"can_be_cancelled"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"user_can_cancel"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"_links"</span><span class="p">:</span> <span class="p">{</span>
        <span class="s2">"self"</span><span class="p">:</span> <span class="p">[</span>
            <span class="p">{</span>
                <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/products/684"</span>
            <span class="p">}</span>
        <span class="p">],</span>
        <span class="s2">"collection"</span><span class="p">:</span> <span class="p">[</span>
            <span class="p">{</span>
                <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/products"</span>
            <span class="p">}</span>
        <span class="p">]</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre>
<h4 id="available-parameters-2">Available parameters</h4>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>resource_ids</code></td>
<td>array</td>
<td>Resource IDs attached to a bookable product.</td>
</tr>
<tr>
<td><code>parent</code></td>
<td>array</td>
<td>Set parent post ID.</td>
</tr>
<tr>
<td><code>slug</code></td>
<td>string</td>
<td>Set bookable product slug.</td>
</tr>
<tr>
<td><code>status</code></td>
<td>string</td>
<td>Change status of bookable product. Options: <code>any</code>, <code>draft</code>, <code>pending</code>, <code>private</code> and <code>publish</code>. Default is <code>any</code>.</td>
</tr>
<tr>
<td><code>featured</code></td>
<td>boolean</td>
<td>Set bookable product as a featured product.</td>
</tr>
<tr>
<td><code>categories</code></td>
<td>array</td>
<td>Set the categories assigned to the bookable product.</td>
</tr>
<tr>
<td><code>tags</code></td>
<td>array</td>
<td>Set the tags assigned to the bookable product.</td>
</tr>
<tr>
<td><code>tax_class</code></td>
<td>string</td>
<td>Set tax class assigned to the bookable product. Default options: <code>standard</code>, <code>reduced-rate</code> and <code>zero-rate</code>.</td>
</tr>
<tr>
<td><code>on_sale</code></td>
<td>boolean</td>
<td>Set bookable product on sale.</td>
</tr>
<tr>
<td><code>stock_status</code></td>
<td>string</td>
<td>Set product stock status. Options: <code>instock</code>, <code>outofstock</code> and <code>onbackorder</code>.</td>
</tr>
<tr>
<td><code>apply_adjacent_buffer</code></td>
<td>boolean</td>
<td>Use adjacent buffering for calculating availability.</td>
</tr>
<tr>
<td><code>availability</code></td>
<td>array</td>
<td>List of custom availability rules.</td>
</tr>
<tr>
<td><code>block_cost</code></td>
<td>integer</td>
<td>Block cost of the bookable product.</td>
</tr>
<tr>
<td><code>buffer_period</code></td>
<td>integer</td>
<td>Time(minutes) to apply a buffer between bookings.</td>
</tr>
<tr>
<td><code>calendar_display_mode</code></td>
<td>string</td>
<td>Calendar display mode on the product page.</td>
</tr>
<tr>
<td><code>cancel_limit_unit</code></td>
<td>string</td>
<td>The unit type for the cancellation limit.</td>
</tr>
<tr>
<td><code>cancel_limit</code></td>
<td>integer</td>
<td>The length of the cancellation limit.</td>
</tr>
<tr>
<td><code>check_start_block_only</code></td>
<td>boolean</td>
<td>Check availability only from the starting block.</td>
</tr>
<tr>
<td><code>cost</code></td>
<td>integer</td>
<td>The base cost of the bookable product.</td>
</tr>
<tr>
<td><code>default_date_availability</code></td>
<td>string</td>
<td>Make the bookable product available by default.</td>
</tr>
<tr>
<td><code>display_cost</code></td>
<td>string</td>
<td>String override for the booking display cost.</td>
</tr>
<tr>
<td><code>duration_type</code></td>
<td>string</td>
<td>The product&#8217;s block duration(fixed or customer-defined).</td>
</tr>
<tr>
<td><code>duration_unit</code></td>
<td>string</td>
<td>The product&#8217;s block duration unit type(minutes, hours, days).</td>
</tr>
<tr>
<td><code>duration</code></td>
<td>integer</td>
<td>The value of the block duration unit.</td>
</tr>
<tr>
<td><code>enable_range_picker</code></td>
<td>boolean</td>
<td>Enable date range selection on product pages.</td>
</tr>
<tr>
<td><code>first_block_time</code></td>
<td>string</td>
<td>Set a beginning time in which availability is calculated.</td>
</tr>
<tr>
<td><code>has_person_cost_multiplier</code></td>
<td>boolean</td>
<td>Multiply booking costs by number of persons.</td>
</tr>
<tr>
<td><code>has_person_qty_multiplier</code></td>
<td>boolean</td>
<td>Treat each person as a booking.</td>
</tr>
<tr>
<td><code>has_person_types</code></td>
<td>boolean</td>
<td>Enable person types for the product.</td>
</tr>
<tr>
<td><code>has_persons</code></td>
<td>boolean</td>
<td>Enable persons for the product.</td>
</tr>
<tr>
<td><code>has_resources</code></td>
<td>boolean</td>
<td>Enable resources for the product.</td>
</tr>
<tr>
<td><code>has_restricted_days</code></td>
<td>string</td>
<td>Days of week are disabled for availability (&#8220;1&#8221; or &#8220;0&#8221;).</td>
</tr>
<tr>
<td><code>restricted_days</code></td>
<td>object</td>
<td>Days of the week which are disabled, &#8220;0&#8221; through &#8220;6&#8221;.</td>
</tr>
<tr>
<td><code>max_duration</code></td>
<td>integer</td>
<td>Maximum number of blocks per booking.</td>
</tr>
<tr>
<td><code>min_duration</code></td>
<td>integer</td>
<td>Minimum number of blocks per booking.</td>
</tr>
<tr>
<td><code>max_persons</code></td>
<td>integer</td>
<td>Maximum number of persons per booking.</td>
</tr>
<tr>
<td><code>min_persons</code></td>
<td>integer</td>
<td>Minimum number of persons per booking.</td>
</tr>
<tr>
<td><code>person_types</code></td>
<td>object</td>
<td>The person types attached to product, linked by ID.</td>
</tr>
<tr>
<td><code>requires_confirmation</code></td>
<td>boolean</td>
<td>Require admin confirmation for bookings of this product.</td>
</tr>
<tr>
<td><code>resource_label</code></td>
<td>string</td>
<td>Label shown on product page for resource selection.</td>
</tr>
<tr>
<td><code>resource_base_costs</code></td>
<td>object</td>
<td>The base cost per resource attached to product, linked by ID.</td>
</tr>
<tr>
<td><code>resource_block_costs</code></td>
<td>object</td>
<td>The block cost per resource attached to product, linked by ID.</td>
</tr>
<tr>
<td><code>resource_ids</code></td>
<td>object</td>
<td>The resources attached to product, linked by ID.</td>
</tr>
<tr>
<td><code>resources_assignment</code></td>
<td>object</td>
<td>How resources are chosen, either &#8220;automatic&#8221; or &#8220;customer&#8221;.</td>
</tr>
<tr>
<td><code>can_be_cancelled</code></td>
<td>boolean</td>
<td>Allow cancellation of bookings.</td>
</tr>
<tr>
<td><code>user_can_cancel</code></td>
<td>boolean</td>
<td>Allow customer cancellation of bookings.</td>
</tr>
</tbody>
</table>
<h2 id="delete-a-bookable-product">Delete a bookable product</h2>
<p>This API helps you to delete an existing bookable product, changing the post status to &#8220;trash&#8221;.</p>
<h3 id="http-request-4">HTTP request</h3>
<div class="api-endpoint">
<div class="endpoint-data"><i class="label label-post">DELETE</i> </p>
<h6>/wp-json/wc-bookings/v1/bookings/products/&lt;id&gt;</h6>
</div>
</div>
<blockquote>
<p>Example of deleting a specific booking:</p>
</blockquote>
<pre class="highlight shell tab-shell"><code>curl -X DELETE https://example.com/wp-json/wc-bookings/v1/bookings/products/678 <span class="se"></span>
    -u consumer_key:consumer_secret <span class="se"></span>
</code></pre>
<blockquote>
<p>JSON response example:</p>
</blockquote>
<pre class="highlight json tab-json"><code><span class="p">{</span>
    <span class="s2">"id"</span><span class="p">:</span> <span class="mi">684</span><span class="p">,</span>
    <span class="s2">"name"</span><span class="p">:</span> <span class="s2">"Fitness Video Shoot"</span><span class="p">,</span>
    <span class="s2">"slug"</span><span class="p">:</span> <span class="s2">"product-2"</span><span class="p">,</span>
    <span class="s2">"permalink"</span><span class="p">:</span> <span class="s2">"https://example.com/product/product-2/"</span><span class="p">,</span>
    <span class="s2">"date_created"</span><span class="p">:</span> <span class="s2">"2020-04-23T13:38:43"</span><span class="p">,</span>
    <span class="s2">"date_created_gmt"</span><span class="p">:</span> <span class="s2">"2020-04-23T13:38:43"</span><span class="p">,</span>
    <span class="s2">"date_modified"</span><span class="p">:</span> <span class="s2">"2020-04-23T13:49:55"</span><span class="p">,</span>
    <span class="s2">"date_modified_gmt"</span><span class="p">:</span> <span class="s2">"2020-04-23T13:49:55"</span><span class="p">,</span>
    <span class="s2">"type"</span><span class="p">:</span> <span class="s2">"booking"</span><span class="p">,</span>
    <span class="s2">"status"</span><span class="p">:</span> <span class="s2">"publish"</span><span class="p">,</span>
    <span class="s2">"featured"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
    <span class="s2">"catalog_visibility"</span><span class="p">:</span> <span class="s2">"visible"</span><span class="p">,</span>
    <span class="s2">"description"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"short_description"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"sku"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"price"</span><span class="p">:</span> <span class="s2">"50"</span><span class="p">,</span>
    <span class="s2">"regular_price"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"sale_price"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"date_on_sale_from"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
    <span class="s2">"date_on_sale_from_gmt"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
    <span class="s2">"date_on_sale_to"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
    <span class="s2">"date_on_sale_to_gmt"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
    <span class="s2">"price_html"</span><span class="p">:</span> <span class="s2">"&lt;span class=</span><span class="se">"</span><span class="s2">woocommerce-Price-amount amount</span><span class="se">"</span><span class="s2">&gt;&lt;span class=</span><span class="se">"</span><span class="s2">woocommerce-Price-currencySymbol</span><span class="se">"</span><span class="s2">&gt;&amp;#36;&lt;/span&gt;50.00&lt;/span&gt;"</span><span class="p">,</span>
    <span class="s2">"on_sale"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"purchasable"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
    <span class="s2">"total_sales"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"virtual"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"downloadable"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"downloads"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"download_limit"</span><span class="p">:</span> <span class="mi">-1</span><span class="p">,</span>
    <span class="s2">"download_expiry"</span><span class="p">:</span> <span class="mi">-1</span><span class="p">,</span>
    <span class="s2">"external_url"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"button_text"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"tax_status"</span><span class="p">:</span> <span class="s2">"taxable"</span><span class="p">,</span>
    <span class="s2">"tax_class"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"manage_stock"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"stock_quantity"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
    <span class="s2">"stock_status"</span><span class="p">:</span> <span class="s2">"instock"</span><span class="p">,</span>
    <span class="s2">"backorders"</span><span class="p">:</span> <span class="s2">"no"</span><span class="p">,</span>
    <span class="s2">"backorders_allowed"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"backordered"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"sold_individually"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
    <span class="s2">"weight"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"dimensions"</span><span class="p">:</span> <span class="p">{</span>
        <span class="s2">"length"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"width"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"height"</span><span class="p">:</span> <span class="s2">""</span>
    <span class="p">},</span>
    <span class="s2">"shipping_required"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
    <span class="s2">"shipping_taxable"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
    <span class="s2">"shipping_class"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"shipping_class_id"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"reviews_allowed"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
    <span class="s2">"average_rating"</span><span class="p">:</span> <span class="s2">"0"</span><span class="p">,</span>
    <span class="s2">"rating_count"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"related_ids"</span><span class="p">:</span> <span class="p">[</span>
        <span class="mi">522</span><span class="p">,</span>
        <span class="mi">510</span><span class="p">,</span>
        <span class="mi">663</span><span class="p">,</span>
        <span class="mi">659</span><span class="p">,</span>
        <span class="mi">680</span>
    <span class="p">],</span>
    <span class="s2">"upsell_ids"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"cross_sell_ids"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"parent_id"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"purchase_note"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"categories"</span><span class="p">:</span> <span class="p">[</span>
        <span class="p">{</span>
            <span class="s2">"id"</span><span class="p">:</span> <span class="mi">15</span><span class="p">,</span>
            <span class="s2">"name"</span><span class="p">:</span> <span class="s2">"Uncategorized"</span><span class="p">,</span>
            <span class="s2">"slug"</span><span class="p">:</span> <span class="s2">"uncategorized"</span>
        <span class="p">}</span>
    <span class="p">],</span>
    <span class="s2">"tags"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"images"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"attributes"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"default_attributes"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"variations"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"grouped_products"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"menu_order"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"meta_data"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"apply_adjacent_buffer"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"availability"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"block_cost"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"buffer_period"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"calendar_display_mode"</span><span class="p">:</span> <span class="s2">"always_visible"</span><span class="p">,</span>
    <span class="s2">"cancel_limit_unit"</span><span class="p">:</span> <span class="s2">"month"</span><span class="p">,</span>
    <span class="s2">"cancel_limit"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
    <span class="s2">"check_start_block_only"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"cost"</span><span class="p">:</span> <span class="mi">50</span><span class="p">,</span>
    <span class="s2">"default_date_availability"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"display_cost"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"duration_type"</span><span class="p">:</span> <span class="s2">"fixed"</span><span class="p">,</span>
    <span class="s2">"duration_unit"</span><span class="p">:</span> <span class="s2">"day"</span><span class="p">,</span>
    <span class="s2">"duration"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
    <span class="s2">"enable_range_picker"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"first_block_time"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"has_person_cost_multiplier"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"has_person_qty_multiplier"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"has_person_types"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"has_persons"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"has_resources"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"has_restricted_days"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"max_date_value"</span><span class="p">:</span> <span class="mi">12</span><span class="p">,</span>
    <span class="s2">"max_date_unit"</span><span class="p">:</span> <span class="s2">"month"</span><span class="p">,</span>
    <span class="s2">"max_duration"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
    <span class="s2">"max_persons"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
    <span class="s2">"min_date_value"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="s2">"min_date_unit"</span><span class="p">:</span> <span class="s2">"day"</span><span class="p">,</span>
    <span class="s2">"min_duration"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
    <span class="s2">"min_persons"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
    <span class="s2">"person_types"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"pricing"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"qty"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
    <span class="s2">"requires_confirmation"</span><span class="p">:</span> <span class="kc">true</span><span class="p">,</span>
    <span class="s2">"resource_label"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"resource_base_costs"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"resource_block_costs"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"resource_ids"</span><span class="p">:</span> <span class="p">[],</span>
    <span class="s2">"resources_assignment"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"restricted_days"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
    <span class="s2">"can_be_cancelled"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"user_can_cancel"</span><span class="p">:</span> <span class="kc">false</span><span class="p">,</span>
    <span class="s2">"_links"</span><span class="p">:</span> <span class="p">{</span>
        <span class="s2">"self"</span><span class="p">:</span> <span class="p">[</span>
            <span class="p">{</span>
                <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/products/684"</span>
            <span class="p">}</span>
        <span class="p">],</span>
        <span class="s2">"collection"</span><span class="p">:</span> <span class="p">[</span>
            <span class="p">{</span>
                <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/products"</span>
            <span class="p">}</span>
        <span class="p">]</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre>
<h1 id="product-categories">Product categories</h1>
<p>The product categories API allows you to list all categories which have published bookable products.</p>
<h2 id="product-category-properties">Product category properties</h2>
<table>
<thead>
<tr>
<th>Attribute</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>id</code></td>
<td>integer</td>
<td>Unique identifier for the category.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>name</code></td>
<td>string</td>
<td>Category name.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>slug</code></td>
<td>string</td>
<td>An alphanumeric identifier for the category unique to its type.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>parent</code></td>
<td>integer</td>
<td>The ID for the parent of the category.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>description</code></td>
<td>string</td>
<td>HTML description of the category.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>display</code></td>
<td>string</td>
<td>Category archive display type. Options: <code>default</code>, <code>products</code>, <code>subcategories</code> and <code>both</code>. Default is <code>default</code>.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>image</code></td>
<td>object</td>
<td>Image data.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>menu_order</code></td>
<td>integer</td>
<td>Menu order, used to custom sort the category.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>count</code></td>
<td>integer</td>
<td>Number of published products for the resource.<i class="label label-info">READ-ONLY</i></td>
</tr>
</tbody>
</table>
<h2 id="list-all-product-categories">List all product categories</h2>
<p>This API lets you retrieve all product categories which have bookable products.</p>
<div class="api-endpoint">
<div class="endpoint-data"><i class="label label-get">GET</i> </p>
<h6>/wp-json/wc-bookings/v1/products/categories</h6>
</div>
</div>
<pre class="highlight shell tab-shell"><code>curl https://example.com/wp-json/wc-bookings/v1/products/categories <span class="se"></span>
    -u consumer_key:consumer_secret
</code></pre>
<blockquote>
<p>JSON response example:</p>
</blockquote>
<pre class="highlight json tab-json"><code><span class="p">[</span>
    <span class="p">{</span>
        <span class="s2">"id"</span><span class="p">:</span> <span class="mi">45</span><span class="p">,</span>
        <span class="s2">"name"</span><span class="p">:</span> <span class="s2">"Bookings"</span><span class="p">,</span>
        <span class="s2">"slug"</span><span class="p">:</span> <span class="s2">"bookings"</span><span class="p">,</span>
        <span class="s2">"parent"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"display"</span><span class="p">:</span> <span class="s2">"default"</span><span class="p">,</span>
        <span class="s2">"image"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
        <span class="s2">"menu_order"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
        <span class="s2">"count"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
        <span class="s2">"_links"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"self"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/products/categories/45"</span>
                <span class="p">}</span>
            <span class="p">],</span>
            <span class="s2">"collection"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/products/categories"</span>
                <span class="p">}</span>
            <span class="p">]</span>
        <span class="p">}</span>
    <span class="p">},</span>
    <span class="p">{</span>
        <span class="s2">"id"</span><span class="p">:</span> <span class="mi">15</span><span class="p">,</span>
        <span class="s2">"name"</span><span class="p">:</span> <span class="s2">"Uncategorized"</span><span class="p">,</span>
        <span class="s2">"slug"</span><span class="p">:</span> <span class="s2">"uncategorized"</span><span class="p">,</span>
        <span class="s2">"parent"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
        <span class="s2">"description"</span><span class="p">:</span> <span class="s2">""</span><span class="p">,</span>
        <span class="s2">"display"</span><span class="p">:</span> <span class="s2">"default"</span><span class="p">,</span>
        <span class="s2">"image"</span><span class="p">:</span> <span class="kc">null</span><span class="p">,</span>
        <span class="s2">"menu_order"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
        <span class="s2">"count"</span><span class="p">:</span> <span class="mi">13</span><span class="p">,</span>
        <span class="s2">"_links"</span><span class="p">:</span> <span class="p">{</span>
            <span class="s2">"self"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/products/categories/15"</span>
                <span class="p">}</span>
            <span class="p">],</span>
            <span class="s2">"collection"</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="s2">"href"</span><span class="p">:</span> <span class="s2">"https://example.com/wp-json/wc-bookings/v1/products/categories"</span>
                <span class="p">}</span>
            <span class="p">]</span>
        <span class="p">}</span>
    <span class="p">}</span>
<span class="p">]</span>
</code></pre>
<h4 id="available-parameters">Available parameters</h4>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>context</code></td>
<td>string</td>
<td>Scope under which the request is made; determines fields present in response. Options: <code>view</code> and <code>edit</code>. Default is <code>view</code>.</td>
</tr>
<tr>
<td><code>page</code></td>
<td>integer</td>
<td>Current page of the collection. Default is <code>1</code>.</td>
</tr>
<tr>
<td><code>per_page</code></td>
<td>integer</td>
<td>Maximum number of items to be returned in result set. Default is <code>10</code>.</td>
</tr>
<tr>
<td><code>search</code></td>
<td>string</td>
<td>Limit results to those matching a string.</td>
</tr>
<tr>
<td><code>exclude</code></td>
<td>array</td>
<td>Ensure result set excludes specific ids.</td>
</tr>
<tr>
<td><code>include</code></td>
<td>array</td>
<td>Limit result set to specific ids.</td>
</tr>
<tr>
<td><code>order</code></td>
<td>string</td>
<td>Order sort attribute ascending or descending. Options: <code>asc</code> and <code>desc</code>. Default is <code>asc</code>.</td>
</tr>
<tr>
<td><code>orderby</code></td>
<td>string</td>
<td>Sort collection by resource attribute. Options: <code>id</code>, <code>include</code>, <code>name</code>, <code>slug</code>, <code>term_group</code>, <code>description</code> and <code>count</code>. Default is <code>name</code>.</td>
</tr>
<tr>
<td><code>hide_empty</code></td>
<td>boolean</td>
<td>Whether to hide resources not assigned to any products. Default is <code>false</code>.</td>
</tr>
<tr>
<td><code>parent</code></td>
<td>integer</td>
<td>Limit result set to resources assigned to a specific parent.</td>
</tr>
<tr>
<td><code>product</code></td>
<td>integer</td>
<td>Limit result set to resources assigned to a specific product.</td>
</tr>
<tr>
<td><code>slug</code></td>
<td>string</td>
<td>Limit result set to resources with a specific slug.</td>
</tr>
</tbody>
</table>
<h1 id="booking-slots">Booking Slots</h1>
<p>The Booking Slots API allows you to query booking product slots.</p>
<h2 id="booking-slot-properties">Booking Slot properties</h2>
<table>
<thead>
<tr>
<th>Attribute</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>product_id</code></td>
<td>integer</td>
<td>Unique identifier for the product linked to the booking slot.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>date</code></td>
<td>date-time</td>
<td>The date-time of the booking slot.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>duration</code></td>
<td>integer</td>
<td>The duration of the booking slot.<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>available</code></td>
<td>integer</td>
<td>Availability of the booking slot(1 or 0).<i class="label label-info">READ-ONLY</i></td>
</tr>
<tr>
<td><code>booked</code></td>
<td>integer</td>
<td>Booking slot is already booked(1 or 0).<i class="label label-info">READ-ONLY</i></td>
</tr>
</tbody>
</table>
<h2 id="list-all-booking-product-slots">List all booking product slots</h2>
<p>This API helps you to view booking product slots via query arguments.</p>
<h3 id="http-request">HTTP request</h3>
<div class="api-endpoint">
<div class="endpoint-data"><i class="label label-get">GET</i> </p>
<h6>/wp-json/wc-bookings/v1/products/slots</h6>
</div>
</div>
<pre class="highlight shell tab-shell"><code>curl https://example.com/wp-json/wc-bookings/v1/products/slots?min_date<span class="o">=</span>2020-04-20&amp;max_date<span class="o">=</span>2020-05-01&amp;product_ids<span class="o">=</span>655 <span class="se"></span>
    -u consumer_key:consumer_secret
</code></pre>
<blockquote>
<p>JSON response example:</p>
</blockquote>
<pre class="highlight json tab-json"><code><span class="p">{</span>
    <span class="s2">"records"</span><span class="p">:</span> <span class="p">[</span>
        <span class="p">{</span>
            <span class="s2">"date"</span><span class="p">:</span> <span class="s2">"2020-04-25T12:00"</span><span class="p">,</span>
            <span class="s2">"duration"</span><span class="p">:</span> <span class="mi">90</span><span class="p">,</span>
            <span class="s2">"available"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
            <span class="s2">"booked"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
            <span class="s2">"product_id"</span><span class="p">:</span> <span class="mi">655</span>
        <span class="p">},</span>
        <span class="p">{</span>
            <span class="s2">"date"</span><span class="p">:</span> <span class="s2">"2020-04-25T14:00"</span><span class="p">,</span>
            <span class="s2">"duration"</span><span class="p">:</span> <span class="mi">90</span><span class="p">,</span>
            <span class="s2">"available"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
            <span class="s2">"booked"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
            <span class="s2">"product_id"</span><span class="p">:</span> <span class="mi">655</span>
        <span class="p">},</span>
        <span class="p">{</span>
            <span class="s2">"date"</span><span class="p">:</span> <span class="s2">"2020-04-25T16:00"</span><span class="p">,</span>
            <span class="s2">"duration"</span><span class="p">:</span> <span class="mi">90</span><span class="p">,</span>
            <span class="s2">"available"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
            <span class="s2">"booked"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
            <span class="s2">"product_id"</span><span class="p">:</span> <span class="mi">655</span>
        <span class="p">},</span>
        <span class="p">{</span>
            <span class="s2">"date"</span><span class="p">:</span> <span class="s2">"2020-04-25T18:00"</span><span class="p">,</span>
            <span class="s2">"duration"</span><span class="p">:</span> <span class="mi">90</span><span class="p">,</span>
            <span class="s2">"available"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
            <span class="s2">"booked"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
            <span class="s2">"product_id"</span><span class="p">:</span> <span class="mi">655</span>
        <span class="p">},</span>
        <span class="p">{</span>
            <span class="s2">"date"</span><span class="p">:</span> <span class="s2">"2020-04-25T18:00"</span><span class="p">,</span>
            <span class="s2">"duration"</span><span class="p">:</span> <span class="mi">90</span><span class="p">,</span>
            <span class="s2">"available"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
            <span class="s2">"booked"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
            <span class="s2">"product_id"</span><span class="p">:</span> <span class="mi">655</span>
        <span class="p">},</span>
        <span class="p">{</span>
            <span class="s2">"date"</span><span class="p">:</span> <span class="s2">"2020-04-25T20:00"</span><span class="p">,</span>
            <span class="s2">"duration"</span><span class="p">:</span> <span class="mi">90</span><span class="p">,</span>
            <span class="s2">"available"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
            <span class="s2">"booked"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
            <span class="s2">"product_id"</span><span class="p">:</span> <span class="mi">655</span>
        <span class="p">},</span>
        <span class="p">{</span>
            <span class="s2">"date"</span><span class="p">:</span> <span class="s2">"2020-04-26T12:00"</span><span class="p">,</span>
            <span class="s2">"duration"</span><span class="p">:</span> <span class="mi">90</span><span class="p">,</span>
            <span class="s2">"available"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
            <span class="s2">"booked"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
            <span class="s2">"product_id"</span><span class="p">:</span> <span class="mi">655</span>
        <span class="p">},</span>
        <span class="p">{</span>
            <span class="s2">"date"</span><span class="p">:</span> <span class="s2">"2020-04-26T14:00"</span><span class="p">,</span>
            <span class="s2">"duration"</span><span class="p">:</span> <span class="mi">90</span><span class="p">,</span>
            <span class="s2">"available"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
            <span class="s2">"booked"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
            <span class="s2">"product_id"</span><span class="p">:</span> <span class="mi">655</span>
        <span class="p">},</span>
        <span class="p">{</span>
            <span class="s2">"date"</span><span class="p">:</span> <span class="s2">"2020-04-26T16:00"</span><span class="p">,</span>
            <span class="s2">"duration"</span><span class="p">:</span> <span class="mi">90</span><span class="p">,</span>
            <span class="s2">"available"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
            <span class="s2">"booked"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
            <span class="s2">"product_id"</span><span class="p">:</span> <span class="mi">655</span>
        <span class="p">},</span>
        <span class="p">{</span>
            <span class="s2">"date"</span><span class="p">:</span> <span class="s2">"2020-04-26T18:00"</span><span class="p">,</span>
            <span class="s2">"duration"</span><span class="p">:</span> <span class="mi">90</span><span class="p">,</span>
            <span class="s2">"available"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
            <span class="s2">"booked"</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
            <span class="s2">"product_id"</span><span class="p">:</span> <span class="mi">655</span>
        <span class="p">}</span>
    <span class="p">],</span>
    <span class="s2">"count"</span><span class="p">:</span> <span class="mi">12</span>
<span class="p">}</span>
</code></pre>
<h4 id="available-parameters">Available parameters</h4>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td><code>min_date</code></td>
<td>string</td>
<td>Set a minimum start date for booking slots retrieval.</td>
</tr>
<tr>
<td><code>max_date</code></td>
<td>string</td>
<td>Set a max start date for booking slots retrieval.<i class="label label-info">MANDATORY</i></td>
</tr>
<tr>
<td><code>product_ids</code></td>
<td>integer</td>
<td>Comma-separated list of product ids to search.</td>
</tr>
<tr>
<td><code>resource_ids</code></td>
<td>integer</td>
<td>Comma-separated list of resource ids to search.</td>
</tr>
<tr>
<td><code>page</code></td>
<td>integer</td>
<td>Current page of the collection. Default is <code>1</code>.</td>
</tr>
<tr>
<td><code>per_page</code></td>
<td>integer</td>
<td>Maximum number of items to be returned in result set. Default is <code>10</code>.</td>
</tr>
<tr>
<td><code>search</code></td>
<td>string</td>
<td>Limit results to those matching a string.</td>
</tr>
<tr>
<td><code>offset</code></td>
<td>integer</td>
<td>Offset the result set by a specific number of items.</td>
</tr>
<tr>
<td><code>order</code></td>
<td>string</td>
<td>Order sort attribute ascending or descending. Options: <code>asc</code> and <code>desc</code>. Default is <code>asc</code>.</td>
</tr>
</tbody>
</table><p>The post <a href="https://help.codibu.com/blog/woocommerce-bookings-api-docs/">Woocommerce Bookings Api Docs</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://help.codibu.com/blog/woocommerce-bookings-api-docs/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Bookings: Action and Filter reference</title>
		<link>https://help.codibu.com/blog/bookings-action-and-filter-reference/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=bookings-action-and-filter-reference</link>
					<comments>https://help.codibu.com/blog/bookings-action-and-filter-reference/#respond</comments>
		
		<dc:creator><![CDATA[JN C]]></dc:creator>
		<pubDate>Fri, 06 Nov 2020 11:33:32 +0000</pubDate>
				<guid isPermaLink="false">https://help.codibu.com/kb/bookings-action-and-filter-reference/</guid>

					<description><![CDATA[<p>Actions and filters listed on this page are specific to WooCommerce Bookings. Actions ACTION ARGS DESCRIPTION wc_bookings_updated &#160; Fires after a new plugin version is installed.<span class="excerpt-hellip"> […]</span></p>
<p>The post <a href="https://help.codibu.com/blog/bookings-action-and-filter-reference/">Bookings: Action and Filter reference</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Actions and filters listed on this page are specific to WooCommerce Bookings.</p>
<h2 id="section-1">Actions</h2>
<table>
<thead>
<tr>
<th>ACTION</th>
<th>ARGS</th>
<th>DESCRIPTION</th>
</tr>
</thead>
<tbody>
<tr>
<td>wc_bookings_updated</td>
<td>&nbsp;</td>
<td>Fires after a new plugin version is installed.</td>
</tr>
<tr>
<td>woocommerce_admin_booking_data_after_booking_details</td>
<td>Int: Booking ID</td>
<td>Fires after customer select box when viewing/editing a booking in admin.</td>
</tr>
<tr>
<td>woocommerce_admin_process_booking_object</td>
<td>Obj: Booking object</td>
<td>Fires after data is processed when saving booking through admin, but before data is saved to the database.</td>
</tr>
<tr>
<td>woocommerce_after_add_to_cart_button</td>
<td>&nbsp;</td>
<td>Fires after the add-to-cart button in the single product add-to-cart template.</td>
</tr>
<tr>
<td>woocommerce_after_add_to_cart_form</td>
<td>&nbsp;</td>
<td>Fires after the booking form in the single product add-to-cart template.</td>
</tr>
<tr>
<td>woocommerce_before_add_to_cart_button</td>
<td>&nbsp;</td>
<td>Fires before the add-to-cart button in the single product add-to-cart template.</td>
</tr>
<tr>
<td>woocommerce_before_booking_form</td>
<td>&nbsp;</td>
<td>Fires before the booking form in the single product add-to-cart template.</td>
</tr>
<tr>
<td>woocommerce_before_booking_object_save</td>
<td>Obj: Booking object, Obj: Data store</td>
<td>Fires just before saving to the database, allows for adjusting object properties before save.</td>
</tr>
<tr>
<td>woocommerce_booking_{ status }</td>
<td>Int: Booking ID, Obj: Booking object</td>
<td>Fires when a booking is changed to { status }.</td>
</tr>
<tr>
<td>woocommerce_booking_{ status_from }_to_{ status_to }</td>
<td>Int: Booking ID, Obj: Booking object</td>
<td>Fires when a booking is changed from { status_from } to { status_to }.</td>
</tr>
<tr>
<td>woocommerce_booking_process_meta</td>
<td>Int: Booking ID</td>
<td>Fires after data is processed when saving booking through admin, and after data has been saved to the database.</td>
</tr>
<tr>
<td>woocommerce_bookings_after_booking_base_cost</td>
<td>Int: Product ID</td>
<td>Fires after base cost of product in admin.</td>
</tr>
<tr>
<td>woocommerce_bookings_after_booking_block_cost</td>
<td>Int: Product ID</td>
<td>Fires after block cost of product in admin.</td>
</tr>
<tr>
<td>woocommerce_bookings_after_booking_pricing_base_cost</td>
<td>Arr: Pricing for product, Int: Product ID</td>
<td>Fires after base cost modifier in pricing rules for product in admin. Remains in table cell.</td>
</tr>
<tr>
<td>woocommerce_bookings_after_booking_pricing_cost</td>
<td>Arr: Pricing for product, Int: Product ID</td>
<td>Fires after block cost modifier in pricing rules for product in admin. Remains in table cell.</td>
</tr>
<tr>
<td>woocommerce_bookings_after_bookings_pricing</td>
<td>Int: Product ID</td>
<td>Fired after pricing rules are rendered for product in admin. Outside of table body.</td>
</tr>
<tr>
<td>woocommerce_bookings_after_create_booking_page</td>
<td>&nbsp;</td>
<td>Fires after options, but before Next button when creating a booking through admin. Remains in table.</td>
</tr>
<tr>
<td>woocommerce_bookings_after_display_cost</td>
<td>Int: Product ID</td>
<td>Fires after display cost of product in admin.</td>
</tr>
<tr>
<td>woocommerce_bookings_after_person_block_cost</td>
<td>Int: Person type ID</td>
<td>Fires after the person type block cost is output in admin. Remains in table cell.</td>
</tr>
<tr>
<td>woocommerce_bookings_after_person_block_cost_column</td>
<td>Int: Person type ID</td>
<td>Fires after the person type costs are output in admin. Remains in table row.</td>
</tr>
<tr>
<td>woocommerce_bookings_after_person_cost</td>
<td>Int: Person type ID</td>
<td>Fires after the person type base cost is output in admin. Remains in table cell.</td>
</tr>
<tr>
<td>woocommerce_bookings_after_person_max_column</td>
<td>Int: Person type ID</td>
<td>Fires after the person type min/max fields in admin. Remains in table row.</td>
</tr>
<tr>
<td>woocommerce_bookings_after_resource_block_cost</td>
<td>Int: Resource ID, Int: Product ID</td>
<td>Fires after product’s resource block cost is output in admin. Remains in table cell.</td>
</tr>
<tr>
<td>woocommerce_bookings_after_resource_cost</td>
<td>Int: Resource ID, Int: Product ID</td>
<td>Fires after product’s resource base cost is output in admin. Remains in table cell.</td>
</tr>
<tr>
<td>woocommerce_bookings_before_delete_global_availability</td>
<td>&nbsp;</td>
<td>Fires before a global availability entry is deleted.</td>
</tr>
<tr>
<td>woocommerce_bookings_cancelled_booking</td>
<td>Int: Booking ID</td>
<td>Fires after a booking is cancelled.</td>
</tr>
<tr>
<td>woocommerce_bookings_create_booking_page_add_order_item</td>
<td>Int: Order ID</td>
<td>Fires after order is created when manually creating a booking with an order through the admin.</td>
</tr>
<tr>
<td>woocommerce_bookings_pricing_fields</td>
<td>Arr: Pricing for product</td>
<td>Fired after pricing rules are rendered for product in admin. Remains in table body.</td>
</tr>
<tr>
<td>woocommerce_delete_booking</td>
<td>Int: Booking ID</td>
<td>Fires when a booking is deleted/removed from trash.</td>
</tr>
<tr>
<td>woocommerce_new_booking</td>
<td>Int: Booking ID</td>
<td>Fires when a booking is created and added to the database. Such as when a booking is added to cart.</td>
</tr>
<tr>
<td>woocommerce_trash_booking</td>
<td>Int: Booking ID</td>
<td>Fires when a booking is moved to the trash.</td>
</tr>
<tr>
<td>woocommerce_bookings_update_google_client</td>
<td>Google_Client: Google API Client Object</td>
<td>Fires before any Google API request is made so a custom client ID and secret can be set.</td>
</tr>
</tbody>
</table>
<h2 id="section-2">Filters</h2>
<table>
<thead>
<tr>
<th>FILTER</th>
<th>PASSED</th>
<th>ARGS</th>
<th>DESCRIPTION</th>
</tr>
</thead>
<tbody>
<tr>
<td>woocommerce_bookings_calculated_booking_cost</td>
<td>Int: Booking Cost</td>
<td>Obj: Product, Arr: Posted data</td>
<td>Allows booking cost modification before return from calculate_booking_cost(), which returns the calculated cost of a booking.</td>
</tr>
<tr>
<td>booking_form_fields</td>
<td>Arr: Field Arrays</td>
<td>&nbsp;</td>
<td>Can be used to edit the fields (duration, persons, resources, date) that are used on the booking form.</td>
</tr>
<tr>
<td>booking_form_params</td>
<td>Arr: Parameter strings (translated)</td>
<td>&nbsp;</td>
<td>Strings that are used for JavaScript notices to the user when using the calendar.</td>
</tr>
<tr>
<td>bookings_cancel_booking_url</td>
<td>Str: URL to cancel</td>
<td>&nbsp;</td>
<td>Allows modification of the cancellation URL for a customer to cancel their booking.</td>
</tr>
<tr>
<td>get_booking_products_args</td>
<td>Arr: get_posts args</td>
<td>&nbsp;</td>
<td>Used in get_bookable_product_ids which uses get_posts to query all bookable products.</td>
</tr>
<tr>
<td>get_booking_resources_args</td>
<td>Arr: get_posts args</td>
<td>&nbsp;</td>
<td>Used in get_bookable_product_resource_ids which uses get_posts to query all bookable resources.</td>
</tr>
<tr>
<td>wc_bookings_calendar_default_to_current_date</td>
<td>Bool: true</td>
<td>&nbsp;</td>
<td>By default the calendar will default to ‘today’. If false is returned, calendar will default to first available booking date.</td>
</tr>
<tr>
<td>wc_bookings_get_time_slots_html</td>
<td>Str: HTML time blocks</td>
<td>Arr: Available blocks, Arr: Blocks</td>
<td>Filters the returned HTML of `wc_bookings_get_time_slots_html`.</td>
</tr>
<tr>
<td>wc_bookings_summary_list_date</td>
<td>Str: Booking date</td>
<td>Int: Starting timestamp, Int: Ending timestamp</td>
<td>Can be used to format the date in the bookings summary for orders and emails.</td>
</tr>
<tr>
<td>woocommerce_admin_bookable_resource_actions</td>
<td>Arr: Actions</td>
<td>Obj: Resource</td>
<td>Actions shown in the admin list view.</td>
</tr>
<tr>
<td>woocommerce_admin_booking_actions</td>
<td>Arr: Actions</td>
<td>Obj: Booking</td>
<td>Actions shown in admin list view.</td>
</tr>
<tr>
<td>woocommerce_booking_cancelled_notice</td>
<td>Str: “Your booking was cancelled.” (translated)</td>
<td>Str: Notice Type</td>
<td>Message is displayed when user cancels their booking through My Account.</td>
</tr>
<tr>
<td>woocommerce_booking_form_get_posted_data</td>
<td>Arr: Mixed data</td>
<td>Obj: Product, Int: Duration Length</td>
<td>All of the data posted to the Booking Form in a processed clean array.</td>
</tr>
<tr>
<td>woocommerce_booking_get_availability_rules</td>
<td>Arr: Array of availability rules</td>
<td>Int: Resource rules apply to, Obj: Bookable product</td>
<td>The availability rules configured for a particular resource ID, if resource is 0, then for the product itself.</td>
</tr>
<tr>
<td>woocommerce_booking_has_status</td>
<td>Bool</td>
<td>Obj: Booking, Str: Status</td>
<td>Used when checking if a booking has a set status.</td>
</tr>
<tr>
<td>woocommerce_booking_is_booked_on_day</td>
<td>Bool</td>
<td>Obj: Booking, Int: Start timestamp, Int: End timestamp</td>
<td>Filter the booking object’s is_booked_on_day method return result.</td>
</tr>
<tr>
<td>woocommerce_booking_json_search_order_number</td>
<td>Str: Search term</td>
<td>&nbsp;</td>
<td>The order number being searched for when editing a booking.</td>
</tr>
<tr>
<td>woocommerce_booking_requires_confirmation</td>
<td>Bool</td>
<td>Obj: Bookable product</td>
<td>Whether the bookable product is set to require confirmation or not.</td>
</tr>
<tr>
<td>woocommerce_booking_single_add_to_cart_text</td>
<td>Str: “Book Now” (translated)</td>
<td>&nbsp;</td>
<td>Allows updates to add to cart button.</td>
</tr>
<tr>
<td>woocommerce_booking_single_check_availability_text</td>
<td>Str: “Check Availability” (translated)</td>
<td>&nbsp;</td>
<td>Allows updates to add to cart button when booking requires confirmation.</td>
</tr>
<tr>
<td>woocommerce_booking_user_can_cancel</td>
<td>Bool</td>
<td>Obj: Bookable product</td>
<td>Whether the bookable product allows customer cancellations or not.</td>
</tr>
<tr>
<td>woocommerce_bookings_account_endpoint</td>
<td>Str: “bookings”</td>
<td>&nbsp;</td>
<td>Default endpoint for bookings in the My Account page.</td>
</tr>
<tr>
<td>woocommerce_bookings_account_tables</td>
<td>Arr: Arrays of user’s bookings</td>
<td>&nbsp;</td>
<td>Tabular data being passed to the `myaccount/bookings.php` template to display a user’s bookings.</td>
</tr>
<tr>
<td>woocommerce_bookings_booked_day_blocks</td>
<td>Arr: Array of booked blocks</td>
<td>Obj: Bookable product</td>
<td>Array of days that are fully or partially booked being returned to the calendar for display.</td>
</tr>
<tr>
<td>woocommerce_bookings_booking_cost_string</td>
<td>Str: “Booking cost” (translated)</td>
<td>Obj: Product</td>
<td>Text shown before the price when customer chooses date/time on the calendar.</td>
</tr>
<tr>
<td>woocommerce_bookings_data_labels</td>
<td>Arr: Array of strings (translated)</td>
<td>&nbsp;</td>
<td>Labels used for bookings in places such as the cart.</td>
</tr>
<tr>
<td>woocommerce_bookings_date_format</td>
<td>Str: Date format from wc_date_format()</td>
<td>&nbsp;</td>
<td>Allows to change date format for everything Bookings.</td>
</tr>
<tr>
<td>woocommerce_bookings_date_picker_end_label</td>
<td>Str: “End” (translated)</td>
<td>&nbsp;</td>
<td>End label on a product’s calendar.</td>
</tr>
<tr>
<td>woocommerce_bookings_date_picker_start_label</td>
<td>Str: “Start” (translated)</td>
<td>&nbsp;</td>
<td>Start label on a product’s calendar.</td>
</tr>
<tr>
<td>woocommerce_bookings_email_actions</td>
<td>Arr: Actions</td>
<td>&nbsp;</td>
<td>Array of actions used for triggering emails.</td>
</tr>
<tr>
<td>woocommerce_bookings_emails_ics</td>
<td>Arr: Email IDs</td>
<td>&nbsp;</td>
<td>Email IDs to attach ics (calendar) files to.</td>
</tr>
<tr>
<td>woocommerce_bookings_for_user_statuses</td>
<td>Arr: Array of statuses</td>
<td>&nbsp;</td>
<td>Array of statuses as `status =&gt; Status Name` (translated), used for statuses for bookings that are displayed in My Account &gt; Bookings.</td>
</tr>
<tr>
<td>woocommerce_bookings_fully_booked_statuses</td>
<td>Arr: Array of statuses</td>
<td>&nbsp;</td>
<td>Array of statuses as `status =&gt; Status Name` (translated), used for statuses for bookings that block off time on the calendar.</td>
</tr>
<tr>
<td>woocommerce_bookings_get_duration_unit</td>
<td>Str: Duration unit</td>
<td>Obj: Bookable product</td>
<td>The duration unit set for the bookable product.</td>
</tr>
<tr>
<td>woocommerce_bookings_get_end_date_with_time</td>
<td>Str: Date/time string</td>
<td>Obj: Booking</td>
<td>Passes formatted date/time string passed through date_i18n().</td>
</tr>
<tr>
<td>woocommerce_bookings_get_person_types_ids</td>
<td>Arr: get_posts args</td>
<td>&nbsp;</td>
<td>Used in get_person_types_ids which uses get_posts to query all bookable persons.</td>
</tr>
<tr>
<td>woocommerce_bookings_get_start_date_with_time</td>
<td>Str: Date/time string</td>
<td>Obj: Booking</td>
<td>Passes formatted date/time string passed through date_i18n().</td>
</tr>
<tr>
<td>woocommerce_bookings_in_date_range_query</td>
<td>Arr: Booking IDs</td>
<td>&nbsp;</td>
<td>Booking IDs being returned after a date range query.</td>
</tr>
<tr>
<td>woocommerce_bookings_max_date_unit</td>
<td>Str</td>
<td>Int: ID of Bookable product</td>
<td>The unit/amount used for max date that a bookable product can be booked into the future.</td>
</tr>
<tr>
<td>woocommerce_bookings_max_date_value</td>
<td>Int</td>
<td>Int: ID of Bookable product</td>
<td>The numeric value for max date that a bookable product can be booked into the future.</td>
</tr>
<tr>
<td>woocommerce_bookings_mdy_format</td>
<td>Bool: true</td>
<td>&nbsp;</td>
<td>If switched to `false`, date format in calendar will be dd/mm/yyyy, else it’s mm/dd/yyyy.</td>
</tr>
<tr>
<td>woocommerce_bookings_min_date_unit</td>
<td>Str</td>
<td>Int: ID of Bookable product</td>
<td>The unit/amount used for min date that a bookable product can be booked into the future.</td>
</tr>
<tr>
<td>woocommerce_bookings_min_date_value</td>
<td>Int</td>
<td>Int: ID of Bookable product</td>
<td>The numeric value for min date that a bookable product can be booked into the future.</td>
</tr>
<tr>
<td>woocommerce_bookings_override_form_default_date</td>
<td>null</td>
<td>Obj: Booking Form</td>
<td>Return value should be valid unix timestamp, which will default the calendar to the date specified.</td>
</tr>
<tr>
<td>woocommerce_bookings_process_cost_rules_base_cost</td>
<td>Float|Str: Base Cost set in product Cost rules</td>
<td>Arr: Fields for rule, Str: Key/ID for rule</td>
<td>The base cost set for a cost rule under a product.</td>
</tr>
<tr>
<td>woocommerce_bookings_process_cost_rules_cost</td>
<td>Float|Str: Block Cost set in product Cost rules</td>
<td>Arr: Fields for rule, Str: Key/ID for rule</td>
<td>The block cost set for a cost rule under a product.</td>
</tr>
<tr>
<td>woocommerce_bookings_process_cost_rules_override_block</td>
<td>Bool</td>
<td>Arr: Fields for rule, Str: Key/ID for rule</td>
<td>Deprecated</td>
</tr>
<tr>
<td>woocommerce_bookings_product_types</td>
<td>Arr</td>
<td>&nbsp;</td>
<td>Single element array is passed. Used for testing if a product is a bookable product.</td>
</tr>
<tr>
<td>woocommerce_bookings_remind_before_days</td>
<td>Int: 1</td>
<td>&nbsp;</td>
<td>Provides ability to increase the amount of days before a booking that a reminder email is sent.</td>
</tr>
<tr>
<td>woocommerce_bookings_remove_inactive_cart_time</td>
<td>Int: 60</td>
<td>&nbsp;</td>
<td>Bookings are created when added to cart and are scheduled for deletion in 60 minutes if not purchased. Value can be changed to increase/decrease schedule.</td>
</tr>
<tr>
<td>woocommerce_bookings_resource_additional_cost_string</td>
<td>Str: Additional cost</td>
<td>Obj: Resource</td>
<td>Resource select boxes in the calendar contain additional cost if there is any, allows editing of the additional cost string.</td>
</tr>
<tr>
<td>woocommerce_bookings_scheduled_statuses</td>
<td>Arr: Array of statuses</td>
<td>&nbsp;</td>
<td>Array of statuses as `status =&gt; Status Name` (translated), used to determine if the booking should have events scheduled, such as reminder emails.</td>
</tr>
<tr>
<td>woocommerce_bookings_time_format</td>
<td>Str: return of wc_time_format()</td>
<td>&nbsp;</td>
<td>Allows to change time format for everything Bookings.</td>
</tr>
<tr>
<td>woocommerce_email_attachments</td>
<td>Arr: Attachments to emails</td>
<td>Str: The ID of the email, Obj: The email object</td>
<td>WooCommerce core filter for email attachments.</td>
</tr>
<tr>
<td>woocommerce_email_heading_{ email_id }</td>
<td>Str: Email heading</td>
<td>Obj: Email object</td>
<td>WooCommerce core filter for email headings.</td>
</tr>
<tr>
<td>woocommerce_email_subject_{ email_id }</td>
<td>Str: Email subject</td>
<td>Obj: Email object</td>
<td>WooCommerce core filter for email subjects.</td>
</tr>
<tr>
<td>woocommerce_my_account_bookings_title</td>
<td>Str: “My Bookings” (translated)</td>
<td>&nbsp;</td>
<td>Page title for My Account &gt; Bookings. (deprecated)</td>
</tr>
<tr>
<td>woocommerce_new_booking_data</td>
<td>Arr: Data for new post</td>
<td>&nbsp;</td>
<td>Used when creating a new booking, if defaults needed to be changed.</td>
</tr>
<tr>
<td>woocommerce_new_product_data</td>
<td>Arr: Data for new post</td>
<td>&nbsp;</td>
<td>Used when creating a new bookable product, if defaults needed to be changed.</td>
</tr>
<tr>
<td>woocommerce_register_post_type_bookable_person</td>
<td>Arr: Data for new post type</td>
<td>&nbsp;</td>
<td>Arguments passed when creating the `bookable_person` custom post type.</td>
</tr>
<tr>
<td>woocommerce_register_post_type_bookable_resource</td>
<td>Arr: Data for new post type</td>
<td>&nbsp;</td>
<td>Arguments passed when creating the `bookable_resource` custom post type.</td>
</tr>
<tr>
<td>woocommerce_register_post_type_wc_booking</td>
<td>Arr: Data for new post type</td>
<td>&nbsp;</td>
<td>Arguments passed when creating the `wc_booking` custom post type.</td>
</tr>
<tr>
<td>woocommerce_valid_booking_statuses_for_cancel</td>
<td>Arr: Array of statuses</td>
<td>&nbsp;</td>
<td>Array of statuses as `status =&gt; Status Name` (translated), used to determine if a booking is in a status that can be cancelled.</td>
</tr>
<tr>
<td>woocommerce_bookings_calculated_booking_cost_success_output</td>
<td>Str: Output string</td>
<td>&nbsp;</td>
<td>Provides the ability to modify the string being shown to the user for the cost (useful for low inventory or fee structure type outputs)</td>
</tr>
<tr>
<td>woocommerce_bookings_my_bookings_past_order_by</td>
<td>Str: Order by field for past bookings query.</td>
<td>&nbsp;</td>
<td>Allows modification of past bookings list order for My Account &gt; Bookings view.</td>
</tr>
<tr>
<td>woocommerce_bookings_my_bookings_past_query_args</td>
<td>Arr: filters for past Bookings query.</td>
<td>&nbsp;</td>
<td>Allows modification of query for bookings displayed for past on My Account &gt; Bookings view.</td>
</tr>
<tr>
<td>woocommerce_bookings_my_bookings_today_order_by</td>
<td>Str: Order by field for today bookings query.</td>
<td>&nbsp;</td>
<td>Allows modification of today’s bookings list order for My Account &gt; Bookings view.</td>
</tr>
<tr>
<td>woocommerce_bookings_my_bookings_today_query_args</td>
<td>
<table>
<tbody>
<tr>
<td>Arr: filters for today’s bookings query.</td>
</tr>
</tbody>
</table>
</td>
<td>&nbsp;</td>
<td>Allows modification of query for bookings displayed for today on My Account &gt; Bookings view.</td>
</tr>
<tr>
<td>woocommerce_bookings_my_bookings_upcoming_order_by</td>
<td>Str: Order by field for upcoming bookings query.</td>
<td>&nbsp;</td>
<td>Allows modification of upcoming bookings list order for My Account &gt; Bookings view.</td>
</tr>
<tr>
<td>woocommerce_bookings_my_bookings_upcoming_query_args</td>
<td>Arr: filters for upcoming bookings query.</td>
<td>&nbsp;</td>
<td>Allows modification of query for bookings displayed for upcoming on My Account &gt; Bookings view.</td>
</tr>
</tbody>
</table><p>The post <a href="https://help.codibu.com/blog/bookings-action-and-filter-reference/">Bookings: Action and Filter reference</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://help.codibu.com/blog/bookings-action-and-filter-reference/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Creating Bookings Programatically</title>
		<link>https://help.codibu.com/blog/creating-bookings-programatically/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=creating-bookings-programatically</link>
					<comments>https://help.codibu.com/blog/creating-bookings-programatically/#respond</comments>
		
		<dc:creator><![CDATA[JN C]]></dc:creator>
		<pubDate>Fri, 06 Nov 2020 11:32:44 +0000</pubDate>
				<guid isPermaLink="false">https://help.codibu.com/kb/creating-bookings-programatically/</guid>

					<description><![CDATA[<p>Bookings can be created programmatically using PHP, should you wish to create a follow-up booking or bookings from other plugins. The function you use is create_wc_booking.  <span class="excerpt-hellip"> […]</span></p>
<p>The post <a href="https://help.codibu.com/blog/creating-bookings-programatically/">Creating Bookings Programatically</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Bookings can be created programmatically using PHP, should you wish to create a follow-up booking or bookings from other plugins. The function you use is <strong>create_wc_booking.</strong></p>
<p class="p1"> </p>
<div class="woo-sc-box note   "><b>Note:</b> This is a <b>Developer level</b> doc. If you are unfamiliar with code/templates and resolving potential conflicts, select a <span class="s2">WooExpert or Developer</span> for assistance. We are unable to provide support for customizations under our<span class="Apple-converted-space">  </span><a href="https://help.codibu.com/blog/kb/support-policy/"><span class="s2">Support Policy</span></a>.</div>
<p>&nbsp;</p>
<h2 id="section-1">The create_wc_booking function</h2>
<p>The function takes the following arguments:</p>
<p><code>create_wc_booking( $product_id, $new_booking_data = array(), $status = 'confirmed', $exact = false )</code></p>
<ol>
<li><strong>Product ID</strong>: The id of the bookable product which you are creating a new booking for.</li>
<li><strong>New Booking data</strong>: Array of booking data. See “<em>booking data array</em>” below.</li>
<li><strong>Status</strong>: Status of the new booking. Valid statuses include: ‘unpaid’, ‘pending’, ‘confirmed’, ‘cancelled’, ‘complete’</li>
<li><strong>Exact: true or false</strong> – If false, the function will look for the next available slot after your start date, if the date you tried to book is unavailable.</li>
</ol>
<h2 id="section-2">Booking Data Array</h2>
<p>The $new_booking_data argument is passed to your new booking. By default, it consists of the following:</p>
<pre><code>$defaults = array(
        'product_id'  =&gt; $product_id, // Booking ID
        'start_date'  =&gt; '',
        'end_date'    =&gt; '',
        'resource_id' =&gt; '',
    );
</code></pre>
<p>You’ll likely want to pass the start and end date of your new booking, in which case you should pass in a Unix timestamp.</p>
<p>Resource ID is optional and should only be passed if your bookable product has multiple resources. You can find the ID by looking at the resources section when editing the product.</p>
<p>The following non-default arguments are also supported for your booking data:</p>
<ul>
<li>user_id – ID of the user this booking is for</li>
<li>order_item_id – If linking the booking to an order with a bookable product inside, the id of the order item.</li>
<li>persons – count of persons this booking is for or an array of person types with counts</li>
<li>cost – cost of the booking</li>
<li>all_day – true or false, if this is an all day booking</li>
<li>parent_id – If this is a follow up to an existing booking, this is the previous booking’s ID</li>
</ul>
<h2 id="section-3">Use case: Creating a one-week follow-up</h2>
<p>This example shows how to create a follow-up booking, one week after a new booking is made.</p>
<div id="gist87967084" class="gist">
<div class="gist-file">
<div class="gist-data">
<div class="js-gist-file-update-container js-task-list-container file-box">
<div id="file-wc-bookings-auto-create-follow-ups-php" class="file my-2">
<div class="Box-body p-0 blob-wrapper data type-php  ">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" data-paste-markdown-skip="">
<tbody>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L1" class="blob-num js-line-number" data-line-number="1"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC1" class="blob-code blob-code-inner js-file-line"> </td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L2" class="blob-num js-line-number" data-line-number="2"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC2" class="blob-code blob-code-inner js-file-line">/**</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L3" class="blob-num js-line-number" data-line-number="3"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC3" class="blob-code blob-code-inner js-file-line">* Code goes in theme functions.php</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L4" class="blob-num js-line-number" data-line-number="4"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC4" class="blob-code blob-code-inner js-file-line">*</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L5" class="blob-num js-line-number" data-line-number="5"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC5" class="blob-code blob-code-inner js-file-line">* In this example we&#8217;re creating a booking 1 week after a booking is paid for.</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L6" class="blob-num js-line-number" data-line-number="6"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC6" class="blob-code blob-code-inner js-file-line">* This does not create another order or payment, just an additional booking.</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L7" class="blob-num js-line-number" data-line-number="7"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC7" class="blob-code blob-code-inner js-file-line">* $exact is false meaning if our slot is taken, the next available slot will be used.</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L8" class="blob-num js-line-number" data-line-number="8"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC8" class="blob-code blob-code-inner js-file-line">* @link https://docs.woocommerce.com/document/creating-bookings-programatically/</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L9" class="blob-num js-line-number" data-line-number="9"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC9" class="blob-code blob-code-inner js-file-line">*/</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L10" class="blob-num js-line-number" data-line-number="10"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC10" class="blob-code blob-code-inner js-file-line">function auto_create_followup_booking( $booking_id ) {</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L11" class="blob-num js-line-number" data-line-number="11"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC11" class="blob-code blob-code-inner js-file-line"> </td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L12" class="blob-num js-line-number" data-line-number="12"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC12" class="blob-code blob-code-inner js-file-line">// Get the previous booking from the ID</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L13" class="blob-num js-line-number" data-line-number="13"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC13" class="blob-code blob-code-inner js-file-line">$prev_booking = get_wc_booking( $booking_id );</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L14" class="blob-num js-line-number" data-line-number="14"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC14" class="blob-code blob-code-inner js-file-line"> </td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L15" class="blob-num js-line-number" data-line-number="15"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC15" class="blob-code blob-code-inner js-file-line">// Don&#8217;t want follow ups for follow ups</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L16" class="blob-num js-line-number" data-line-number="16"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC16" class="blob-code blob-code-inner js-file-line">if ( $prev_booking-<span class="pl-kos">&gt;</span>get_parent_id() <span class="pl-kos">&lt;</span>= 0 ) {</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L17" class="blob-num js-line-number" data-line-number="17"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC17" class="blob-code blob-code-inner js-file-line">// Set the follow up data</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L18" class="blob-num js-line-number" data-line-number="18"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC18" class="blob-code blob-code-inner js-file-line">$new_booking_data = array(</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L19" class="blob-num js-line-number" data-line-number="19"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC19" class="blob-code blob-code-inner js-file-line">&#8216;start_date&#8217; =<span class="pl-kos">&gt;</span> strtotime( &#8216;+1 week&#8217;, $prev_booking-<span class="pl-kos">&gt;</span>get_start() ), // same time, 1 week on</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L20" class="blob-num js-line-number" data-line-number="20"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC20" class="blob-code blob-code-inner js-file-line">&#8216;end_date&#8217; =<span class="pl-kos">&gt;</span> strtotime( &#8216;+1 week&#8217;, $prev_booking-<span class="pl-kos">&gt;</span>get_end() ), // same time, 1 week on</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L21" class="blob-num js-line-number" data-line-number="21"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC21" class="blob-code blob-code-inner js-file-line">&#8216;resource_id&#8217; =<span class="pl-kos">&gt;</span> $prev_booking-<span class="pl-kos">&gt;</span>get_resource_id(), // same resource</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L22" class="blob-num js-line-number" data-line-number="22"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC22" class="blob-code blob-code-inner js-file-line">&#8216;parent_id&#8217; =<span class="pl-kos">&gt;</span> $booking_id, // set the parent</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L23" class="blob-num js-line-number" data-line-number="23"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC23" class="blob-code blob-code-inner js-file-line">);</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L24" class="blob-num js-line-number" data-line-number="24"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC24" class="blob-code blob-code-inner js-file-line">// Did the previous booking have persons?</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L25" class="blob-num js-line-number" data-line-number="25"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC25" class="blob-code blob-code-inner js-file-line">$persons = $prev_booking-<span class="pl-kos">&gt;</span>get_persons();</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L26" class="blob-num js-line-number" data-line-number="26"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC26" class="blob-code blob-code-inner js-file-line">if ( is_array( $persons ) &amp;&amp; 0 <span class="pl-kos">&lt;</span> <span class="pl-ent">count</span><span class="pl-c1">(</span> <span class="pl-c1">$persons</span> <span class="pl-c1">)</span> <span class="pl-c1">)</span> <span class="pl-c1">{</span></td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L27" class="blob-num js-line-number" data-line-number="27"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC27" class="blob-code blob-code-inner js-file-line"><span class="pl-c1">$new_booking_data[</span>&#8216;persons&#8217;] = <span class="pl-s">$persons;</span></td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L28" class="blob-num js-line-number" data-line-number="28"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC28" class="blob-code blob-code-inner js-file-line"><span class="pl-c1">}</span></td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L29" class="blob-num js-line-number" data-line-number="29"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC29" class="blob-code blob-code-inner js-file-line">// Was the previous booking all day?</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L30" class="blob-num js-line-number" data-line-number="30"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC30" class="blob-code blob-code-inner js-file-line">if ( $prev_booking-<span class="pl-kos">&gt;</span>is_all_day() ) {</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L31" class="blob-num js-line-number" data-line-number="31"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC31" class="blob-code blob-code-inner js-file-line">$new_booking_data[&#8216;all_day&#8217;] = true;</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L32" class="blob-num js-line-number" data-line-number="32"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC32" class="blob-code blob-code-inner js-file-line">}</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L33" class="blob-num js-line-number" data-line-number="33"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC33" class="blob-code blob-code-inner js-file-line">create_wc_booking(</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L34" class="blob-num js-line-number" data-line-number="34"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC34" class="blob-code blob-code-inner js-file-line">$prev_booking-<span class="pl-kos">&gt;</span>get_product_id(), // Creating a booking for the previous bookings product</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L35" class="blob-num js-line-number" data-line-number="35"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC35" class="blob-code blob-code-inner js-file-line">$new_booking_data, // Use the data pulled above</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L36" class="blob-num js-line-number" data-line-number="36"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC36" class="blob-code blob-code-inner js-file-line">$prev_booking-<span class="pl-kos">&gt;</span>get_status(), // Match previous bookings status</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L37" class="blob-num js-line-number" data-line-number="37"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC37" class="blob-code blob-code-inner js-file-line">false // Not exact, look for a slot</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L38" class="blob-num js-line-number" data-line-number="38"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC38" class="blob-code blob-code-inner js-file-line">);</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L39" class="blob-num js-line-number" data-line-number="39"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC39" class="blob-code blob-code-inner js-file-line">}</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L40" class="blob-num js-line-number" data-line-number="40"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC40" class="blob-code blob-code-inner js-file-line">}</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L41" class="blob-num js-line-number" data-line-number="41"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC41" class="blob-code blob-code-inner js-file-line">add_action( &#8216;woocommerce_booking_in-cart_to_paid&#8217;, &#8216;auto_create_followup_booking&#8217; );</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L42" class="blob-num js-line-number" data-line-number="42"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC42" class="blob-code blob-code-inner js-file-line">add_action( &#8216;woocommerce_booking_unpaid_to_paid&#8217;, &#8216;auto_create_followup_booking&#8217; );</td>
</tr>
<tr>
<td id="file-wc-bookings-auto-create-follow-ups-php-L43" class="blob-num js-line-number" data-line-number="43"> </td>
<td id="file-wc-bookings-auto-create-follow-ups-php-LC43" class="blob-code blob-code-inner js-file-line">add_action( &#8216;woocommerce_booking_confirmed_to_paid&#8217;, &#8216;auto_create_followup_booking&#8217; );</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div><p>The post <a href="https://help.codibu.com/blog/creating-bookings-programatically/">Creating Bookings Programatically</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://help.codibu.com/blog/creating-bookings-programatically/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Bookings Snippets: Tips and Tweaks</title>
		<link>https://help.codibu.com/blog/bookings-snippets-tips-and-tweaks/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=bookings-snippets-tips-and-tweaks</link>
					<comments>https://help.codibu.com/blog/bookings-snippets-tips-and-tweaks/#respond</comments>
		
		<dc:creator><![CDATA[JN C]]></dc:creator>
		<pubDate>Fri, 06 Nov 2020 11:16:19 +0000</pubDate>
				<guid isPermaLink="false">https://help.codibu.com/kb/bookings-snippets-tips-and-tweaks/</guid>

					<description><![CDATA[<p>In this document, you will find many useful snippets for customizing the functionality of Bookings. About snippets To use a snippet, you can copy the contained<span class="excerpt-hellip"> […]</span></p>
<p>The post <a href="https://help.codibu.com/blog/bookings-snippets-tips-and-tweaks/">Bookings Snippets: Tips and Tweaks</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>In this document, you will find many useful snippets for customizing the functionality of Bookings.</p>
<h2 id="section-1">About snippets</h2>
<p>To use a snippet, you can copy the contained code into your <a href="https://help.codibu.com/blog/kb/set-up-and-use-a-child-theme/">child</a> theme’s <strong>functions.php</strong> file.</p>
<p>&nbsp;</p>
<div class="woo-sc-box note   "><b>Note:</b> This is a <b>Developer level</b> doc. If you are unfamiliar with code/templates and resolving potential conflicts, select a <span class="s2">WooExpert or Developer</span> for assistance. We are unable to provide support for customizations under our<span class="Apple-converted-space">  </span><a href="https://help.codibu.com/blog/kb/support-policy/"><span class="s2">Support Policy</span></a>.</div>
<p>&nbsp;</p>
<h2 id="section-2">Customization</h2>
<h3 id="section-3">Make calendar default to first available booking</h3>
<p>By default the current month will be shown on the Bookings calendar for performance reasons. This will default it to the month with the first available block:</p>
<div id="gist87967177" class="gist">
<div class="gist-file">
<div class="gist-data">
<div class="js-gist-file-update-container js-task-list-container file-box">
<div id="file-wc-bookings-bookings_calendar_default_to_first_available-php" class="file my-2">
<div class="Box-body p-0 blob-wrapper data type-php  ">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" data-paste-markdown-skip="">
<tbody>
<tr>
<td id="file-wc-bookings-bookings_calendar_default_to_first_available-php-L1" class="blob-num js-line-number" data-line-number="1"> </td>
<td id="file-wc-bookings-bookings_calendar_default_to_first_available-php-LC1" class="blob-code blob-code-inner js-file-line">/**</td>
</tr>
<tr>
<td id="file-wc-bookings-bookings_calendar_default_to_first_available-php-L2" class="blob-num js-line-number" data-line-number="2"> </td>
<td id="file-wc-bookings-bookings_calendar_default_to_first_available-php-LC2" class="blob-code blob-code-inner js-file-line">* Will make the Bookings calender default to the month with the first available booking.</td>
</tr>
<tr>
<td id="file-wc-bookings-bookings_calendar_default_to_first_available-php-L3" class="blob-num js-line-number" data-line-number="3"> </td>
<td id="file-wc-bookings-bookings_calendar_default_to_first_available-php-LC3" class="blob-code blob-code-inner js-file-line">*/</td>
</tr>
<tr>
<td id="file-wc-bookings-bookings_calendar_default_to_first_available-php-L4" class="blob-num js-line-number" data-line-number="4"> </td>
<td id="file-wc-bookings-bookings_calendar_default_to_first_available-php-LC4" class="blob-code blob-code-inner js-file-line">add_filter( &#8216;wc_bookings_calendar_default_to_current_date&#8217;, &#8216;__return_false&#8217; );</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
</div>
</div>
</div>
<p>&nbsp;</p>
</div>
</div>
<hr />
<div id="modify_summary_date"> </div>
<h3 id="section-4">Modify the date in a booking’s summary</h3>
<p>A booking’s date in its summary is able to be modified with the <code>wc_bookings_summary_list_date</code> filter. This filter passes three arguments, the original date string, the timestamp for the start, and the timestamp for the end.</p>
<p>This example will modify the date so that only the start date is returned for the summary:</p>
<div id="gist87967244" class="gist">
<div class="gist-file">
<div class="gist-data">
<div class="js-gist-file-update-container js-task-list-container file-box">
<div id="file-wc-bookings-summary-list-date" class="file my-2">
<div class="Box-body p-0 blob-wrapper data type-text  ">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" data-paste-markdown-skip="">
<tbody>
<tr>
<td id="file-wc-bookings-summary-list-date-L1" class="blob-num js-line-number" data-line-number="1"> </td>
<td id="file-wc-bookings-summary-list-date-LC1" class="blob-code blob-code-inner js-file-line">/**</td>
</tr>
<tr>
<td id="file-wc-bookings-summary-list-date-L2" class="blob-num js-line-number" data-line-number="2"> </td>
<td id="file-wc-bookings-summary-list-date-LC2" class="blob-code blob-code-inner js-file-line">* wc_bookings_summary_list_date is used to filter a booking&#8217;s summary date.</td>
</tr>
<tr>
<td id="file-wc-bookings-summary-list-date-L3" class="blob-num js-line-number" data-line-number="3"> </td>
<td id="file-wc-bookings-summary-list-date-LC3" class="blob-code blob-code-inner js-file-line">* This example removes the end date for a multi-day booking.</td>
</tr>
<tr>
<td id="file-wc-bookings-summary-list-date-L4" class="blob-num js-line-number" data-line-number="4"> </td>
<td id="file-wc-bookings-summary-list-date-LC4" class="blob-code blob-code-inner js-file-line">*</td>
</tr>
<tr>
<td id="file-wc-bookings-summary-list-date-L5" class="blob-num js-line-number" data-line-number="5"> </td>
<td id="file-wc-bookings-summary-list-date-LC5" class="blob-code blob-code-inner js-file-line">* @param string $booking_date The formatted date that is displayed by default.</td>
</tr>
<tr>
<td id="file-wc-bookings-summary-list-date-L6" class="blob-num js-line-number" data-line-number="6"> </td>
<td id="file-wc-bookings-summary-list-date-LC6" class="blob-code blob-code-inner js-file-line">* @param int $booking_start Timestamp for the booking start time/date.</td>
</tr>
<tr>
<td id="file-wc-bookings-summary-list-date-L7" class="blob-num js-line-number" data-line-number="7"> </td>
<td id="file-wc-bookings-summary-list-date-LC7" class="blob-code blob-code-inner js-file-line">* @param int $booking_end Timestamp for the booking end time/date.</td>
</tr>
<tr>
<td id="file-wc-bookings-summary-list-date-L8" class="blob-num js-line-number" data-line-number="8"> </td>
<td id="file-wc-bookings-summary-list-date-LC8" class="blob-code blob-code-inner js-file-line">* @return string The modified date string.</td>
</tr>
<tr>
<td id="file-wc-bookings-summary-list-date-L9" class="blob-num js-line-number" data-line-number="9"> </td>
<td id="file-wc-bookings-summary-list-date-LC9" class="blob-code blob-code-inner js-file-line">*/</td>
</tr>
<tr>
<td id="file-wc-bookings-summary-list-date-L10" class="blob-num js-line-number" data-line-number="10"> </td>
<td id="file-wc-bookings-summary-list-date-LC10" class="blob-code blob-code-inner js-file-line">function modify_summary_date_20170821( $booking_date, $booking_start, $booking_end ) {</td>
</tr>
<tr>
<td id="file-wc-bookings-summary-list-date-L11" class="blob-num js-line-number" data-line-number="11"> </td>
<td id="file-wc-bookings-summary-list-date-LC11" class="blob-code blob-code-inner js-file-line">return date( &#8216;F j, Y&#8217;, $booking_start );</td>
</tr>
<tr>
<td id="file-wc-bookings-summary-list-date-L12" class="blob-num js-line-number" data-line-number="12"> </td>
<td id="file-wc-bookings-summary-list-date-LC12" class="blob-code blob-code-inner js-file-line">}</td>
</tr>
<tr>
<td id="file-wc-bookings-summary-list-date-L13" class="blob-num js-line-number" data-line-number="13"> </td>
<td id="file-wc-bookings-summary-list-date-LC13" class="blob-code blob-code-inner js-file-line">add_filter( &#8216;wc_bookings_summary_list_date&#8217;, &#8216;modify_summary_date_20170821&#8217;, 10, 3 );</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
</div>
</div>
<p><a href="https://help.codibu.com/wp-content/uploads/2020/11/screen-shot-2017-08-21-at-17-16-50.png" rel="prettyPhoto"><img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-562432" src="https://help.codibu.com/wp-content/uploads/2020/11/screen-shot-2017-08-21-at-17-16-50.png" alt="" width="471" height="402" /></a></p>
<hr />
<div id="modify_incart_expiry"> </div>
<h3 id="section-5">Modify when In Cart bookings expire</h3>
<p>When bookings are added to the cart, they are immediately created. This allows for blocks to be properly reserved on the calendar. By default, these bookings expire after 60 minutes and are deleted by a WP Cron event.</p>
<p>The <code>woocommerce_bookings_remove_inactive_cart_time</code> filter allows you to increase or decrease this time. The example below reduces the time to 30 minutes:</p>
<div id="gist75426182" class="gist">
<div class="gist-file">
<div class="gist-data">
<div class="js-gist-file-update-container js-task-list-container file-box">
<div id="file-change_incart_bookings_expiry_minutes-php" class="file my-2">
<div class="Box-body p-0 blob-wrapper data type-php  ">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" data-paste-markdown-skip="">
<tbody>
<tr>
<td id="file-change_incart_bookings_expiry_minutes-php-L1" class="blob-num js-line-number" data-line-number="1"> </td>
<td id="file-change_incart_bookings_expiry_minutes-php-LC1" class="blob-code blob-code-inner js-file-line"><span class="pl-ent">&lt;?php</span> <span class="pl-c">// do not copy this line</span></td>
</tr>
<tr>
<td id="file-change_incart_bookings_expiry_minutes-php-L2" class="blob-num js-line-number" data-line-number="2"> </td>
<td id="file-change_incart_bookings_expiry_minutes-php-LC2" class="blob-code blob-code-inner js-file-line"> </td>
</tr>
<tr>
<td id="file-change_incart_bookings_expiry_minutes-php-L3" class="blob-num js-line-number" data-line-number="3"> </td>
<td id="file-change_incart_bookings_expiry_minutes-php-LC3" class="blob-code blob-code-inner js-file-line"><span class="pl-c">/**</span></td>
</tr>
<tr>
<td id="file-change_incart_bookings_expiry_minutes-php-L4" class="blob-num js-line-number" data-line-number="4"> </td>
<td id="file-change_incart_bookings_expiry_minutes-php-LC4" class="blob-code blob-code-inner js-file-line"><span class="pl-c"> * Will change the minutes it takes an In Cart booking to expire.</span></td>
</tr>
<tr>
<td id="file-change_incart_bookings_expiry_minutes-php-L5" class="blob-num js-line-number" data-line-number="5"> </td>
<td id="file-change_incart_bookings_expiry_minutes-php-LC5" class="blob-code blob-code-inner js-file-line"><span class="pl-c"> * This example reduces the number from 60 to 30.</span></td>
</tr>
<tr>
<td id="file-change_incart_bookings_expiry_minutes-php-L6" class="blob-num js-line-number" data-line-number="6"> </td>
<td id="file-change_incart_bookings_expiry_minutes-php-LC6" class="blob-code blob-code-inner js-file-line"><span class="pl-c"> * </span></td>
</tr>
<tr>
<td id="file-change_incart_bookings_expiry_minutes-php-L7" class="blob-num js-line-number" data-line-number="7"> </td>
<td id="file-change_incart_bookings_expiry_minutes-php-LC7" class="blob-code blob-code-inner js-file-line"><span class="pl-c"> * @param int $minutes 60 is the default passed</span></td>
</tr>
<tr>
<td id="file-change_incart_bookings_expiry_minutes-php-L8" class="blob-num js-line-number" data-line-number="8"> </td>
<td id="file-change_incart_bookings_expiry_minutes-php-LC8" class="blob-code blob-code-inner js-file-line"><span class="pl-c"> * @return int The amount of minutes you&#8217;d like to have In Cart bookings expire on. </span></td>
</tr>
<tr>
<td id="file-change_incart_bookings_expiry_minutes-php-L9" class="blob-num js-line-number" data-line-number="9"> </td>
<td id="file-change_incart_bookings_expiry_minutes-php-LC9" class="blob-code blob-code-inner js-file-line"><span class="pl-c"> */</span></td>
</tr>
<tr>
<td id="file-change_incart_bookings_expiry_minutes-php-L10" class="blob-num js-line-number" data-line-number="10"> </td>
<td id="file-change_incart_bookings_expiry_minutes-php-LC10" class="blob-code blob-code-inner js-file-line"><span class="pl-k">function</span> <span class="pl-en">change_incart_bookings_expiry_minutes_20170825</span>( <span class="pl-s1"><span class="pl-c1">$</span>minutes</span> ) {</td>
</tr>
<tr>
<td id="file-change_incart_bookings_expiry_minutes-php-L11" class="blob-num js-line-number" data-line-number="11"> </td>
<td id="file-change_incart_bookings_expiry_minutes-php-LC11" class="blob-code blob-code-inner js-file-line"><span class="pl-k">return</span> <span class="pl-c1">30</span>;</td>
</tr>
<tr>
<td id="file-change_incart_bookings_expiry_minutes-php-L12" class="blob-num js-line-number" data-line-number="12"> </td>
<td id="file-change_incart_bookings_expiry_minutes-php-LC12" class="blob-code blob-code-inner js-file-line">}</td>
</tr>
<tr>
<td id="file-change_incart_bookings_expiry_minutes-php-L13" class="blob-num js-line-number" data-line-number="13"> </td>
<td id="file-change_incart_bookings_expiry_minutes-php-LC13" class="blob-code blob-code-inner js-file-line"><span class="pl-en">add_filter</span>( <span class="pl-s">&#8216;woocommerce_bookings_remove_inactive_cart_time&#8217;</span>, <span class="pl-s">&#8216;change_incart_bookings_expiry_minutes_20170825&#8217;</span> );</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
</div>
</div>
<div class="woo-sc-box note   "><strong>Note</strong>: If this time is reduced to just a few minutes, then it is possible a booking may be removed from a customer’s cart before they complete checkout. The lowest recommended time is 15 minutes.</div>
<hr />
<div id="enable_big_selects"> </div>
<h3 id="section-6">Enable Big Selects to fix MAX_JOIN_SIZE errors</h3>
<p>Sometimes shared hosts have a low threshold for MAX_JOIN_SIZE, which causes problems with WooCommerce Bookings and WordPress in general. This example fixes that in most cases:</p>
<div id="gist87967503" class="gist">
<div class="gist-file">
<div class="gist-data">
<div class="js-gist-file-update-container js-task-list-container file-box">
<div id="file-wc-bookings-enable-big-selects-for-bookings-php" class="file my-2">
<div class="Box-body p-0 blob-wrapper data type-php  ">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" data-paste-markdown-skip="">
<tbody>
<tr>
<td id="file-wc-bookings-enable-big-selects-for-bookings-php-L1" class="blob-num js-line-number" data-line-number="1"> </td>
<td id="file-wc-bookings-enable-big-selects-for-bookings-php-LC1" class="blob-code blob-code-inner js-file-line">/**</td>
</tr>
<tr>
<td id="file-wc-bookings-enable-big-selects-for-bookings-php-L2" class="blob-num js-line-number" data-line-number="2"> </td>
<td id="file-wc-bookings-enable-big-selects-for-bookings-php-LC2" class="blob-code blob-code-inner js-file-line">* Will enable big selects when the host has a low threshold for MAX_JOIN_SIZE.</td>
</tr>
<tr>
<td id="file-wc-bookings-enable-big-selects-for-bookings-php-L3" class="blob-num js-line-number" data-line-number="3"> </td>
<td id="file-wc-bookings-enable-big-selects-for-bookings-php-LC3" class="blob-code blob-code-inner js-file-line">* This is sometimes the case with shared hosting.</td>
</tr>
<tr>
<td id="file-wc-bookings-enable-big-selects-for-bookings-php-L4" class="blob-num js-line-number" data-line-number="4"> </td>
<td id="file-wc-bookings-enable-big-selects-for-bookings-php-LC4" class="blob-code blob-code-inner js-file-line">*/</td>
</tr>
<tr>
<td id="file-wc-bookings-enable-big-selects-for-bookings-php-L5" class="blob-num js-line-number" data-line-number="5"> </td>
<td id="file-wc-bookings-enable-big-selects-for-bookings-php-LC5" class="blob-code blob-code-inner js-file-line">function enable_big_selects_for_bookings_20170825() {</td>
</tr>
<tr>
<td id="file-wc-bookings-enable-big-selects-for-bookings-php-L6" class="blob-num js-line-number" data-line-number="6"> </td>
<td id="file-wc-bookings-enable-big-selects-for-bookings-php-LC6" class="blob-code blob-code-inner js-file-line">global $wpdb;</td>
</tr>
<tr>
<td id="file-wc-bookings-enable-big-selects-for-bookings-php-L7" class="blob-num js-line-number" data-line-number="7"> </td>
<td id="file-wc-bookings-enable-big-selects-for-bookings-php-LC7" class="blob-code blob-code-inner js-file-line">$wpdb-<span class="pl-kos">&gt;</span>query( &#8216;SET SQL_BIG_SELECTS=1&#8217; );</td>
</tr>
<tr>
<td id="file-wc-bookings-enable-big-selects-for-bookings-php-L8" class="blob-num js-line-number" data-line-number="8"> </td>
<td id="file-wc-bookings-enable-big-selects-for-bookings-php-LC8" class="blob-code blob-code-inner js-file-line">}</td>
</tr>
<tr>
<td id="file-wc-bookings-enable-big-selects-for-bookings-php-L9" class="blob-num js-line-number" data-line-number="9"> </td>
<td id="file-wc-bookings-enable-big-selects-for-bookings-php-LC9" class="blob-code blob-code-inner js-file-line">add_action( &#8216;init&#8217;, &#8216;enable_big_selects_for_bookings_20170825&#8217; );</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
</div>
</div>
<hr />
<div id="confirm_cod"> </div>
<h3 id="section-7">Automatically confirm bookings purchased via COD</h3>
<p>When an order is placed for a booking via COD it remains in Unpaid status. Some store owners may want to have these bookings moved to Confirmed status, this example will do that:</p>
<div id="gist87967601" class="gist">
<div class="gist-file">
<div class="gist-data">
<div class="js-gist-file-update-container js-task-list-container file-box">
<div id="file-wc-bookings-automatically-confirm-cod-bookings-php" class="file my-2">
<div class="Box-body p-0 blob-wrapper data type-php  ">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" data-paste-markdown-skip="">
<tbody>
<tr>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-L1" class="blob-num js-line-number" data-line-number="1"> </td>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-LC1" class="blob-code blob-code-inner js-file-line">/**</td>
</tr>
<tr>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-L2" class="blob-num js-line-number" data-line-number="2"> </td>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-LC2" class="blob-code blob-code-inner js-file-line">* Will put bookings into a Confirmed status if they were paid for via COD.</td>
</tr>
<tr>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-L3" class="blob-num js-line-number" data-line-number="3"> </td>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-LC3" class="blob-code blob-code-inner js-file-line">*</td>
</tr>
<tr>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-L4" class="blob-num js-line-number" data-line-number="4"> </td>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-LC4" class="blob-code blob-code-inner js-file-line">* @param int $order_id The order id</td>
</tr>
<tr>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-L5" class="blob-num js-line-number" data-line-number="5"> </td>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-LC5" class="blob-code blob-code-inner js-file-line">*/</td>
</tr>
<tr>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-L6" class="blob-num js-line-number" data-line-number="6"> </td>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-LC6" class="blob-code blob-code-inner js-file-line">function set_cod_bookings_confirmed_20170825( $order_id ) {</td>
</tr>
<tr>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-L7" class="blob-num js-line-number" data-line-number="7"> </td>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-LC7" class="blob-code blob-code-inner js-file-line"> </td>
</tr>
<tr>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-L8" class="blob-num js-line-number" data-line-number="8"> </td>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-LC8" class="blob-code blob-code-inner js-file-line">// Get the order, then make sure its payment method is COD.</td>
</tr>
<tr>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-L9" class="blob-num js-line-number" data-line-number="9"> </td>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-LC9" class="blob-code blob-code-inner js-file-line">$order = wc_get_order( $order_id );</td>
</tr>
<tr>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-L10" class="blob-num js-line-number" data-line-number="10"> </td>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-LC10" class="blob-code blob-code-inner js-file-line">if ( &#8216;cod&#8217; !== $order-<span class="pl-kos">&gt;</span>get_payment_method() ) {</td>
</tr>
<tr>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-L11" class="blob-num js-line-number" data-line-number="11"> </td>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-LC11" class="blob-code blob-code-inner js-file-line">return;</td>
</tr>
<tr>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-L12" class="blob-num js-line-number" data-line-number="12"> </td>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-LC12" class="blob-code blob-code-inner js-file-line">}</td>
</tr>
<tr>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-L13" class="blob-num js-line-number" data-line-number="13"> </td>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-LC13" class="blob-code blob-code-inner js-file-line">// Call the data store class so we can get bookings from the order.</td>
</tr>
<tr>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-L14" class="blob-num js-line-number" data-line-number="14"> </td>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-LC14" class="blob-code blob-code-inner js-file-line">$booking_data = new WC_Booking_Data_Store();</td>
</tr>
<tr>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-L15" class="blob-num js-line-number" data-line-number="15"> </td>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-LC15" class="blob-code blob-code-inner js-file-line">$booking_ids = $booking_data-<span class="pl-kos">&gt;</span>get_booking_ids_from_order_id( $order_id );</td>
</tr>
<tr>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-L16" class="blob-num js-line-number" data-line-number="16"> </td>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-LC16" class="blob-code blob-code-inner js-file-line">// If we have bookings go through each and update the status.</td>
</tr>
<tr>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-L17" class="blob-num js-line-number" data-line-number="17"> </td>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-LC17" class="blob-code blob-code-inner js-file-line">if ( is_array( $booking_ids ) &amp;&amp; count( $booking_ids ) <span class="pl-kos">&gt;</span> 0 ) {</td>
</tr>
<tr>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-L18" class="blob-num js-line-number" data-line-number="18"> </td>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-LC18" class="blob-code blob-code-inner js-file-line">foreach ( $booking_ids as $booking_id ) {</td>
</tr>
<tr>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-L19" class="blob-num js-line-number" data-line-number="19"> </td>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-LC19" class="blob-code blob-code-inner js-file-line">$booking = get_wc_booking( $booking_id );</td>
</tr>
<tr>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-L20" class="blob-num js-line-number" data-line-number="20"> </td>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-LC20" class="blob-code blob-code-inner js-file-line">$booking-<span class="pl-kos">&gt;</span>update_status( &#8216;confirmed&#8217; );</td>
</tr>
<tr>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-L21" class="blob-num js-line-number" data-line-number="21"> </td>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-LC21" class="blob-code blob-code-inner js-file-line">}</td>
</tr>
<tr>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-L22" class="blob-num js-line-number" data-line-number="22"> </td>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-LC22" class="blob-code blob-code-inner js-file-line">}</td>
</tr>
<tr>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-L23" class="blob-num js-line-number" data-line-number="23"> </td>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-LC23" class="blob-code blob-code-inner js-file-line">}</td>
</tr>
<tr>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-L24" class="blob-num js-line-number" data-line-number="24"> </td>
<td id="file-wc-bookings-automatically-confirm-cod-bookings-php-LC24" class="blob-code blob-code-inner js-file-line">add_action( &#8216;woocommerce_order_status_processing&#8217;, &#8216;set_cod_bookings_confirmed_20170825&#8217;, 20 );</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
</div>
</div>
</div>
<p>&nbsp;</p>
</div>
</div>
<hr />
<div id="show_dependencies"> </div>
<h3 id="section-8">Show Dependencies tab for Bookable products with WooCommerce Product Dependencies</h3>
<p>WooCommerce Product Dependencies is a great little extension that allows you to require one product if another is purchased. In order to get the Dependencies tab to show for Bookable products, a filter needs to be used:</p>
<div id="gist87967672" class="gist">
<div class="gist-file">
<div class="gist-data">
<div class="js-gist-file-update-container js-task-list-container file-box">
<div id="file-wc-bookable-product-to-dependencies-php" class="file my-2">
<div class="Box-body p-0 blob-wrapper data type-php  ">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" data-paste-markdown-skip="">
<tbody>
<tr>
<td id="file-wc-bookable-product-to-dependencies-php-L1" class="blob-num js-line-number" data-line-number="1"> </td>
<td id="file-wc-bookable-product-to-dependencies-php-LC1" class="blob-code blob-code-inner js-file-line">/**</td>
</tr>
<tr>
<td id="file-wc-bookable-product-to-dependencies-php-L2" class="blob-num js-line-number" data-line-number="2"> </td>
<td id="file-wc-bookable-product-to-dependencies-php-LC2" class="blob-code blob-code-inner js-file-line">* Will make it so the Dependencies tab shows on a Bookable product.</td>
</tr>
<tr>
<td id="file-wc-bookable-product-to-dependencies-php-L3" class="blob-num js-line-number" data-line-number="3"> </td>
<td id="file-wc-bookable-product-to-dependencies-php-LC3" class="blob-code blob-code-inner js-file-line">*</td>
</tr>
<tr>
<td id="file-wc-bookable-product-to-dependencies-php-L4" class="blob-num js-line-number" data-line-number="4"> </td>
<td id="file-wc-bookable-product-to-dependencies-php-LC4" class="blob-code blob-code-inner js-file-line">* @param array $tabs The list of tabs in a product&#8217;s settings.</td>
</tr>
<tr>
<td id="file-wc-bookable-product-to-dependencies-php-L5" class="blob-num js-line-number" data-line-number="5"> </td>
<td id="file-wc-bookable-product-to-dependencies-php-LC5" class="blob-code blob-code-inner js-file-line">*/</td>
</tr>
<tr>
<td id="file-wc-bookable-product-to-dependencies-php-L6" class="blob-num js-line-number" data-line-number="6"> </td>
<td id="file-wc-bookable-product-to-dependencies-php-LC6" class="blob-code blob-code-inner js-file-line">function add_bookable_product_to_dependencies( $tabs ) {</td>
</tr>
<tr>
<td id="file-wc-bookable-product-to-dependencies-php-L7" class="blob-num js-line-number" data-line-number="7"> </td>
<td id="file-wc-bookable-product-to-dependencies-php-LC7" class="blob-code blob-code-inner js-file-line">// Check to see if the class exists and if the tab is set.</td>
</tr>
<tr>
<td id="file-wc-bookable-product-to-dependencies-php-L8" class="blob-num js-line-number" data-line-number="8"> </td>
<td id="file-wc-bookable-product-to-dependencies-php-LC8" class="blob-code blob-code-inner js-file-line">if ( class_exists( &#8216;WC_Product_Dependencies&#8217; ) &amp;&amp; isset( $tabs[&#8216;dependencies&#8217;] ) ) {</td>
</tr>
<tr>
<td id="file-wc-bookable-product-to-dependencies-php-L9" class="blob-num js-line-number" data-line-number="9"> </td>
<td id="file-wc-bookable-product-to-dependencies-php-LC9" class="blob-code blob-code-inner js-file-line">// If so, add our class for the JS hooks.</td>
</tr>
<tr>
<td id="file-wc-bookable-product-to-dependencies-php-L10" class="blob-num js-line-number" data-line-number="10"> </td>
<td id="file-wc-bookable-product-to-dependencies-php-LC10" class="blob-code blob-code-inner js-file-line">$tabs[&#8216;dependencies&#8217;][&#8216;class&#8217;][] = &#8216;show_if_booking&#8217;;</td>
</tr>
<tr>
<td id="file-wc-bookable-product-to-dependencies-php-L11" class="blob-num js-line-number" data-line-number="11"> </td>
<td id="file-wc-bookable-product-to-dependencies-php-LC11" class="blob-code blob-code-inner js-file-line">}</td>
</tr>
<tr>
<td id="file-wc-bookable-product-to-dependencies-php-L12" class="blob-num js-line-number" data-line-number="12"> </td>
<td id="file-wc-bookable-product-to-dependencies-php-LC12" class="blob-code blob-code-inner js-file-line">return $tabs;</td>
</tr>
<tr>
<td id="file-wc-bookable-product-to-dependencies-php-L13" class="blob-num js-line-number" data-line-number="13"> </td>
<td id="file-wc-bookable-product-to-dependencies-php-LC13" class="blob-code blob-code-inner js-file-line">}</td>
</tr>
<tr>
<td id="file-wc-bookable-product-to-dependencies-php-L14" class="blob-num js-line-number" data-line-number="14"> </td>
<td id="file-wc-bookable-product-to-dependencies-php-LC14" class="blob-code blob-code-inner js-file-line">add_filter( &#8216;woocommerce_product_data_tabs&#8217;, &#8216;add_bookable_product_to_dependencies&#8217;, 999 );</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
</div>
</div>
</div>
<p>&nbsp;</p>
</div>
</div>
<hr />
<div id="no_cal_format"> </div>
<h3 id="section-9">Change date format when calendar picker is not used in front end</h3>
<p>By default the fields used for a customer to enter a date if the calendar picker is not used are in MM/DD/YYYY format. If you would like to update this to DD/MM/YYYY format, this snippet can be used:</p>
<div id="gist87967742" class="gist">
<div class="gist-file">
<div class="gist-data">
<div class="js-gist-file-update-container js-task-list-container file-box">
<div id="file-wc-bookings-mdy-format-php" class="file my-2">
<div class="Box-body p-0 blob-wrapper data type-php  ">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" data-paste-markdown-skip="">
<tbody>
<tr>
<td id="file-wc-bookings-mdy-format-php-L1" class="blob-num js-line-number" data-line-number="1"> </td>
<td id="file-wc-bookings-mdy-format-php-LC1" class="blob-code blob-code-inner js-file-line">/**</td>
</tr>
<tr>
<td id="file-wc-bookings-mdy-format-php-L2" class="blob-num js-line-number" data-line-number="2"> </td>
<td id="file-wc-bookings-mdy-format-php-LC2" class="blob-code blob-code-inner js-file-line">* Will make it so that the date format when the calendar is not used is DD/MM/YYYY on a Bookable product.</td>
</tr>
<tr>
<td id="file-wc-bookings-mdy-format-php-L3" class="blob-num js-line-number" data-line-number="3"> </td>
<td id="file-wc-bookings-mdy-format-php-LC3" class="blob-code blob-code-inner js-file-line">*/</td>
</tr>
<tr>
<td id="file-wc-bookings-mdy-format-php-L4" class="blob-num js-line-number" data-line-number="4"> </td>
<td id="file-wc-bookings-mdy-format-php-LC4" class="blob-code blob-code-inner js-file-line">add_filter( &#8216;woocommerce_bookings_mdy_format&#8217; , &#8216;__return_false&#8217; );</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
</div>
</div>
</div>
<p>&nbsp;</p>
</div>
</div>
<p>Additionally, <a href="https://help.codibu.com/blog/kb/bookings-templates/">Bookings has templates</a> that can be overridden for a more customized approach.</p>
<hr />
<div id="custom_google_client"> </div>
<h3 id="section-10">Use Custom Application from Google Developer’s Console for Calendar Integration</h3>
<p>To use the Bookings Google Calendar Integration it is necessary to grant permissions to the official WooCommerce app in order to give your store access to your Google Calendar. If you wish to use your own app setup in the Google Developer’s Console you can do so by updating the Google client’s ID and secret with this snippet:</p>
<div id="gist97448345" class="gist">
<div class="gist-file">
<div class="gist-data">
<div class="js-gist-file-update-container js-task-list-container file-box">
<div id="file-functions-php" class="file my-2">
<div class="Box-body p-0 blob-wrapper data type-php  ">
<table class="highlight tab-size js-file-line-container" data-tab-size="8" data-paste-markdown-skip="">
<tbody>
<tr>
<td id="file-functions-php-L1" class="blob-num js-line-number" data-line-number="1"> </td>
<td id="file-functions-php-LC1" class="blob-code blob-code-inner js-file-line">/**</td>
</tr>
<tr>
<td id="file-functions-php-L2" class="blob-num js-line-number" data-line-number="2"> </td>
<td id="file-functions-php-LC2" class="blob-code blob-code-inner js-file-line">* Update Google client with your own application&#8217;s cliend ID and secret from the Google Developer&#8217;s Console.</td>
</tr>
<tr>
<td id="file-functions-php-L3" class="blob-num js-line-number" data-line-number="3"> </td>
<td id="file-functions-php-LC3" class="blob-code blob-code-inner js-file-line">*/</td>
</tr>
<tr>
<td id="file-functions-php-L4" class="blob-num js-line-number" data-line-number="4"> </td>
<td id="file-functions-php-LC4" class="blob-code blob-code-inner js-file-line">add_action(</td>
</tr>
<tr>
<td id="file-functions-php-L5" class="blob-num js-line-number" data-line-number="5"> </td>
<td id="file-functions-php-LC5" class="blob-code blob-code-inner js-file-line">&#8216;woocommerce_bookings_update_google_client&#8217;,</td>
</tr>
<tr>
<td id="file-functions-php-L6" class="blob-num js-line-number" data-line-number="6"> </td>
<td id="file-functions-php-LC6" class="blob-code blob-code-inner js-file-line">function ( Google_Client $client ) {</td>
</tr>
<tr>
<td id="file-functions-php-L7" class="blob-num js-line-number" data-line-number="7"> </td>
<td id="file-functions-php-LC7" class="blob-code blob-code-inner js-file-line">$client-<span class="pl-kos">&gt;</span>setClientId( &#8216;YourClientIDFromGoogleDevelopersConsole&#8217; );</td>
</tr>
<tr>
<td id="file-functions-php-L8" class="blob-num js-line-number" data-line-number="8"> </td>
<td id="file-functions-php-LC8" class="blob-code blob-code-inner js-file-line">$client-<span class="pl-kos">&gt;</span>setClientSecret( &#8216;YourClientIDFromGoogleDevelopersConsole&#8217; );</td>
</tr>
<tr>
<td id="file-functions-php-L9" class="blob-num js-line-number" data-line-number="9"> </td>
<td id="file-functions-php-LC9" class="blob-code blob-code-inner js-file-line">}</td>
</tr>
<tr>
<td id="file-functions-php-L10" class="blob-num js-line-number" data-line-number="10"> </td>
<td id="file-functions-php-LC10" class="blob-code blob-code-inner js-file-line">);</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div><p>The post <a href="https://help.codibu.com/blog/bookings-snippets-tips-and-tweaks/">Bookings Snippets: Tips and Tweaks</a> first appeared on <a href="https://help.codibu.com">CODIBU</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://help.codibu.com/blog/bookings-snippets-tips-and-tweaks/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
