Skip to content
Log in

Catalog objects

On this page

The catalog is the largest group of objects in StoreConnect, and almost all of it hangs off one record. Use this article to find the object you need before you write a query, plan an import, or add a field.

Product2 is the center

Product2 is the standard Salesforce product object, which StoreConnect extends heavily. Everything a shopper can buy is a Product2 record, including things that do not look like products at first: a variant is a product, a bundle is a product, and a subscription is a product with a billing schedule.

Thirty-nine objects point at Product2, which is why its Referenced by table is the fastest way to find anything catalog related.

Four relationships do most of the work:

  • A product sits in categories. Not directly. A Product Product Category join record connects the two, so one product can appear in many categories and one category can hold many products. Categories nest through Product Category Hierarchy.
  • A variant is a product pointing at another product. A Product Variant record links a variant to its master, and the variant’s own traits say what makes it different.
  • A bundle is a product made of other products. Product Component names each part, Component Group groups the parts a shopper chooses between, and Component Pricing overrides prices inside the bundle.
  • A price lives outside the product. The product record holds no price. A Pricebook Entry does, one per product per price book. To be sellable, a product needs an active entry in the store’s default price book, in the store’s currency.

Traits are four objects, not one

Traits are how a catalog becomes filterable, and they are the part of the schema most people misread. The value a shopper filters on is spread across four records.

Read the chain from the bottom up. A Trait Category such as Dimensions holds Trait Types such as Width. Each type has Trait Values such as 30cm. The Trait record is the one that matters: it joins a value to a product. No Trait record, and the product is not filterable by that value, however many trait values exist.

:::tip Applying the same specification shape to many products is what Product Trait Template is for. Its items become Trait records on the product when the template is applied. :::

Objects in this domain

Object API name Purpose
Product2 Product2 Every sellable item: simple products, variants, bundles, and subscriptions
Product Category s_c__Product_Category__c A group of products, used for storefront navigation and for scoping promotions and pricing
Product Category Hierarchy s_c__Product_Category_Hierarchy__c Nests one category inside another, forming the category tree
Product Product Category s_c__Products_Product_Categories__c Places a product in a category. A product can sit in many
Product Variant s_c__Product_Variant__c Links a variant product to its master, forming a variant set such as sizes of one shirt
Related Product s_c__Related_Product__c Links two products so one appears as a related item on the other’s page
Related Product Category s_c__Related_Product_Category__c Links two categories so one appears as a related category on the other’s page
Product Component s_c__Product_Component__c One component product inside a bundle, and the quantity of it
Component Group s_c__Component_Group__c A set of components in a bundle the shopper chooses between
Component Pricing s_c__Component_Pricing__c Overrides a component’s price when it is bought as part of a bundle
Pricebook Pricebook2 A named set of prices. A store has a default price book and can have others for account pricing
Pricebook Entry PricebookEntry The price of one product in one price book, including sale price and cost
Media s_c__Media__c The record behind every image, video, file, and document used anywhere in the store
Product Media s_c__Product_Media__c Attaches a media record to a product, and sets its display order
Product Purchasable Media s_c__Product_Purchasable_Media__c Deprecated. Attached media a shopper could download after purchase
Trait Category s_c__Trait_Category__c A group of trait types, such as Dimensions holding width, height, and depth
Trait Type s_c__Trait_Type__c One kind of trait, such as width, color, or size
Trait Value s_c__Trait_Value__c One allowed value for a trait type, such as Large
Trait s_c__Trait__c Assigns a trait value to a product. This is the record that makes a product searchable and filterable by that value
Product Trait Template s_c__Product_Trait_Template__c A reusable set of traits, applied to products that share the same shape of specification
Product Trait Template Item s_c__Product_Trait_Template_Item__c One trait inside a template, created on the product when the template is applied
Tag s_c__Tag__c A simple label attachable to products, pages, and articles
Product Tag s_c__Product_Tag__c Attaches a tag to a product
Taxonomy s_c__Taxonomy__c A named collection of product categories, used to run more than one category tree
Supplier Account s_c__Product_Supplier__c Links a product to the account that supplies it

Where it meets other domains

Several of the records above are join objects. If you are querying or importing through one, junction objects explains what that means for SOQL, Data Loader, and the order you create records in.

Was this article helpful?

Was this article helpful?