Services and bookings

  1. The service: product_upsert with type: "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. Set status: "active".
  2. Who and when: service_setup with the resource name, its weekly hours (weekday 0 = Sunday … 6 = Saturday, "09:00"–"18:00", local store time) and service_product_ids. Block vacations with closed.
  3. Check: availability_get with the variant id must list times. If it is empty, the resource has no hours or is not assigned to the service.
  4. Storefront: the product page shows <BookingPicker> automatically for services (from product-detail). Checkout offers "pay deposit / pay total" when the service has deposit_amount.
  5. Verify: test_purchase with the service variant_ids books the first free time end to end (payment, confirmation email with a calendar invitation) and frees it again.

Operating the agenda

Raw Markdown for agents: skills/services-and-bookings/SKILL.md · Edit on GitHub