OFBiz Features

Last Updated 20230712

Setup OFBiz Features and Assign to Categories and Products

OFBiz Features are like product options.  You purchase a belt in Black, Red or Olive Drab.  You can also purchase that belt in size 28, 30, 32, 36, 38, etc...  Color and size would be KEYWORD here "Selectable" feature.  The Airlock Belt part number 40-01-0200 on your website is a virtual product that you don't keep inventory for.  The variant belts that you do keep inventory for are are 40-01-0200-BLK-S36.  Associating Features with a Category alows you to select all belts in Red from a drop down menu.  Associating KEYWORD here Distinguishing Features with a product allows you to automatically generate all the Red belts in size 28, 30, 32, 36, etc... and then go on to generate all the Black belts in size 28, 30, 32, etc...

For this exercise we are going to set color and size for a belt.

Select Catalog

Select Features

Click 

Feature Type

Out of the Box "OOTB" OFBiz names many features you might want to use in your system.  Color and Size are just a few that are easy to show.

Select Catalog

Select Features

Click

New Feature Category

Type Description

RS_COLOR

Note: Stands for Ruffian Specialties Color

Click

Submit

Type 3

Click Create

Note:  This will add 3 rows so we can add the colors Black, Red, and Olive Drab.  If you have more colors add more rows.  You could have 100 color combinations across your product line.  For instance Ruffian has BLK/BLK, RED/BLK, NAT/BLK.  All color combinations could be part of this record.  We will select a subset of these colors to work with products.

Enter Black, Olive Drab, Red in Description

The light and dark yellow lines with the blue and white checkboxes on the end means that when you click Create all those rows will be updated in the repective tables.

Select Color for Feature Type

ID Seq Num is for custom sorts.  It might be wise to enter numeric values of 10, 20, 30 etc...  This will make it easier to add additional colors at a later date.  

ID Code is how a variant part number will be created.  Let's say the Airlock Belt is part number 40-01-0200-BLK  for black and 40-01-0200-RED for red etc...

Click 

Create

Completed New Feature Category

Note:  Find definition of

Unit of Measure ID

Quantity

Amount

Abbrev

Click

New Feature Category

Note: Forgot to capture screen but Type

RS_SIZE

Click Create

Type 

5

Click

Create

Enter belt size in Description

Select Size from Feature Type

Set the ID Seq Num for proper sorting

Set ID Code for how the variant part number should look.

Click all the blue checkboxes and then

Click

Create

Click

Feature Group

Type 

RS_BELTS

Click

Create

Click

10000

Select RS_COLOR

Click

Continue

Select 

Blue Checkboxes

Click

Submit

Select

RS_SIZE

Click

Continue

Select

Blue Checkboxes

Click

Submit

We want the belts to sort correctly.  Let's set the color order first and the size second.

Click

Update

Finished with our OFBiz Feature Group

Let's create our Catalog and Categories

Click

Catalogs

Notes: Feature Category naming conventions needs some thought.  Creation via New Feature Category assigns a numeric value like 10000 for RS_Color.  If you go to Feature Interaction you will see Black[10000] but you don't know what 10000 is.  Just like if your looking at Feature InterAction 30[10004] do you really know that is a size 30?  If you have  thousands of features this might be to convoluted.


Advanced Tip

Import data with the Web Tools as detailed in OFBiz Facility Setup .

In order to have more control over productID's and play around with different options, I have created some imports.  Makes' it easier to try and change stuff.  

<entity-engine-xml>

<ProductFeatureCategory productFeatureCategoryId="RS_COLOR" description="RS Color"/>

<ProductFeatureType productFeatureTypeId="RS_COLOR" description="Color"/>

<ProductFeature productFeatureId="RS_COLOR_BGE" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="Beige" defaultSequenceNum="1100" idCode="BGE" abbrev="BGE" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_COLOR_BLK" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="Black" defaultSequenceNum="1110" idCode="BLK" abbrev="BLK" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_COLOR_BLK/BLK" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="Black / Black" defaultSequenceNum="1120" idCode="BLKBLK" abbrev="BLKBLK" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_COLOR_BLU" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="Blue" defaultSequenceNum="1130" idCode="BLU" abbrev="BLU" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_COLOR_BRN" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="Brown" defaultSequenceNum="1140" idCode="BRN" abbrev="BRN" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_COLOR_BUR" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="Burgundy" defaultSequenceNum="1150" idCode="BUR" abbrev="BUR" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_COLOR_FGRN" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="Forest Green" defaultSequenceNum="1160" idCode="FGRN" abbrev="FGRN" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_COLOR_FGRN/BLK" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="Forest Green / Black" defaultSequenceNum="1170" idCode="FGRNBLK" abbrev="FGRNBLK" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_COLOR_GRN" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="Green" defaultSequenceNum="1180" idCode="GRN" abbrev="GRN" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_COLOR_GRN/BLK" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="Green / Black" defaultSequenceNum="1190" idCode="GRNBLK" abbrev="GRNBLK" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_COLOR_GRY" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="Grey" defaultSequenceNum="1200" idCode="GRY" abbrev="GRY" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_COLOR_INTORG" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="International Orange" defaultSequenceNum="1210" idCode="INTORG" abbrev="INTORG" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_COLOR_LIN" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="Linen" defaultSequenceNum="1220" idCode="LIN" abbrev="LIN" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_COLOR_LIN/BLK" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="Linen / Black" defaultSequenceNum="1230" idCode="LINBLK" abbrev="LINBLK" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_COLOR_NAT" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="Natural" defaultSequenceNum="1240" idCode="NAT" abbrev="NAT" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_COLOR_NAT/BGE" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="Natural / Beige" defaultSequenceNum="1250" idCode="NATBGE" abbrev="NATBGE" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_COLOR_NAT/BLK" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="Natural / Black" defaultSequenceNum="1260" idCode="NATBLK" abbrev="NATBLK" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_COLOR_NBLU" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="Navy Blue" defaultSequenceNum="1270" idCode="NBLU" abbrev="NBLU" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_COLOR_NBLU/BLK" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="Navy Blue / Black" defaultSequenceNum="1280" idCode="NBLUBLK" abbrev="NBLUBLK" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_COLOR_OLVDRB" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="Olive Drab" defaultSequenceNum="1290" idCode="OLVDRB" abbrev="OLVDRB" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_COLOR_ORG" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="Orange" defaultSequenceNum="1300" idCode="ORG" abbrev="ORG" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_COLOR_RBLU" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="Royal Blue" defaultSequenceNum="1310" idCode="RBLU" abbrev="RBLU" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_COLOR_RBLU/BGE" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="Royal Blue / Beige" defaultSequenceNum="1320" idCode="RBLUBGE" abbrev="RBLUBGE" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_COLOR_RBLU/BLK" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="Royal Blue / Black" defaultSequenceNum="1330" idCode="RBLUBLK" abbrev="RBLUBLK" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_COLOR_RED" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="Red" defaultSequenceNum="1340" idCode="RED" abbrev="RED" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_COLOR_RED/BGE" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="Red / Beige" defaultSequenceNum="1350" idCode="REDBGE" abbrev="REDBGE" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_COLOR_RED/BLK" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="Red / Black" defaultSequenceNum="1360" idCode="REDBLK" abbrev="REDBLK" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_COLOR_SIL" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="Silver" defaultSequenceNum="1370" idCode="SIL" abbrev="SIL" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_COLOR_WHT" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="White" defaultSequenceNum="1380" idCode="WHT" abbrev="WHT" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_COLOR_YEL" productFeatureTypeId="RS_COLOR" productFeatureCategoryId="RS_COLOR" description="Yellow" defaultSequenceNum="1390" idCode="YEL" abbrev="YEL" defaultAmount="0.00"/>

</entity-engine-xml>

<entity-engine-xml>

<ProductFeatureCategory productFeatureCategoryId="RS_SIZE" description="RS Size"/>

<ProductFeatureType productFeatureTypeId="RS_SIZE" description="Size"/>

<ProductFeature productFeatureId="RS_SIZE_24" productFeatureTypeId="RS_SIZE" productFeatureCategoryId="RS_SIZE" description="24" defaultSequenceNum="1100" idCode="S24" abbrev="24" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_SIZE_26" productFeatureTypeId="RS_SIZE" productFeatureCategoryId="RS_SIZE" description="26" defaultSequenceNum="1110" idCode="S26" abbrev="26" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_SIZE_28" productFeatureTypeId="RS_SIZE" productFeatureCategoryId="RS_SIZE" description="28" defaultSequenceNum="1120" idCode="S28" abbrev="28" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_SIZE_30" productFeatureTypeId="RS_SIZE" productFeatureCategoryId="RS_SIZE" description="30" defaultSequenceNum="1130" idCode="S30" abbrev="30" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_SIZE_32" productFeatureTypeId="RS_SIZE" productFeatureCategoryId="RS_SIZE" description="32" defaultSequenceNum="1140" idCode="S32" abbrev="32" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_SIZE_34" productFeatureTypeId="RS_SIZE" productFeatureCategoryId="RS_SIZE" description="34" defaultSequenceNum="1150" idCode="S34" abbrev="34" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_SIZE_36" productFeatureTypeId="RS_SIZE" productFeatureCategoryId="RS_SIZE" description="36" defaultSequenceNum="1160" idCode="S36" abbrev="36" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_SIZE_38" productFeatureTypeId="RS_SIZE" productFeatureCategoryId="RS_SIZE" description="38" defaultSequenceNum="1170" idCode="S38" abbrev="38" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_SIZE_40" productFeatureTypeId="RS_SIZE" productFeatureCategoryId="RS_SIZE" description="40" defaultSequenceNum="1180" idCode="S40" abbrev="40" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_SIZE_42" productFeatureTypeId="RS_SIZE" productFeatureCategoryId="RS_SIZE" description="42" defaultSequenceNum="1190" idCode="S42" abbrev="42" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_SIZE_44" productFeatureTypeId="RS_SIZE" productFeatureCategoryId="RS_SIZE" description="44" defaultSequenceNum="1200" idCode="S44" abbrev="44" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_SIZE_46" productFeatureTypeId="RS_SIZE" productFeatureCategoryId="RS_SIZE" description="46" defaultSequenceNum="1210" idCode="S46" abbrev="46" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_SIZE_48" productFeatureTypeId="RS_SIZE" productFeatureCategoryId="RS_SIZE" description="48" defaultSequenceNum="1220" idCode="S48" abbrev="48" defaultAmount="0.00"/>

</entity-engine-xml>

<entity-engine-xml>

<ProductFeatureCategory productFeatureCategoryId="RS_BELT_VELCRO" description="RS Belt Velcro"/>

<ProductFeatureType productFeatureTypeId="RS_BELT_VELCRO" description="Velcro Location"/>

<ProductFeature productFeatureId="RS_BELT_VELCRO_OUT" productFeatureTypeId="RS_BELT_VELCRO" productFeatureCategoryId="RS_BELT_VELCRO" description="Velcro Outside Standard" defaultSequenceNum="1100" idCode="VOT" abbrev="VOT" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_BELT_VELCRO_IN" productFeatureTypeId="RS_BELT_VELCRO" productFeatureCategoryId="RS_BELT_VELCRO" description="Velcro Inside Custom" defaultSequenceNum="1120" idCode="VIN" abbrev="VIN" defaultAmount="7.95"/>

</entity-engine-xml>

<entity-engine-xml>

<ProductFeatureCategory productFeatureCategoryId="RS_BELT_DRING" description="RS Belt D Ring"/>

<ProductFeatureType productFeatureTypeId="RS_BELT_DRING" description="D Ring Option"/>

<ProductFeature productFeatureId="RS_BELT_DRING_NO" productFeatureTypeId="RS_BELT_DRING" productFeatureCategoryId="RS_BELT_DRING" description="D Ring=No Standard" defaultSequenceNum="1120" idCode="DRN" abbrev="DRN" defaultAmount="0.00"/>

<ProductFeature productFeatureId="RS_BELT_DRING_YES" productFeatureTypeId="RS_BELT_DRING" productFeatureCategoryId="RS_BELT_DRING" description="D Ring=Yes Custom" defaultSequenceNum="1120" idCode="DRY" abbrev="DRY" defaultAmount="7.20"/>

</entity-engine-xml>

<entity-engine-xml>

<ProductFeatureGroup productFeatureGroupId="RS_FEATGP_AIRLOCK" description="RS Feature Group Airlock Belts"/>

</entity-engine-xml>

I think it is easier to create the Feature Group details just by selecting from the application.  For you programmers with a paying job please have at it.

Select Catalog

Select Features

Select Feature Group

Click on RS_FEATGP_AIRLOCK

Select RS Color from the DropDown

Click Continue

Select 50 Items per page

Select Black Checkbox

Select Olive Drab Checkbox

Select Red Checkbox

Click Submit

Set Sequence Number for Sorting.

I am going to group Sequence Number by 1000, 2000, 3000, & 4000 as will be seen in the following screens.

Click Update

Select RS Size from Drop Down

Click Continue

Click on Select All Checkbox

Click Submit

Update Sequence Num with 2000 sort id's

Click Update

Notice Sort Order

Select RS Belt Velcro from Dropdown

Select All

Click Submit

Do this for Belt Velcro

Do this for Belt D Ring

It will look like this screen.