1. Product catalogs

Child products vs. generated variants

Products with variations are incredibly common in the commerce space. Variations of products allow customers to choose the best size, color, material, style, or feature set for their needs. Variations are present across every category -- clothing, electronics, appliances, housewares, athletic equipment, tools, services, and more. OrderCloud provides two very different methods to support products with variations, and one may better suit your business needs.

Core concepts

Child Products operate as independent products in OrderCloud, however they have some properties that indicate their relationship to a Parent product (Product.ParentID and Product.IsParent). Additionally, Child Products inherit information from the Parent product in specific scenarios.

Variants are generated based on Specs & Options assigned to a product. When generated, they create a matrix of variants based on every possible Spec-Option combination of the product. For example, with a Size spec (Child and Adult options) and a Color spec (Red & Blue options), you will get 4 generated variants: Adult Red, Child Red, Adult Blue, Child Blue.

Feature comparison

TopicChild ProductsVariants using Specs & Options
Product IDsCustom or auto-generated IDsAuto-generated from Spec/Option combinations (customizable)
Product InformationInherit from parent with override options; Use XP for variation attributesIndependent name/description; Include Spec/Option values
PricingFlexible options: Parent inheritance, custom schedules, sale pricing, subscriptions, bundlesBase price inheritance with markups/markdowns (Amount or Percentage)
GlobalizationStrong support through price schedules with defined currenciesLimited markup support across currencies; percentage markup recommended
InventoryIndividual tracking and recordsIndividual tracking with VariantLevelTracking=true
Search ExperienceAppear in product lists; FilterableRequire primary product ID; Not in product lists
VisibilityInherit parent visibility; Individual controlInherit primary product visibility; Individual control
Product GenerationManual creation via POST /v1/productsAutomatic via POST /v1/products/{productID}/variants/generate
FacetsUse XP for attributes and filteringRequires XP for filtering; Shows primary product only
Additional FeaturesSupport non-variant SpecsN/A

When to use Child Products

Products where all variations need to be searched and displayed in search results: Televisions are a good example of a product with variations that need to be searchable. A common search entry for a shopper looking to purchase a TV may include the size, such as "47inch tv". The shopper would expect the search results to show all the 47" TV options. This is only possible when creating a Parent Product as the TV, and Child Products representing each of the sizes available.

Variations with distinct pricing: Occasionally, products have variations that have unique pricing, or get marked down at different rates. For example, if a set of bedsheets have one variation with a surplus of stock (let's say Twin-sized in an undesirable color), a business may want to clearance that one variation. With Child products, the business can update the price schedule to the desired price or even use Sale Pricing to accommodate the new clearance price for that variation.

Variation pricing that is unique for different Buying parties: If your product variations need to have unique pricing for different User Groups, this is very hard to accomplish using generated variants. Separate Price Schedules can be assigned to the primary product, but the product contains the Spec Option with a defined mark-up, and that mark-up is applied across every price schedule in the same manner. Use Child Products with their own price schedules assigned to each party to achieve this.

When to use Variants

Products with standardized options that don't warrant searchability: Customized greeting cards would be a good candidate for using Variants. When creating a greeting card, you may get the option for paper type (photo paper, photo cardstock, and premium cardstock), envelope type (standard and premium), and corner shape (square, rounded, and fancy). Every greeting card order can have any combination of these three options. Additionally, as a shopper, you probably wouldn't want to see every combination of these options as its own product on a product listing page. In this scenario it makes more sense to use Specs, Options and generated Variants rather than Child Products.

Products that are sold in standard quantities: Perhaps a business sells their products in individual, case, and pallet amounts. There may be a base price for the individual size, and then mark-ups for the case and pallet size. Additionally, if the product is always available in all three quantities, Variants may be a good option.

Products with an add-on service: If the add on service is not sold independently, it may make sense to create a product with a Spec of "Warranty" and Options of "Include Warranty" and "Decline Warranty", for example. Then shoppers can choose which variation they want (with or without a Warranty) and add the variation to their cart. As a shopper, you don't need to see the warranty options when searching for the base product.

Additional resources

Detailed documentation:

If you have suggestions for improving this article, let us know!