Update store hours, store details and holiday closures
Use this page when a store changes its opening hours, phone number, email or address, or when the stores close for a public holiday.
On this site, store details and hours are typed in one place, the Store Finder record for each store. The theme reads those records on every page and builds the home page store carousel, the contact page, the contact modal, the store list on product pages and the information Google reads about each store. Holiday closures live in a separate setting, Operating_Exceptions, which applies to all four stores at once.
None of this is how stock Maropost works. The Store Finder custom fields carry the opening hours, and the theme expects them in an exact format. A wrong value usually doesn’t produce an error. The site just shows the stores as closed, or shows the wrong hours.
The four stores
Every part of the theme identifies a store by its Store Finder id, a number. It never uses the store name or the suburb.
| Store id | Store | Location page slug (custom field 5) |
|---|---|---|
1 | Altapac Kotara | kotara |
2 | Altapac Maitland | maitland |
3 | Altapac Artarmon | artarmon |
4 | Altapac Burwood | burwood |
The slugs are the values on the live site on 21 October 2026.
Change a store’s opening hours
Each store record has five custom fields, the most the Store Finder allows. Fields 1 to 4 are Short Text fields. The theme reads them by position (misc1 to misc5), so the order matters more than the name.
| Custom field | Field name in cPanel | What to type | Example |
|---|---|---|---|
| 1 | weekdays open | Monday to Friday opening time, 24-hour HH:MM | 08:00 |
| 2 | weekdays close | Monday to Friday closing time, 24-hour HH:MM | 17:00 |
| 3 | Saturday open | Saturday opening time, 24-hour HH:MM | 08:00 |
| 4 | Saturday close | Saturday closing time, 24-hour HH:MM | 14:00 |
| 5 | (the location-page slug) | The last part of the store’s /locations/ page address | kotara |
There is no Sunday field. Every store shows as closed on Sunday, and that can’t be changed from cPanel. There is also no way to give one weekday different hours from the others.
-
In cPanel, go to Products > Store Finder and open the store you’re changing.
-
In the custom fields, type the new times in 24-hour
HH:MMform. Use a colon and a leading zero, for example07:30and17:00. Don’t type7.30,7:30amor5pm. -
To close a store on Saturdays, clear both Saturday fields. Clear both, not just one.
-
Save the record.
-
Check the result. Open the home page and the contact page, and confirm the store shows the new times. Then open the store’s
/locations/page and check the hours line there. -
Search the rest of the site for the old hours typed as plain text. See Store details typed into page content below.
Each field holds at most 50 characters, whatever its type. cPanel doesn’t show the limit, and it cuts anything longer without a warning. The theme stores nothing longer than a time or a slug in them, so this only bites if someone tries to use a field for notes.
Change a store’s name, address, phone or email
These are the standard Store Finder fields, not custom fields. Edit them in the store’s record and save. The change appears everywhere the theme prints store details, and in any store detail tags in page content.
- Enter the phone in the form you want customers to see. The theme prints it as typed.
- The Store Finder saves the suburb in capitals, and that can’t be changed. The home page carousel, contact page and contact modal display it with only the first letter in capitals.
- The latitude and longitude place the store on the contact page map and decide which store is “nearest” on product pages. If you change the address, check the map pin on the contact page afterwards.
- The site lists the stores in name order. Renaming a store can change its position in the home page carousel, the contact page and the contact modal.
Close the stores for a public holiday
Holiday closures are in the custom config Operating_Exceptions. Its value is a list of dates wrapped in curly braces. This is the start of the live value on 21 October 2026:
{ '2026-04-03': 'Good Friday', '2026-04-04': 'Easter Saturday', '2026-06-08': 'King\'s Birthday', '2026-12-25': 'Christmas Day', '2027-01-01': 'New Year\'s Day', }-
In cPanel, go to Custom links > Custom Configs and open
Operating_Exceptions. -
Add one line per closed day, inside the braces, in this form:
'2027-12-29': 'Additional Day',The date is year, month, day with leading zeros,
YYYY-MM-DD. Put it in single quotes, then a colon, then the holiday name in single quotes, then a comma. -
If the holiday name contains an apostrophe, put a backslash before it, as in
'King\'s Birthday'. -
Leave the opening
{and the closing}in place. If you remove every date, leave the value as{}. Never leave it empty. -
Save, then do the check in step 6 straight away.
-
Open any product page that has a Pick up tab and look at the store list. If it shows store names such as “Altapac Kotara”, the value is fine. If it shows “Store 1”, “Store 2” and so on, the value is broken. Undo your change and compare it with the format above. This check works at any time of day.
What a closure date changes, and what it doesn’t:
- On that date, all four stores show “closed” in the contact modal, the Call button stays grey, and product pages say “Ready at” instead of “Ready today at”.
- It closes all four stores. There is no way to close one store for a day. Clearing that store’s hour fields closes it every week until you put them back.
- It doesn’t change the hours printed on the home page, contact page, contact modal or location pages. Those still show the normal weekly hours.
- It doesn’t change the opening hours Google reads, which always show the normal week.
- The holiday name isn’t shown anywhere on the site. It’s only there to tell staff what each date is.
- The list runs out. On 21 October 2026 the last date is 28 December 2027. Add the next year’s holidays before then.
Where the store data appears
| Place | What it shows from the Store Finder | Affected by holiday closures |
|---|---|---|
| Home page store carousel | Name linked to the location page, address, weekday and Saturday hours as typed, e.g. 08:00 - 17:00. The background is the logo image in the store’s Store Finder record | No |
| Contact page, “Visit Our Showrooms” | Map from latitude and longitude, name, address, phone, email, hours as typed, “Find Out More” link to the location page | No |
| Contact modal, on every page | Each store’s name, address, hours as typed, phone and email, plus “open now” or “closed” for each store | Yes |
| Contact modal Call button | Turns on when at least one store is open. It always dials the company phone number, not a store’s own number | Yes |
| Product pages, Pick up tab | Store names linked to location pages, distance from the customer’s postcode, and “Ready today at” when the nearest store with stock is open | Yes |
| Store details in page content | Whatever tags staff have put in the content. See the next section | No |
| Information for Google, in every page’s code | Name, address, phone, email, map position, weekday and Saturday hours, and the location page address | No |
The header and footer bars don’t show store hours. The phone number in the footer is the company number from a separate setting, not a Store Finder value.
The contact page also has hand-built parts that don’t come from the Store Finder. These are the four store tabs (“Kotara Showroom” and so on) and their enquiry forms. A developer has to change those.
Store details typed into page content
The location pages used to have hours typed in by hand, and they drifted from the real hours. Now you can put a tag in any CMS page that fills in a store’s detail from its Store Finder record when the page loads.
Edit the page content in the editor’s source view and wrap the value in a span with two attributes:
<span data-store-field="phone" data-store-id="3">02 8999 8878</span>The cPanel editor keeps these attributes when you save, but sorts them into alphabetical order, so expect data-store-field first.
data-store-idis the store number from the table at the top of this page,1to4. A slug likekotaradoesn’t work.data-store-fieldis one of the values in the table below.- The text inside the tag is the fallback. It shows until the page has loaded, and it stays if anything goes wrong. Always type the current value.
data-store-field | What it shows | Example output |
|---|---|---|
name | Store name | Altapac Artarmon |
phone | Phone, as typed in the record | 02 8999 8878 |
email | artarmon@altapac.com | |
address | Street, suburb, state and postcode. The suburb comes out in capitals | Unit 13/87 Reserve Rd, ARTARMON NSW 2064 |
weekdays | Monday to Friday hours | 7:30am – 5pm |
saturday | Saturday hours | 9am – 3pm |
sunday | Always “Closed” | Closed |
The hours fields come out in 12-hour form, like “8am – 5pm”, or “Closed” if the fields are empty. That differs from the home page, contact page and contact modal, which print the times exactly as typed, like 08:00 - 17:00.
Links
On a link, the tag changes where the link goes and leaves its text alone. This lets an icon button or a “Call the Kotara store” link always dial the right number:
<a data-store-field="phone" data-store-id="1" href="tel:0249414444">Call the Kotara store</a>phoneon a link sets it to dial the store’s number.emailon a link sets it to email the store.name,addressand the hours fields do nothing on a link.- To show the number as the link text as well, put a
spantag inside the link.
As of the 2026-10-20 content pull, 12 pages use these tags: the four location pages and the Artarmon and Burwood sub-pages (bullbars, canopies, roof racks, towbars). All 12 use them for weekday and Saturday hours, and all except Maitland also use one for the store phone number. Other pages still have store details typed as plain text. For example, the service pages list store phone numbers as plain links, and the Window Tinting page states workshop hours in a sentence. Those don’t update from the Store Finder. Search for them when hours or numbers change.
The location-page slug (custom field 5)
Custom field 5 holds the end of the store’s location page address. kotara points to /locations/kotara. The theme uses it for:
- the store name links on the home page carousel, the contact page and product pages
- the contact page “Find Out More” button
- the store’s web address in the information Google reads
- the Store Finder’s own page for each store, such as
/d/altapac-kotara/1, which redirects to the location page
If the slug has a typo, all those links go to a page that doesn’t exist, and the Store Finder page redirects there too. If it’s empty, the links fall back to the Store Finder page, and product pages show the store name without a link.
Type the slug only, in lower case, with no slashes and without /locations/.
Common mistakes
| Mistake | What happens | Where you’d notice |
|---|---|---|
Hours typed as 8am, 8.00 or 5pm | The store always shows closed. The site prints the bad text as typed, and Google gets invalid hours | Contact modal says “closed” during trading hours |
| Only one of the two Saturday fields cleared | Saturday shows as closed, but pages print half a time range such as 09:00 - | Home page carousel, contact page |
| Weekday open or close field cleared | Weekdays show closed, and Google loses both the weekday and the Saturday hours for that store | Contact modal, and nothing visible for Google |
" or \ typed in any store field | No store data loads on any page | Product page Pick up tab shows “Store 1” to “Store 4” |
Operating_Exceptions left empty, or a quote, brace or comma missing | No store data loads, and every store shows closed | Same as above |
| Apostrophe in a holiday name without a backslash | Same as above | Same as above |
Closure date typed as 25/12/2026 or 2026-12-5 | The date never matches, so the stores show open on the holiday | Only on the day |
Operating_Hours edited instead of the Store Finder | Nothing changes | Hours on the site stay the same |
Store detail tag with data-store-id="kotara" | The tag keeps its fallback text, which goes stale | Only when the hours change |
| Hours changed in the Store Finder but not in plain text elsewhere | Pages disagree with each other | Service and Learn pages |
When you need a developer
- Adding or removing a store. A new record appears in most places by itself, but product page stock needs a developer to link the store to its warehouse. Google’s description, photo and rating for each store, and the contact page tabs and forms, are also built by hand in the theme.
- Sunday hours, or different hours on different weekdays. There are no fields for these, and all five custom store fields are already in use.
- Closing one store for a day. Closures are site-wide only.
A Store Finder change doesn’t show on the site until the cache is cleared. To check the new value before then, add ?nc= and any random text to the end of the address to load a fresh copy.
For developers
Theme files this page is based on
Altapac-ReDev, branch development, checked 2026-10-21:
src/templates/footers/includes/scripts.template.htmlbuilds the#altapac-storesJSON block from[%list type:'store_location'%]and thestoreHoursglobal with[@CONFIG:Operating_Exceptions@]interpolated unquoted.src/js/storeHours.jshasloadStoreData,isStoreOpen,getStoreConfig,formatStoreHoursandhydrateStoreFields.DEFAULT_STORE_IDis"1", but no caller relies on it.src/templates/footers/includes/contactModal.template.htmlshows the per-store status and the any-store-open Call button, which uses[@config:COMPANY_PHONE@].src/templates/products/includes/availability.template.htmlhas theSTORES[]warehouse-to-store join: 4 and 9 map to store 1, 7 to 2, 11 to 3 and 16 to 4. It also has the Pick up panel.src/templates/headers/includes/structured_data/structured_data.template.htmlbuilds theLocalBusinessnodes. Hours are guarded on misc1 and misc2, with Saturday nested inside. SEO copy is keyed bystore_id.src/templates/headers/includes/head.template.htmlsets the stockist canonical from misc5.src/templates/stockists/template.htmlhandles the misc5 redirect.src/templates/cms/home.template.htmlandsrc/templates/cms/contact.template.htmlare the list-tag loops.docs/map/store-data/StoreData.md,docs/map/store-data/issues.md,docs/records/2026-09-15-store-finder-store-data/spec.mdanddocs/probes/RESULTS.md(Store Finder probe, which records the 50-character cap and the field definitions)..claude/skills/base-templating/references/value-formats.mdcovers theOperating_Exceptionsformat.
Content usage of data-store-field is in Altapac-Content under pages/locations/ (2026-10-20 pull). The editor’s attribute sorting is recorded in Altapac-Content CLAUDE.md. The suburb-in-capitals rule, the misc5 creation date and the carousel logo are in docs/map/store-data/issues.md.