Product field formats
Use this page when you fill in a product’s custom fields (the misc fields) in cPanel. Maropost saves whatever you type. The altapac.com theme then decides how to read it, and when a value is in the wrong shape it usually shows nothing at all. There’s no error in cPanel and no error on the site.
The tables below cover every product custom field the theme reads, grouped by job. Each one gives the format, an example, what the field does on the site and the mistake that makes it silently disappear.
Examples are real values from the store unless marked otherwise. Counts come from a pull of the 163 bike-rack products on 21 October 2026.
How to fill a field
- In cPanel, open the product and find the custom field by its name or misc number. Custom fields are spread across the tabs of the product editor.
- Check which product template the product uses. Bike racks use the
bikeRackstemplate. Everything else uses the standard product template. Some fields only do something on one of the two (see Which fields work where). - Type the value exactly in the format shown in the tables. For lists, use the pipe character
|between items and don’t put spaces around it. The theme doesn’t trim spaces. - Save the product. Saving also refreshes the product’s cached page and cards.
- Open the live product page, and a category page that lists it, and check that the value shows. If a field shows nothing, compare it with the “Trap” column before you try anything else.
The rules every list field follows
- Pipe, not comma. Every list field splits on
|. Older notes say comma-delimited. That’s out of date. A comma list is read as one single item. - Paired lists match by position. In misc9 and misc19, the first name goes with the first URL, the second with the second, and so on. One missing item shifts every pair after it.
- Empty positions keep their place.
A||Cis three positions, andCis third. You can use this on purpose to skip a position (misc47 relies on it). - No
|inside the text of an item. A stray pipe in a sentence or description starts a new item and shifts everything after it.
Documents
Shown as a “Resources” panel on the standard product page, and as links in the Description and Specifications sections on bike racks.
| Field | cPanel name | Format | Example | What it does | Trap |
|---|---|---|---|---|---|
| misc9 | Document Names | Pipe list of link labels | Fitting Instructions|Dimensions | Link text for each document | Must have the same number of items as misc19, in the same order |
| misc19 | Document URL’s | Pipe list of URLs, one per name in misc9 | https://rockymounts.com/cdn/shop/files/AfterParty_Instruction.pdf|https://rockymounts.com/cdn/shop/files/AfterPartyDimension_Chart.pdf | Where each link goes. Opens in a new tab | Every URL must contain a / or that document is dropped. A bare part number like 610700 is dropped (not live yet, AUD-13) |
Features cards
A horizontal strip of cards, each with an image, a heading and a short description. On the standard page it’s titled “Key Features” and sits at the top of the Description section. On bike racks it’s in the Features section.
| Field | cPanel name | Format | Example | What it does | Trap |
|---|---|---|---|---|---|
| misc43 | Features - Image | Pipe list of image URLs | /assets/alt_5_thumb/50431.jpg|/assets/alt_9_thumb/50431.webp | Card image, one per card | One image per card, in the same order as misc44 and misc45 |
| misc44 | Features - Heading Text | Pipe list of short headings | Swing Up Stowage|Easy Boot Access | Card heading | Standard page: if this field is empty, no cards show at all |
| misc45 | Features - Description Text | Pipe list of one-sentence descriptions | The Backstage can fold up when empty to reduce vehicle footprint and clutter|The industry’s first 180 degree swing away platform hitch rack | Card text | Don’t use | inside a description. It splits one card into two and shifts every later card |
The examples are the first two cards of the RockyMounts BackStage (50431). 30 of the 163 bike racks have feature cards, and on 15 of them every heading is blank (2026-10-21).
The two templates apply different rules:
- Standard product page: all or nothing. The strip shows only when misc43, misc44 and misc45 all have something in them. Then every position becomes a card, even one with a blank heading or a missing image.
- Bike racks: card by card. A card shows when it has an image and at least a heading or a description. Cards with no image are skipped. The section shows the number of cards (“4 highlights”).
Promotion image and card badge
| Field | cPanel name | Format | Example | What it does | Trap |
|---|---|---|---|---|---|
| misc11 | Product Header Promo Image Zone | One image URL, 346 × 86 px | /assets/promos/rhino-nov.jpg (made up) | Campaign image on the product page. Standard page: under the title, above the price. Bike rack: below the buy button | Only shows while the product is on promotion (Maropost’s in-promo state). Outside the promo dates it’s hidden, even when filled |
| misc29 | Product Header Promo Link | One URL | /promotions/rhino-rack-november/ (made up) | Where the misc11 image links to | Does nothing without misc11. If misc11 is set and this is blank, the image links back to the same page |
| misc21 | Image Overlay Badge Name | Short text | Free Gift (made up) | Label on the badge over the product image on grid cards | Grid cards need both misc21 and misc22. misc21 alone shows nothing |
| misc22 | Image Overlay Badge URL | One image URL, a PNG with a transparent background | /assets/badges/gift.png (made up) | Badge image over the product image on grid and list cards | List view ignores misc21 and always labels the badge “Free Gift” |
Neither misc21 nor misc22 shows on the product page itself.
Stock flags and lead time
misc12, misc25 and misc26 are the only Boolean (yes/no) custom fields. cPanel calls them true/false. The store keeps them as y and n, which is what the API returns and the theme reads. Set them with the true/false control in cPanel and nothing else.
| Field | cPanel name | Format | Example | What it does | Trap |
|---|---|---|---|---|---|
| misc12 | Direct Ship Only | Boolean | True | Product page, at zero stock: “Shipped from supplier” (not live yet, AUD-52). Cards: always “See Options” instead of Add to Cart (not live yet, AUD-23). Cart: “Shipped from Supplier” | Product page applies it only at zero stock. Cards and cart apply it at any stock level. The product-page buy button ignores it, so at zero stock it can still say “Backorder” |
| misc25 | Special Order Only | Boolean | True | Product page: “Special order” when out of stock or oversellable, “In stock” when held. Cards: “Special Order” button. Cart: “Special Order” badge | The product-page buy button ignores it |
| misc26 | Discontinued Run Out | Boolean | True | ”This product has been Discontinued” notice at any stock level. With stock: “Final stock” and “This model is being run out”. At zero stock: “No longer available”, with no buy button on the product page or cards, and a “No longer available” badge in the cart (cards and cart not live yet, AUD-25) | On cards, Direct Ship Only and variation parents are checked first, so a discontinued direct-ship product still shows “See Options” on cards |
| misc14 | Estimated Lead Time | Whole number of days | 5 (76 bike racks; 48 hold 0) | Adds a lead-time line under the availability label: “Usually leaves the supplier in 5 days” (direct ship), “Usually available in 5 days” (special order), “Expected in 5 days” (incoming stock with no future arrival date), “Usually back in stock in 5 days” (backorder) | Blank or 0 means no line. There is no default. It’s never shown on in-stock, sold-out or discontinued products |
| misc7 | Dropship Statement | Text | Ships direct from the supplier in Melbourne. Allow 5 to 10 business days. (made up) | Any text adds an “Availability information for this product” button on both templates. It opens a pop-up showing this text | Not tied to misc12. It shows whenever it has text, whatever the stock state, except a lone N, which counts as off. 32 bike racks hold N and show no button |
Card text
| Field | cPanel name | Format | Example | What it does | Trap |
|---|---|---|---|---|---|
| misc4 | Manufacturer’s Sku | Text | SBR002 (on Shingleback 2BLR) | Replaces the SKU shown on product cards | Cards show this instead of the store SKU. The product page still shows the store SKU, so the two won’t match |
| misc13 | Vehicle Fitment | Vehicle text only | Toyota HiLux 2015 onwards (made up) | Fitment line on product cards. On bike racks, also in the “Good to know” box | Don’t type “For”. Grid cards add “For ” in front, so For Toyota HiLux shows as “For For Toyota HiLux”. List view and the bike-rack box print it as typed. Not shown on the standard product page |
| misc27 | Thumb Description | Short text, about one sentence | Adds a third bike to the OutWay. (made up: no bike-rack product had one on 2026-10-21) | Bike racks: the reason line on an add-on card, read from the add-on product. List view: the hidden description for search engines, cut at 157 characters | Doesn’t replace the visible short description anywhere. To matter on an add-on card, set it on the add-on, not on the rack |
Bike-rack only fields
These do nothing on the standard product template.
| Field | cPanel name | Format | Example | What it does | Trap |
|---|---|---|---|---|---|
| misc2 | Range Nudge | SKU|sentence: the SKU of the product you’re pointing to, a pipe, then one sentence | 9012100|No hitch receiver? The OutPace 2-Bike mounts on a 50mm tow ball. (on the RockyMounts AfterParty; 103 racks have a nudge) | A callout in the Specifications section with the sentence and a link to that product. The link text is the target’s live product name | Hidden if the target SKU is deleted, disabled, unapproved or misspelt. No | inside the sentence. Only shows when the rack has a Bikes Carried, Max Weight Per Bike or Max Combined Bike Weight item specific |
| misc20 | Video Attachments | One bare YouTube video ID | dPmdcvvhxr8 (the 11 characters after v= in a YouTube link; 61 racks have one) | Adds a video slide and thumbnail to the bike-rack gallery | A full URL, or two IDs separated by commas, gives a broken video slide. One video per product |
| misc47 | Not recorded | Pipe list of four headings, in this order: description headline, Features heading, Specifications heading, Add-ons heading | Two bikes, any hatch, no towbar.||The Numbers| (the only rack using it, 994001: sets the headline and the Specifications heading) | Overrides the section headings on that rack | Leave a position empty to keep its default. A fifth or later position is ignored. Headings only, no sentences |
misc47 defaults when a position is empty:
| Position | Heading | Default |
|---|---|---|
| 1 | Description headline | ”Bikes Carried, Vehicle Mount mounted” from the item specifics. If either is missing, the product name |
| 2 | Features | Built for the getaway |
| 3 | Specifications | The numbers |
| 4 | Add-ons | Finish the setup |
Fields the theme ignores
These exist in cPanel but no part of the site’s theme reads them as product fields. Filling them changes nothing on the product page or cards.
| Field | cPanel name | Note |
|---|---|---|
| misc16 | Curated Image URL | Not used. Older notes say it is |
| misc28 | Kit-Includes | Not used. Its cPanel description was copied from misc27 |
| misc1, misc3, misc6, misc8, misc10, misc24 | Testing, Shipping Notes, Upsell Field Name, Banner URL, MAPCODE, Vehicle Fitment Details | Deprecated |
| misc5 | Flush Bar Measurements | Not used on the website |
| misc23, misc30, misc31, misc33 | Colour, Compatibility Year Start, Compatibility Year End, Fitting Price | Not used on the website |
Store Finder records have their own misc1 to misc5 fields (opening hours and the location page slug). They’re a separate field set and have nothing to do with the product fields of the same numbers.
Standard fields the theme repurposes
These are stock Maropost fields, but the theme gives them a job or a placement you wouldn’t expect.
| Field | What the theme does with it | Trap |
|---|---|---|
| Subtitle | Grey line under the product heading on both templates, and under the name in variation rows | 56 characters at most. The store cuts anything longer with no error |
Page heading (SEO), API name SEOPageHeading | Replaces the product heading (H1) on both templates. Blank means the product name | Changes the heading shoppers see, not just the search listing |
| Short Description | Standard page: paragraph in the buying column. Bike racks: paragraph under the heading. List view cards: the card text. The store also builds the meta description from it (“Name - Brand - short description”) | Not shown on grid cards. The store cuts it at 255 characters, mid-word, so keep it to 250 |
| Availability Description | Bike racks only: an “Availability Information” box under the short description | Ignored on the standard template. Use misc7 there |
| Date of arrival | Acts as the pre-order switch (see below) | Setting a future date on a product with stock turns it into a pre-order |
| Product Type | ”Type” row in the standard Specifications table. On bike-rack add-on cards, the small label above the add-on’s name | — |
| Features, Warranty | Standard page: their own sections, with tabs at the top that only appear when filled. Bike racks: Features becomes a check list in the Features section, Warranty its own section | — |
| Terms | Bike racks only: its own section when filled | Ignored on the standard template |
| Weight | Shown as “Shipping weight” | On bike racks, the rack’s own weight comes from the Rack Weight item specific, not this field |
| Extra options, variations, editable kits | Cards show “See Options” instead of Add to Cart | — |
Date of arrival is the pre-order switch
On this store, a future arrival date is what makes a product a pre-order. There isn’t a separate “this is a pre-order” setting. What the date does depends on stock:
| Product state | A future arrival date means |
|---|---|
| Has stock | Product page reads “Pre-order available” and cards show a Pre-Order button (not live yet on grid cards, AUD-66) |
| Out of stock, incoming stock on a purchase order | ”More on the way”, with “Arriving” and the date |
| Out of stock, nothing incoming | The date does nothing. The page shows “Backorder available” or “Sold out” |
Incoming stock comes from purchase orders, not from anything you type on the product. A past date is ignored.
What breaks: common mistakes
All of these fail silently. The product saves, and the page just leaves the content out.
Which fields work where
| Field | Standard product page | Bike-rack page | Product cards |
|---|---|---|---|
| misc2 | — | Yes | — |
| misc4 | — | — | Yes |
| misc7 | Yes | Yes | — |
| misc9, misc19 | Yes | Yes | — |
| misc11, misc29 | Yes, in promo | Yes, in promo | — |
| misc12, misc25, misc26 | Yes | Yes | Yes (misc12 and sold-out misc26 not live yet, AUD-23, AUD-25) |
| misc13 | — | Yes | Yes |
| misc14 | Yes | Yes | — |
| misc20 | — | Yes | — |
| misc21 | — | — | Grid only |
| misc22 | — | — | Grid and list |
| misc27 | — | On add-on cards | List view, hidden |
| misc43, misc44, misc45 | Yes, all three needed | Yes, card by card | — |
| misc47 | — | Yes | — |
For developers
This page is based on the development branch of Altapac-ReDev, read on 21 October 2026. Paths are relative to src/templates/.
products/includes/documents.template.html,products/template.html(Resources gate)products/includes/product_information.template.html,products/includes/features.template.htmlproducts/includes/bikerack/template.html(feature count, misc47 defaults),bikerack/features.template.html,bikerack/labels.template.html,bikerack/specifications.template.html(misc2, documents),bikerack/description.template.html,bikerack/gallery.template.html,bikerack/addon_card.template.html,bikerack/buycard.template.html,bikerack/titlecol.template.html,bikerack/schema.template.html,bikerack/defaults.template.htmlproducts/includes/availability_state.template.html,products/includes/availability.template.html,products/includes/modals.template.html,products/includes/buying_options.template.html,products/includes/child_products.template.html,products/includes/reviews.template.htmlthumbs/product/template.html(grid),thumbs/product/list.template.html.thumbs/product/home-card.template.htmlexists, but nothing loads it ondevelopmentormaincart/shopping_cart.template.html- References:
.claude/skills/base-templating/references/value-formats.md(Booleany/n, field types, arrival date probes),tag-reference.md(empty split positions),caching.md(product save refreshes cache entries) - Lint:
scripts/base-lint.cjsBOOLEAN_MISC
Known theme bugs behind some of the traps: list view hard-codes “Free Gift”; misc12 stock gating differs between the product page and cards, cart and JSON-LD; the product-page buy button ignores misc12 and misc25; cards test misc12 before misc26.