Skip to content

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:

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

FieldStandard pageBike-rack pageCardsNotes
Website Design Template (DisplayTemplate)BlankMust be exactly bikeRacksNot usedAny 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
NameThe H1 when SEO Page Heading is blankThe H1 when SEO Page Heading is blank. Also the sticky section menu, the mobile buy bar, and the Description headline fallbackThe 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 100Also 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 HeadingReplaces the H1Replaces the H1Not usedChanges 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 H1Not usedAlso 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
BrandAbove the H1, beside the SKU. “Brand” row in SpecificationsSame, plus a row in the Product & shipping groupSmall line above the card title (not box view)Sent to Google as the product brand

Description fields

FieldStandard pageBike-rack pageCards
Short DescriptionParagraph in the buying column, between the price and the buy buttonParagraph under the spec chipsList view only, as the card text. Not on grid, box or home-page cards
DescriptionThe Description section, under a “Details” heading and below any misc43 to misc45 feature cardsDescription section (01), beside the tilesNot used
FeaturesIts own Features section, plus a “Features” link in the section bar. Both hidden when blankTicked list in the Features section. Enter it as a bulleted listNot used
SpecificationsFree text at the top of the Specifications section, above the tableFree text at the top of the Specifications section, above the spec groupsNot used
WarrantyIts own Warranty section, plus a “Warranty” link in the section bar. Both hidden when blankNumbered Warranty section. Hidden when blankNot used
Terms & ConditionsNot shownSee the caution belowNot used
Availability DescriptionNot shown”Availability Information” box under the short description. Long text gets a “Read more” toggle after two linesNot 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.

FieldStandard page rowBike-rack page rowFormat
SKU”SKU” (always)“SKU” (always)
Manufacturer model number”Model #""Model #” (not live yet, AUD-60)Free text
UPC/EAN”Barcode #“Not shownDigits only
Brand”Brand""Brand”
Author/Artists”Artist / Author”Not shown
Shipping Weight (ShippingWeight)“Shipping Weight""Shipping weight”, rounded to 1 decimal placeKilograms. The page adds “kg”
Shipping Width, Height, LengthOne row eachOne “Carton (L×W×H)” row, only when all three are above zeroMetres. The page adds “m”
Cubic”Shipping Cubic”Not shownCubic metres
Selling Unit of Measure”Unit Of Measure”Not shown
Assembled Length, Height, WidthOne row eachOne “Assembled (L×W×H)” row, only when all three are above zero (not live yet, AUD-60)Metres
Type”Type”Not shown. See belowFree 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

SettingWhere it’s setWhat shoppers see
Shipping CategoryOn the productCategory 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 timeOn 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 timeOn 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 costShipping 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

FieldWhat 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 arrivalThe 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 stateA future Date of arrival means
Has stockProduct 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 orderProduct page reads “More on the way”, with “Arriving” and the date
Out of stock, nothing incomingThe 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”

FieldEffect
Extra OptionsCards 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 KitCards show See Options
MinThe 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

FieldStandard pageBike-rack pageCards
Price (per customer group)The price. “WAS” price during a promotionThe price. “was” price during a promotionThe price, with “From” on parents
RRPStruck-through “RRP” line and a SAVE line, only when RRP is above the selling priceNever 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 promotionSale 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 bannerSameNot shown
Promotion TagMust match the promotion page’s Label 1 for the promotion banner to showSameNot 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:

  1. 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.
  2. 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.
  3. 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 asComes from
Product nameName (not SEO Page Heading)
BrandBrand
SKUSKU
DescriptionShort Description
PricePromo Price while on promotion, otherwise the group price. Left out for price on request
Price valid untilPromo End, while the countdown shows
AvailabilityThe 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 from url_info … page_heading (48), subtitle (50-52), standard price arms with retail/save/save_price (87-128), short_description (144-150), buy arms with min_qty and preorder (80, 178-192), countdown gated on save > 0 (198-209). Bike-rack products get bikerack/buycard.template.html instead (line 1).
  • products/includes/product_information.template.html: section bar and sections for warranty, 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_description callout (85-122).
  • products/includes/bikerack/template.html: warranty and terms sections (83-84, 166-185). Nothing in src/ reads tnc.
  • products/includes/bikerack/specifications.template.html: Product & shipping group (141-150). Model # and Assembled rows are not on origin/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_type eyebrow (14).
  • products/includes/child_products.template.html: subtitle in child rows (151-152).
  • products/includes/header.template.html loads components.template.html only when has_components; that file holds the only product-page [%extra_options%] (110-151).
  • products/includes/availability_state.template.html: stock arms; arrival_date futureness test (42-43), incoming_quantity (57, 129-135), allow_oversell in the misc25 arms.
  • products/includes/availability.template.html: [%shipping_methods%] with delivery_time/daily_close_time (234-244), SHIPS_FROM_STOCK gate (commit 3ab9b8e, AUD-17/54, not on origin/main), 00:00 cut-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 arm extra or has_child or editable_bundle. No card reads incoming_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 the structured_data block with product_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 as OutOfStock if Reviews.io were switched on. Its backorder arm also tests arrival_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).