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:
- Silver Titanium: $1672
- Black Titanium: $1672
- Red Titanium: $1674
- Black Carbon Fiber: $1290
- Yellow Flame Carbon Fiber: $1300
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:
- cat_root/pages/flypage.html
- cat_root/templates/components/modular_buy
- cat_root/templates/components/modular_update
Note: Subsequent foundation catalog releases may place simple, matrix, and modular option types in separate tables.
Fields
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
1002 1003 1004 1005
Unique ID for the option.
5.17.2. o_master
Example Data
00010 999000 999001 999002
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:
- An item in the products table (matching products.sku)
- Another option in the options table (matching options.sku)
- A phantom item in the options table.
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
00010 999000 7000015 7000030
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
A B C I
Product group (scanned to see whether it applies to this product or not)
5.17.5. o_sort
Example Data
01 02 03 04 47 48 49 50
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
1 11002 7000062 7000087
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 Red
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
select
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
0.00 10 20 29 75
This sets the retail price of the option.
5.17.20. wholesale
Example Data
13 40.00
This sets the dealer price of the option.
5.17.21. differential
Example Data
-209 -40 -79
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
5
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.