Developer guide
Where to start when changing the ASC storefront code, and which repository owns each kind of change.
The storefront is split across two git repositories that are checked out together. asc-shopify-src holds the build tooling and the React and JavaScript source. Its theme submodule, asc-shopify-theme, holds the Shopify theme that Shopify deploys. Most changes touch the theme, and every change to src/ also produces files in the theme.
Choose the right place
| Change | Repository | Path |
|---|---|---|
| Liquid sections, snippets, templates, theme settings | asc-shopify-theme | theme/sections/, theme/snippets/, theme/templates/, theme/config/ |
| Hand-written theme JavaScript, such as maps, camp lists and filters | asc-shopify-theme | theme/assets/*.js |
| Booking form, cart click handlers, shared CSS and Tailwind | asc-shopify-src | src/, then rebuild into theme/assets/ |
| Saved children or membership pass use | asc-api-membership-pass | Separate repository |
| Orders into Zoho, emails, club search, camp swaps | asc-api-src-zoho-integration | Separate repository |
| Zap triggers | Zapier | Zapier dashboard |
| Zoho workflow functions | Zoho CRM | Zoho settings. Record copies in misc/deluge-scripts/ |
| Content, products, metafield values | Shopify Admin | Not code. See Operations |
Do not edit google-cloud-api/. It is the previous membership pass service and is no longer deployed. See Legacy and unused code.
Pages in this section
| Page | Read it when |
|---|---|
| Repository map | You need to find where something lives |
| Local development | You are setting up or running the project |
| Releasing a change | You are ready to commit, review or deploy |
| Theme structure | You are changing Liquid, layouts or theme JavaScript |
| Booking form | You are changing the React booking form |
| Cart and membership pass | You are changing the cart page or pass behaviour |
| Common changes | You want the steps for a routine change |
| Testing | You need to check a change before release |
Before your first change
Read Releasing a change. Two parts of the release process cause most mistakes. Theme editor saves arrive on theme main as bot commits at any time, and built bundles must be committed in the theme repository separately from the source.
Read Catalogue model. Most bugs reported as "a camp is missing" are data, not code.