Services and bookings
- The service:
product_upsertwithtype: "service"and, per variant,service: { duration_min, location_type: "in_person" | "online", online_meeting_url?, capacity? (group classes), deposit_amount? (minor units), buffer_before_min?, buffer_after_min?, min_notice_min?, booking_window_days? }. Price in minor units as usual. Setstatus: "active". - Who and when:
service_setupwith the resource name, its weeklyhours(weekday0 = Sunday … 6 = Saturday,"09:00"–"18:00", local store time) andservice_product_ids. Block vacations withclosed. - Check:
availability_getwith the variant id must list times. If it is empty, the resource has no hours or is not assigned to the service. - Storefront: the product page shows
<BookingPicker>automatically for services (fromproduct-detail). Checkout offers "pay deposit / pay total" when the service hasdeposit_amount. - Verify:
test_purchasewith the servicevariant_idsbooks the first free time end to end (payment, confirmation email with a calendar invitation) and frees it again.
Operating the agenda
- Today's appointments:
bookings_searchwith today's range (store time zone). booking_action:complete,no_show,reschedule(pickstarts_atfromavailability_get),cancel(reason,confirm: true;refund: trueneeds refunds permission). Customers are emailed on reschedule and cancel; reminders go out 24 h and 2 h before automatically.- Deposits: the balance of a deposit order is collected with
order_actionpayment_link; send the URL to the customer. - Times are instants (UTC) in the API: always present them to the owner in the store time zone.
Raw Markdown for agents: skills/services-and-bookings/SKILL.md · Edit on GitHub