Bookable Status

Determining the status of a Course or Event can be useful for displaying conditional UI or messaging.

Course

A courses status can be determined by a combination of its session's metadata and product info coming from Shopify: Sold Out A course can be considered Sold Out if the course has not yet begun (e.g. the course's first session's starts_at is in the future) and the Product is no longer available.

{% assign current_variant = product.selected_or_first_available_variant %}
{% assign course_bookings_metafields = current_variant.metafields.bookings %}

// Sorted in ASC order
{% assign sessions_sorted = course_bookings_metafields.sessions | sort: 'starts_at' %}

{% assign course_starts_at = sessions_sorted.first.starts_at | date: '%s' %}
{% assign todays_date = 'now' | date: '%s' %}

{% if todays_date < course_starts_at and current_variant.available != true %}
    This Course is `Sold Out`
{% endif %}

Closed for Registration A course can be considered Closed for Registration if the course has begun (e.g. the course's first session's starts_at is in the past)

{% assign current_variant = product.selected_or_first_available_variant %}
{% assign course_bookings_metafields = current_variant.metafields.bookings %}

// Sorted in ASC order
{% assign sessions_sorted = course_bookings_metafields.sessions | sort: 'starts_at' %}

{% assign course_starts_at = sessions_sorted.first.starts_at | date: '%s' %}
{% assign todays_date = 'now' | date: '%s' %}

{% if todays_date > course_starts_at %}
    This Course is `Closed for Registration`
{% endif %}

In the Past A course can be considered In the Past if all course sessions have passed (e.g. the courses last session's ends_at is in the past)

{% assign current_variant = product.selected_or_first_available_variant %}
{% assign course_bookings_metafields = current_variant.metafields.bookings %}

// Sorted in ASC order
{% assign sessions_sorted = course_bookings_metafields.sessions | sort: 'starts_at' %}

{% assign course_ends_at = sessions_sorted.last.ends_at | date: '%s' %}
{% assign todays_date = 'now' | date: '%s' %}

{% if todays_date > course_ends_at %}
    This Course is `In the Past`
{% endif %}

Event

An event's status can be determined by a combination of its metadata and product info coming from Shopify:

Sold Out An event can be considered Sold Out if the event has not yet begun (e.g. the event'sstarts_at is in the future) and the Product is no longer available.

{% assign current_variant = product.selected_or_first_available_variant %}
{% assign event_bookings_metafields = current_variant.metafields.bookings %}

{% assign event_starts_at = event_bookings_metafields.starts_at | date: '%s' %}
{% assign todays_date = 'now' | date: '%s' %}

{% if todays_date < event_starts_at and current_variant.available != true %}
    This Event is `Sold Out`
{% endif %}

Closed for Registration An event can be considered Closed for Registration if the event has begun (e.g. the event's start_at is in the past)

{% assign current_variant = product.selected_or_first_available_variant %}
{% assign event_bookings_metafields = current_variant.metafields.bookings %}

{% assign event_starts_at = event_bookings_metafields.starts_at | date: '%s' %}
{% assign todays_date = 'now' | date: '%s' %}

{% if todays_date > event_starts_at %}
    This Event is `Closed for Registration`
{% endif %}

In the Past An event can be considered In the Past if the event has passed (e.g. the event's ends_at is in the past)

{% assign current_variant = product.selected_or_first_available_variant %}
{% assign event_bookings_metafields = current_variant.metafields.bookings %}

{% assign event_ends_at = event_bookings_metafields.ends_at | date: '%s' %}
{% assign todays_date = 'now' | date: '%s' %}

{% if todays_date > event_ends_at %}
    This Event is `In the Past`
{% endif %}

Last updated