- 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
| Topic | Child Products | Variants using Specs & Options |
|---|---|---|
| Product IDs | Custom or auto-generated IDs | Auto-generated from Spec/Option combinations (customizable) |
| Product Information | Inherit from parent with override options; Use XP for variation attributes | Independent name/description; Include Spec/Option values |
| Pricing | Flexible options: Parent inheritance, custom schedules, sale pricing, subscriptions, bundles | Base price inheritance with markups/markdowns (Amount or Percentage) |
| Globalization | Strong support through price schedules with defined currencies | Limited markup support across currencies; percentage markup recommended |
| Inventory | Individual tracking and records | Individual tracking with VariantLevelTracking=true |
| Search Experience | Appear in product lists; Filterable | Require primary product ID; Not in product lists |
| Visibility | Inherit parent visibility; Individual control | Inherit primary product visibility; Individual control |
| Product Generation | Manual creation via POST /v1/products | Automatic via POST /v1/products/{productID}/variants/generate |
| Facets | Use XP for attributes and filtering | Requires XP for filtering; Shows primary product only |
| Additional Features | Support non-variant Specs | N/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: