doc-site
Operations

Bookings and camp swaps

Where booking details are kept, how confirmation and reminder emails are produced, how to move a participant to another camp, and how to handle test orders.

Every booking exists in two places. Shopify holds the order and payment, with each participant's details on the order line. Zoho CRM holds the booking, participant, child and family records that ASC uses to run camps.

Shopify sends each new order to Zoho automatically. Later edits to a Shopify order are not sent by that process.

Find a booking

To findGo to
Payment, refund, customer contactShopify Admin, Orders
Participant details as enteredShopify Admin, Orders, then the line item properties on the camp
Booking, participant, family and camp recordsZoho CRM, Bookings or Participants

Zapier sends each new order to Zoho after checkout. If a paid booking has not appeared in Zoho, follow A booking is missing in Zoho.

Move a participant to another camp

Use the Camp Swap feature of ASC's Shopify Admin app. It updates both systems together:

  • In Shopify, it reduces the original camp on the order and records the swap in the order's Camp Swaps metafield.
  • In Zoho, it marks the original booking and creates the booking and participant for the new camp.

Do not swap a camp by editing the order directly in Shopify. The order edit changes Shopify only, and Zoho keeps the original camp.

The Camp Swap app is not part of this repository, so its screens are not described here. Ask the developer team for access or a walkthrough.

Confirmation and reminder emails

The Zoho integration sends these emails for a camp booking, from ASC-Bookings@australiansportscamps.com.au:

EmailWhen
Booking confirmationShortly after checkout
Reminder7 days before the camp starts
Reminder2 days before the camp starts

Each email is built from metafields on the camp. Open the product, or the variant, and find the Email Templates metafields.

MetafieldWhereWhat it holds
Email Templates - Fallback Base TemplateProductThe email body for a single-sport product
Email Templates - Base TemplateVariantThe email body for a Community Sports Camps variant. Falls back to the product's template
Email Templates - Base Subject LineProduct or variantSubject line
Email Templates - Reminder Subject LineProduct or variantReminder subject line
Email Templates - What to BringVariantInserted where the template says {what_to_bring}
Email Templates - Directions & Pickup TimesVariantInserted where the template says {pickup_time}

The templates can use these placeholders. Type them exactly, including the braces.

PlaceholderReplaced with
{camp_name}The camp name
{camp_dates}The camp dates
{camp_venue}The venue
{location}The location
{what_to_bring}The What to Bring metafield
{pickup_time}The Directions & Pickup Times metafield
{order_number}The order number, in subject lines
{base_subject}The base subject line, in the reminder subject line

The integration will not send the same email for the same order twice.

Test orders

There is no test copy of Zoho. An order placed on the live website, including a test order, is sent to Zoho and triggers the confirmation email.

Before placing a test order, tell the bookings team. After it, remove the test records in Zoho. The integration's documentation refers to a "Dev Test Bookings" view in Zoho for finding them.

The order metafield Environment can mark an order as a test, so the Zoho integration skips it. It has to be set on the order before Zapier processes it, and nothing on the website sets it, so in practice it is only useful for orders created by developers.

Line item properties on an order

PropertyContent
First Name, Middle Name, Last NameParticipant name
Date of BirthFor example "05 March 2015"
GenderMale, Female or Other
Confidential Gender InfoOnly present if the parent added it
SchoolSchool name from Google
Grade0 for Prep, otherwise 1 to 12
Club or Team NameClub name, or "No club"
Playing ExperienceBeginner, Intermediate or Accomplished
Friends AttendingOnly present if the parent added it
Medical ConditionsOnly present if the parent added it

A hidden _ClubId property holds the Zoho club record id when the club was chosen from the list.

The order metafield Participant Details is maintained by the Zoho integration. Do not edit it.

Developer map

ConcernSource
Properties added at bookingsrc/components/CampBooking.tsx
Order to Zohoasc-api-src-zoho-integration repository, src/features/orders.ts, src/features/bookings.ts
Emailsasc-api-src-zoho-integration repository, src/features/emails.ts
Camp swapasc-api-src-zoho-integration repository, src/features/camp-swap/

Background is in Booking and orders.

On this page