Standard Product Fields
Standard fields are the built-in Maropost product fields, as opposed to the custom misc fields on Custom Product Fields. Maropost’s own reference is the product tag library. This page covers how the altapac.com theme uses them, which is often not what Maropost’s defaults suggest.
Products use one of two layouts. Most use the standard product page. Bike racks use the bike-rack page (Website Design Template bikeRacks). Several fields only work on one of the two. “Cards” means the product tiles on category, brand, search and home pages, in grid, list and box views.
For step-by-step tasks, use the workflow pages:
- Product field formats for filling in custom fields
- Set up a bike-rack product
- Price on request and trade customers
- Run a promotion
This page describes the theme’s development branch as of 21 October 2026. Where altapac.com still behaves differently, a “Not live yet” note says so.
Page template and heading
| Field | Standard page | Bike-rack page | Cards | Notes |
|---|---|---|---|---|
Website Design Template (DisplayTemplate) | Blank | Must be exactly bikeRacks | Not used | Any other value, including bikeracks, gives the standard page with no warning. To go back to the standard page, clear it in cPanel: the API ignores an empty value |
| Name | The H1 when SEO Page Heading is blank | The H1 when SEO Page Heading is blank. Also the sticky section menu, the mobile buy bar, and the Description headline fallback | The card title. Grid cards show it in full, up to four lines (not live yet, AUD-24). Box and home-page cards cut it at 50 characters, list view at 100 | Also the name in the cart, image alt text and lightbox captions (standard page: not live yet, AUD-46), and the enquiry pre-fill |
| SEO Page Heading | Replaces the H1 | Replaces the H1 | Not used | Changes the heading shoppers see, not just search listings. Name still shows everywhere else |
Subtitle (Subtitle) | Grey line under the H1, printed once (not live yet, AUD-45) | Line under the H1 | Not used | Also under each row’s name in the child product table. Hidden when blank. The store keeps only the first 56 characters and cuts the rest with no error |
| Brand | Above the H1, beside the SKU. “Brand” row in Specifications | Same, plus a row in the Product & shipping group | Small line above the card title (not box view) | Sent to Google as the product brand |
Description fields
| Field | Standard page | Bike-rack page | Cards |
|---|---|---|---|
| Short Description | Paragraph in the buying column, between the price and the buy button | Paragraph under the spec chips | List view only, as the card text. Not on grid, box or home-page cards |
| Description | The Description section, under a “Details” heading and below any misc43 to misc45 feature cards | Description section (01), beside the tiles | Not used |
| Features | Its own Features section, plus a “Features” link in the section bar. Both hidden when blank | Ticked list in the Features section. Enter it as a bulleted list | Not used |
| Specifications | Free text at the top of the Specifications section, above the table | Free text at the top of the Specifications section, above the spec groups | Not used |
| Warranty | Its own Warranty section, plus a “Warranty” link in the section bar. Both hidden when blank | Numbered Warranty section. Hidden when blank | Not used |
| Terms & Conditions | Not shown | See the caution below | Not used |
| Availability Description | Not shown | ”Availability Information” box under the short description. Long text gets a “Read more” toggle after two lines | Not used |
On the standard page the Description and Specifications sections always show. Warranty and Features only appear when filled. The section order is Description, Warranty, Features, Specifications.
Short Description (ShortDescription) is cut at 255 characters by Maropost. The 2026-10-21 bike-rack review found 27 cut off mid-word. With Subtitle capped at 56 characters (a real one: “Platform tray for e-bikes up to 30kg, 50mm towbar hitch”), the fuller fit wording goes in Short Description.
Specification table fields
The standard page builds its Specifications table from the product’s item specifics (each value is capped at 150 characters), then these fields in this order. Each row only shows when the field is filled (or above zero for measurements). The bike-rack page uses a shorter “Product & shipping” group.
| Field | Standard page row | Bike-rack page row | Format |
|---|---|---|---|
| SKU | ”SKU” (always) | “SKU” (always) | |
| Manufacturer model number | ”Model #" | "Model #” (not live yet, AUD-60) | Free text |
| UPC/EAN | ”Barcode #“ | Not shown | Digits only |
| Brand | ”Brand" | "Brand” | |
| Author/Artists | ”Artist / Author” | Not shown | |
Shipping Weight (ShippingWeight) | “Shipping Weight" | "Shipping weight”, rounded to 1 decimal place | Kilograms. The page adds “kg” |
| Shipping Width, Height, Length | One row each | One “Carton (L×W×H)” row, only when all three are above zero | Metres. The page adds “m” |
| Cubic | ”Shipping Cubic” | Not shown | Cubic metres |
| Selling Unit of Measure | ”Unit Of Measure” | Not shown | |
| Assembled Length, Height, Width | One row each | One “Assembled (L×W×H)” row, only when all three are above zero (not live yet, AUD-60) | Metres |
| Type | ”Type” | Not shown. See below | Free text |
| Format | ”Format” | Not shown |
Type (product_type) has a second job on bike racks. When a product is a cross-sell add-on on a rack, its Type shows as the small label above its name on the add-on card. Fill Type on the add-on, not the rack.
Shipping and delivery
| Setting | Where it’s set | What shoppers see |
|---|---|---|
| Shipping Category | On the product | Category 20 hides the Delivery tab on the product page and opens Pick up. Category 20 is the pickup-only category (owner-confirmed 2026-07-29). See Hard-coded IDs |
| Delivery time | On the shipping rates, not the product. Imported with the rates from the generator’s Delivery Times sheet | ”N–M days to postcode” on the product page Delivery tab, after the shopper enters a postcode. “from N days” when only some methods have a time |
| Daily close time | On the shipping rates, not the product | ”Order by HH:MM for dispatch today”, or “Dispatches next business day” after the cut-off. Uses the earliest cut-off across delivery methods |
| Shipping cost | Shipping method rates | ”Shipping from $x to postcode” or “Free shipping to postcode” |
These lines are on the availability card, which both layouts share. A close time of 00:00 means “not set” and gives no cut-off line, not a midnight cut-off. If every method returned is pick-up, the card says “Available for pick up only”.
The cut-off and delivery-days lines only show when the product ships from stock Altapac holds (in stock, low stock, final stock, special order in stock). Direct-ship, special-order, pre-order, incoming, backorder and sold-out products get neither, and a “No longer available” product gets no delivery lines at all.
In August 2026 delivery times and close times were still being filled in one shipping table at a time, so a product can get only some of these lines. See Shipping and Shipping Matrix Price Updates.
Stock, pre-order and incoming stock
| Field | What it does on this store |
|---|---|
| Qty On Hand (calculated) | Available stock across all warehouses. Drives “In stock”, “Low stock” (1 or 2 left) and the out-of-stock states |
| Inventory Policy | ”Don’t track inventory” changes how misc25 (Special Order Only) behaves. A special-order product that doesn’t track inventory always reads “Special order”, even with stock |
| Date of arrival | The pre-order switch. See below |
| Incoming Qty (from purchase orders) | Out-of-stock products with incoming stock read “More on the way” on the product page and in the cart (cart: not live yet, AUD-25). You don’t type this; it comes from raised purchase orders |
There’s no separate “this is a pre-order” setting. A future Date of arrival is what makes a product a pre-order, and what it does depends on stock:
| Product state | A future Date of arrival means |
|---|---|
| Has stock | Product page reads “Pre-order available”. Cards show a Pre-Order button (not live yet, AUD-66). The cart shows “Pre-Order Available” |
| Out of stock, incoming stock on a purchase order | Product page reads “More on the way”, with “Arriving” and the date |
| Out of stock, nothing incoming | The date does nothing. The page shows “Backorder available” |
A past date is ignored on the product page. With incoming stock and no future date, the page shows “Expected in N days” from misc14, or “More stock is on its way”.
Discontinued, direct-ship and special-order states come from misc26, misc12 and misc25. See Custom Product Fields.
This relies on the store setting that governs pre-orders by pre-order quantity being off. It was off when last probed (14 August 2026), and a future Date of arrival alone made a product a pre-order with its pre-order quantity at 0.
Buying options and “See Options”
| Field | Effect |
|---|---|
| Extra Options | Cards show See Options instead of Add to Cart |
| Child products (variations) | Cards show See Options and a “From” price. The product page shows option selectors. A parent with children but no variation options shows a child product table instead of a price and buy button |
| Editable Kit | Cards show See Options |
| Min | The quantity added by the buy button on the standard page and on cards. The bike-rack quantity stepper starts at it. Blank means 1. The stepper is hidden when the buy card has no Add to Cart, Backorder or Pre-Order button (not live yet, AUD-58) |
Price on request (Enquire) and misc12 (direct ship) both take priority over these on cards.
Price fields
| Field | Standard page | Bike-rack page | Cards |
|---|---|---|---|
| Price (per customer group) | The price. “WAS” price during a promotion | The price. “was” price during a promotion | The price, with “From” on parents |
| RRP | Struck-through “RRP” line and a SAVE line, only when RRP is above the selling price | Never shown | ”RRP” line (struck through except in box view), and ”% OFF” (not on parents), only when RRP is above the selling price |
| Promo Price | ”Now” price while on promotion | Sale price while on promotion | ”Now” price, plus a “Sale” or “On Sale” label |
| Promo End | ”Sale Ends in” countdown, showing the end time minus one minute. “Valid until” date on the promotion banner | Same | Not shown |
| Promotion Tag | Must match the promotion page’s Label 1 for the promotion banner to show | Same | Not used |
How the promo saving is worked out differs between layouts:
- Standard page. The SAVE percentage is measured against RRP. With no RRP, or RRP not above the promo price, there’s no SAVE line and no countdown.
- Bike-rack page. “Save $x” is Price minus Promo Price. The countdown shows whenever the promo price is below the price. RRP plays no part.
The price shown follows a fixed order:
- If the price this shopper would pay is $0 or less, the product shows “Contact us for price” and an Enquire button. During a promotion only the promo price counts; otherwise the shopper’s group price.
- Logged-in trade customers (groups 8 to 13) see an ex-GST price with the inc-GST price under it, and no RRP, sale badges or countdown.
- Otherwise, the promo layout while the product is on promotion, or the normal price.
See Price on request and trade customers and Run a promotion for the full rules and how to set them up.
What Google sees
Product pages describe the product to search engines with tags built into the page. Both layouts send:
| Sent as | Comes from |
|---|---|
| Product name | Name (not SEO Page Heading) |
| Brand | Brand |
| SKU | SKU |
| Description | Short Description |
| Price | Promo Price while on promotion, otherwise the group price. Left out for price on request |
| Price valid until | Promo End, while the countdown shows |
| Availability | The same stock state as the product page label (in stock, pre-order, backorder and so on) |
Name is also the browser title, the start of the store’s automatic meta description (“Name - Brand - short description”) and the Google Shopping title. An SEO Page Title (SEOPageTitle) replaces Name in the browser title and search results; only 4 of the 164 bike-rack products had one on 21 October 2026. Renaming a product can send it back through Google Merchant review.
List-view cards also carry product tags: Model # as the manufacturer part number, and misc27 as the description. A direct-ship product (misc12) is marked “limited availability” there at any stock level.
The theme also has a fuller product block that adds Type as the category, UPC/EAN as the barcode, Model # and the full Description. It’s only output when the Reviews.io setting is on. That setting was off when probed (28 July 2026), and a live product page on 21 October 2026 had no such block. So Type, UPC/EAN and Description don’t currently reach Google from the product page.
For developers
Theme: ~/src/altapac-org/Altapac-ReDev, branch development, read 21 October 2026. Paths are under src/templates/.
products/includes/buying_options.template.html: brand row, H1 fromurl_info … page_heading(48),subtitle(50-52), standard price arms withretail/save/save_price(87-128),short_description(144-150), buy arms withmin_qtyandpreorder(80, 178-192), countdown gated onsave > 0(198-209). Bike-rack products getbikerack/buycard.template.htmlinstead (line 1).products/includes/product_information.template.html: section bar and sections forwarranty,features,description,specifications, and the spec table rows (manufacturer_model,barcode,brand,artist_author,weight, dimensions,cubic,unit,actual_*,product_type,format).products/includes/bikerack/titlecol.template.html: H1,subtitle,short_description,availability_descriptioncallout (85-122).products/includes/bikerack/template.html:warrantyandtermssections (83-84, 166-185). Nothing insrc/readstnc.products/includes/bikerack/specifications.template.html: Product & shipping group (141-150). Model # and Assembled rows are not onorigin/main.products/includes/bikerack/buycard.template.html:ar_save=price - promo_price(29), no RRP (owner ruling 2026-08-12), countdown (84-91).products/includes/bikerack/addon_card.template.html:product_typeeyebrow (14).products/includes/child_products.template.html:subtitlein child rows (151-152).products/includes/header.template.htmlloadscomponents.template.htmlonly whenhas_components; that file holds the only product-page[%extra_options%](110-151).products/includes/availability_state.template.html: stock arms;arrival_datefutureness test (42-43),incoming_quantity(57, 129-135),allow_oversellin the misc25 arms.products/includes/availability.template.html:[%shipping_methods%]withdelivery_time/daily_close_time(234-244),SHIPS_FROM_STOCKgate (commit3ab9b8e, AUD-17/54, not onorigin/main),00:00cut-off rule,sh_type_id eq '20'(922).thumbs/product/template.html,list.template.html,box.template.html,home-card.template.html: card price, RRP,% OFF, See Options armextra or has_child or editable_bundle. No card readsincoming_quantity.cart/shopping_cart.template.html: stock badges including “More on the way” (61-62) and “Pre-Order Available”.products/includes/reviews.template.html: the whole file, including thestructured_datablock withproduct_type,barcode,manufacturer_model,description, sits inside[%if [@CONFIG:Reviews_io@] eq true%]. Its offers chain has no in-stock pre-order arm, so an in-stock pre-order would be published asOutOfStockif Reviews.io were switched on. Its backorder arm also testsarrival_date ne ''rather than futureness (known,docs/map/availability/issues.md).- Pre-order behaviour and config values:
.claude/skills/base-templating/references/value-formats.md(configs 120-148, pre-order 198-330).