{% comment %}
Event-Ready Finder — JAUS
Section for Online Store 2.0 themes. Add to the home page, occasion collections and the search template.
Reads product metafields in the "jaus" namespace (see metafield-definitions.json) and variant inventory.
Assets: event-ready.css, event-ready.js (place both in /assets).
The section renders a JSON feed for the chosen collection. Liquid returns 250 products per page, so the
loop is wrapped in paginate; event-ready.js fetches the remaining pages through the Section Rendering API
(?section_id=…&page=N) and merges them, so catalogs of any size work without an external feed. For very
large catalogs you can still point feed_url at an endpoint that returns the same shape as finder-data.json.
{% endcomment %}
{{ 'event-ready.css' | asset_url | stylesheet_tag }}
{%- assign coll = collections[section.settings.collection] | default: collections['dresses'] -%}
{%- assign occasions = section.settings.occasions | split: ',' -%}
{%- assign sizes = section.settings.sizes | split: ',' -%}
{%- paginate coll.products by 250 -%}
{% if section.settings.eyebrow != blank %}
{{ section.settings.eyebrow | escape }}
{% endif %}
{{ section.settings.heading | escape }}
{% if section.settings.text != blank %}
{{ section.settings.text | escape }}
{% endif %}
{{ 'Occasion' }}
{%- for o in occasions -%}
{%- assign ov = o | strip | downcase -%}
{%- endfor -%}
Your size
{%- for s in sizes -%}
{%- assign sv = s | strip | upcase -%}
{%- endfor -%}
{%- comment -%} Inline feed: one row per product with the fields the Finder needs. {%- endcomment -%}
{%- endpaginate -%}
{% schema %}
{
"name": "Event-Ready Finder",
"tag": "section",
"class": "section-event-ready",
"settings": [
{
"type": "text",
"id": "eyebrow",
"label": "Eyebrow",
"default": "Event-Ready"
},
{
"type": "text",
"id": "heading",
"label": "Heading",
"default": "The dress. In your size. Before the date."
},
{
"type": "textarea",
"id": "text",
"label": "Intro",
"default": "Pick the occasion, your size and the date. We only show what's in stock in your size, with a real arrives-by date."
},
{
"type": "collection",
"id": "collection",
"label": "Source collection"
},
{
"type": "url",
"id": "feed_url",
"label": "Feed URL (optional, for catalogs over 250 products)"
},
{
"type": "text",
"id": "occasions",
"label": "Occasions (comma separated, must match jaus.occasion values)",
"default": "Wedding guest, Black tie, Bride, Bridesmaid, Prom, Homecoming, Night out, Vacation"
},
{
"type": "text",
"id": "sizes",
"label": "Sizes (comma separated)",
"default": "XXS, XS, S, M, L, XL, XXL"
},
{
"type": "text",
"id": "default_size",
"label": "Default size",
"default": "M"
},
{
"type": "header",
"content": "Shipping calendar"
},
{
"type": "select",
"id": "cutoff_hour",
"label": "Same-day cutoff (hour, ET, 24h)",
"options": [
{
"value": "8",
"label": "8"
},
{
"value": "9",
"label": "9"
},
{
"value": "10",
"label": "10"
},
{
"value": "11",
"label": "11"
},
{
"value": "12",
"label": "12"
},
{
"value": "13",
"label": "13"
},
{
"value": "14",
"label": "14"
},
{
"value": "15",
"label": "15"
},
{
"value": "16",
"label": "16"
},
{
"value": "17",
"label": "17"
},
{
"value": "18",
"label": "18"
}
],
"default": "14"
},
{
"type": "select",
"id": "std_days",
"label": "Standard: business days after ship (worst case)",
"options": [
{
"value": "1",
"label": "1"
},
{
"value": "2",
"label": "2"
},
{
"value": "3",
"label": "3"
},
{
"value": "4",
"label": "4"
},
{
"value": "5",
"label": "5"
},
{
"value": "6",
"label": "6"
},
{
"value": "7",
"label": "7"
}
],
"default": "4"
},
{
"type": "select",
"id": "exp_days",
"label": "Express: business days after ship",
"options": [
{
"value": "1",
"label": "1"
},
{
"value": "2",
"label": "2"
},
{
"value": "3",
"label": "3"
},
{
"value": "4",
"label": "4"
}
],
"default": "2"
},
{
"type": "select",
"id": "ovn_days",
"label": "Overnight: business days after ship",
"options": [
{
"value": "1",
"label": "1"
},
{
"value": "2",
"label": "2"
}
],
"default": "1"
},
{
"type": "number",
"id": "free_over",
"label": "Free shipping threshold (USD)",
"default": 70
},
{
"type": "header",
"content": "Boutique hold"
},
{
"type": "text",
"id": "store_name",
"label": "Boutique name shown in the hold button",
"default": "Birmingham"
},
{
"type": "url",
"id": "hold_url",
"label": "Hold request form URL (Shopify Forms page). Leave blank to use email"
}
],
"presets": [
{
"name": "Event-Ready Finder"
}
]
}
{% endschema %}