5.17. options

This table contains data for implementing simple, matrix and modular options.

Simple options are options that a customer can combine arbitrarily, such as size and color. The selected options might affect price. See the accessories tag for more detail on option values for simple options.

Matrix options are preconfigured combinations of options. For example, if you sell titanium and carbon-fiber bike frames, but offer only certain combinations of frame material and color, your checkout page might include a select box with only the following entries:

Note that there is no Yellow Flame Titanium offering, for example.

Modular options are like a structured bill of materials, where one product is a master item and other products are subitems for that master item. The subitems can also be master items to subitems at a lower level. In addition, subitems may be designated as 'phantom', which means that they are placeholders in the hierarchy of the structured bill of materials with their own subitems, but are not actual items themselves.

The foundation catalog with the computer data set uses modular options.

For more information, see the following pages and components in the foundation catalog:

Note: Subsequent foundation catalog releases may place simple, matrix, and modular option types in separate tables.


Field Description
code Unique ID for the product option
o_master SKU of the master item for the option
sku SKU for the option (foreign key into products table)
o_group Product grouping code
o_sort Sorting prefix for list display
phantom Boolean -- Item is a phantom placeholder (as in structured bill of materials) with suboptions.
o_enable Boolean -- enables suboptions for the option
o_matrix Matrix-type option (preconfigured combinations of attributes)
o_modular Modular-type option (master/subitem relationship like modular bill of materials)
o_default Default selection for the option group or suboption for a phantom option
o_label Short name for option display
o_value Simple option values (in Interchange option format)
o_widget The HTML widget to use for displaying the option group
o_footer Not used in foundation catalog
o_header Not used in foundation catalog
o_height Height of widget (if applicable)
o_width Width of widget
description Option/Variant description (for description in display)
price Price of this option/variant
wholesale Dealer price of this option/variant
differential Differential to add to the base item price when using a phantom bill of materials
weight Weight difference with this option/variant (for shipping)
volume Volume difference with this option/variant
mv_shipmode No Description
o_exclude Option groups to exclude (trumped by o_include). Modular only.
o_include Option groups to include (trumps o_exclude). Modular only.

5.17.1. code

Example Data


Unique ID for the option.

5.17.2. o_master

Example Data


SKU of the master item for the option. The master item is one level up in the modular hierarchy, and must be one of the following:

If an option has a master item, then a customer can not choose that option without having previously selected the master item.

The price for a master item is the sum of the master item's price and the price for each of the subitems. Because the subitems are recursively defined, the top-level item reflects the top level price plus the price of all selected options.

5.17.3. sku

Example Data


The sku for the item or option. This may not be unique for matrix options or if an option that belongs to multiple o_masters is listed for each master.

5.17.4. o_group

Example Data


Product group (scanned to see whether it applies to this product or not)

5.17.5. o_sort

Example Data


Sorting prefix for listing order of options.

5.17.6. phantom

Modular options only.

Boolean -- if true (1), then this is a phantom item acting as a placeholder for other items rather than an actual product. The item's sku will not match an entry in the products table, though the o_master will match either the sku of another phantom item in the options table or the sku of an item in the products table.

5.17.7. o_enable

Boolean -- Enables subitems for this item or option. Note that an option with o_enable false may itself still be a subitem for an option or item above it.

5.17.8. o_matrix

Boolean. Set true (1) for matrix-type options. See the options table in the tools data set for examples of matrix options. Matrix options that are part of a set have the same value for options.sku.

5.17.9. o_modular

Specifies a modular option. See main heading for description of modular options.

5.17.10. o_default

Example Data


Selects the default option for a group.

5.17.11. o_label

Example Data

   Add a second hard drive
   Case Color
   Case color
   Case style
   Include tapes

This is the short name for option display.

5.17.12. o_value

Example Data

   1=One 8GB tape,\r2=Two 8GB tapes,\r=None*
   a=One 8GB tape,\rb=Two 8GB tapes,\r=None*
   baby=Baby Tower,\rmid=Mid-tower,\rfull=Full Tower
   baby=Baby tower,\rmid=Mid-tower,\rfull=Full tower
   red=Passion Red,\rblue=Electric Blue,\rgreen=Sea Green,\rgrey=S...
   red=Passion Red,\ryellow=Lemon Yellow,\rblue=Electric Blue,\rgr...
   red=Rage Red,\ryellow=Honey Yellow

This is an Interchange value set for a simple option. It is typically a comma-delimited list of labels and values with '*' indicating the default value. See the accessories tag for more detail.

Note that the "\r" characters in the above example represent carriage returns in the actual data ("\r" in perl, or Ctrl-M, or hexadecimal 0D), and the ... indicates a line too long to show.

5.17.13. o_widget

Example Data


This determines the HTML Widget type (e.g., a select box). For example, the [options] tag uses this entry when building HTML widgets in a page. See also the [accessories] tag for available widgets.

5.17.14. o_footer

Example Data

Allowed Values

5.17.15. o_header

Example Data

Allowed Values

5.17.16. o_height

This allows you to set the height of the HTML widget, if appropriate.

5.17.17. o_width

This allows you to set the width of the HTML widget, if appropriate.

5.17.18. description

Example Data

   ATX Mid Tower-Grey (3)5.25 (2)3.5 & (1)3.5 Hidden
   Enlight ATX Desktop Case (2)5.25 & (2)3.5
   Enlight ATX Tower Case (4) 5.25 & (2)3.5
   Micro ATX Tower - Honey Yellow
   Micro ATX Tower - Moody Blue
   Micro ATX Tower - Rage Red
   Micro ATX Tower - Smoky Grey
   Super Tower Case (6)5.25 & (3)3.5

Longer description to show when displaying the options.

5.17.19. price

Example Data


This sets the retail price of the option.

5.17.20. wholesale

Example Data


This sets the dealer price of the option.

5.17.21. differential

Example Data


The phantom bill of materials for an option group can have a differential, which is an amount to add to the base price of the master product to get to a new base price that accommodates the phantom bill of materials. Note that the differential can be negative.

For example, in the computer data set of the foundation catalog, SKU 00011 in the products table is an $849.95 pre-configured Athlon 800MHz computer that includes a 17" monitor (in this case, SKU 7000087 in the products table).

The monitor by itself would otherwise have cost $209. It is much more convenient if you can use the same option part number and price for each item. To do this, you need a phantom option (in this case, SKU 999105 in the options table only) with a differential of -209 and the available monitors as suboptions. When you include the phantom option in the bill of materials for the computer (SKU 00011), the $-209 differential adjustment makes the price work out properly.

For instance, suppose that a $499 computer is configured as follows:

        500 MHz Athlon         --  $499
        32 MB SDRAM            --  ZERO
        10 GB disk             --  ZERO

        TOTAL                  --  $499

Suppose it costs $90 to upgrade the base computer to 128M of RAM and $150 for a 30 GB hard disk.

If you also sell an 128MB 800 MHz $899 computer, and the customer upgrades to the 30 GB hard disk,

        800 MHz Athlon          --  $899
        (memory differential)   --  $-90
        128 MB RAM              --   $90
        30 GB  disk             --  $150

        TOTAL                   -- $1039

If you did not have the differential, you would need a different option part number for each item make the number come out right.

With the differential, you can use the same part number for 128MB RAM no matter what the base part is. The price is always $90 -- there is just a -90 differential when ordered with the 800MHz Athlon, making the effective price zero.

5.17.22. weight

Example Data


Shipping weight of the option. Interchange uses this to calculate shipping cost.

5.17.23. volume

Volume added by the option.

5.17.24. mv_shipmode

No Description

5.17.25. o_exclude

Modular options only.

Lists the option groups to exclude once the include has been done. Takes the form of a number of wildcard atoms.

5.17.26. o_include

Modular options only.

Lists the option groups to include with your item. Takes the form of a number of wildcard atoms.