---
title: "Catalog objects"
source: https://support.storeconnect.com/articles/catalog-objects
type: article
format: markdown
site: StoreConnect Support — product and developer documentation for StoreConnect
site_index: https://storeconnect.com/llms.txt
docs_index: https://support.storeconnect.com/llms.txt
note: Append .md to any page or article URL on this site to get its Markdown form.
---
# Catalog objects

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](product2-object-reference) 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](product2-object-reference) 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](products-product-categories-object-reference) 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](product-category-hierarchy-object-reference).
- **A variant is a product pointing at another product.** A
  [Product Variant](product-variant-object-reference) 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](product-component-object-reference) names each part,
  [Component Group](component-group-object-reference) groups the parts a shopper
  chooses between, and
  [Component Pricing](component-pricing-object-reference) overrides prices inside
  the bundle.
- **A price lives outside the product.** The product record holds no price. A
  [Pricebook Entry](pricebookentry-object-reference) does, one per product per
  [price book](pricebook2-object-reference). 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](trait-category-object-reference) such as **Dimensions** holds
[Trait Types](trait-type-object-reference) such as **Width**. Each type has
[Trait Values](trait-value-object-reference) such as `30cm`. The
[Trait](trait-object-reference) 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](product-trait-template-object-reference) is for. Its
[items](product-trait-template-item-object-reference) become **Trait** records on
the product when the template is applied.
:::

## Objects in this domain

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

## Where it meets other domains

- **Orders and checkout.** A [cart item](cart-item-object-reference) and an
  [order item](orderitem-object-reference) both point at **Product2**, and
  promotions and discounts scope themselves to products and categories. See
  [order and checkout objects](order-and-checkout-objects).
- **Fulfillment and inventory.** Stock is counted per product per location, so
  [Stock Level](stock-level-object-reference) points at **Product2**. See
  [fulfillment and inventory objects](fulfillment-and-inventory-objects).
- **Store design.** A content block can be attached to a product or a category,
  through [Content Block Product](content-blocks-products-object-reference) and
  [Content Block Product Category](content-blocks-product-categories-object-reference).
  See [store design objects](store-design-objects).
- **The storefront.** Most catalog objects have a Liquid counterpart. Each object
  reference article ends with an **On the storefront** section naming the drop
  that renders it and which field arrives as which attribute.

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

---

## Follow StoreConnect

- [Email Newsletter](https://storeconnect.com/c/lp-newsletter)
- [LinkedIn Newsletter](https://www.linkedin.com/build-relation/newsletter-follow?entityUrn=7444956928444862464)
- [YouTube](https://www.youtube.com/channel/UCngKdP2x8l1wcbAKW3tvU8g)
- [LinkedIn](https://www.linkedin.com/company/storeconnect)
- [X / Twitter](https://x.com/storeconnecthq)

## Popular Links

- [Partners](https://storeconnect.com/partners)
- [Become a Partner](https://storeconnect.com/become-a-partner)
- [News](https://storeconnect.com/articles/news)
- [Events](https://storeconnect.com/articles/events)
- [Live Events](https://storeconnect.com/live-events)
- [Feature Comparison](https://storeconnect.com/how-we-compare)
- [Download a free trial](https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000FMkeKUAT)
- [Book a Demo](https://storeconnect.com/contact)

## Documentation

- [Help documentation](https://support.storeconnect.com/help-documentation)
- [AI agents](https://support.storeconnect.com/ai)
- [Videos & tutorials](https://support.storeconnect.com/videos-tutorials)
- [Developer reference](https://support.storeconnect.com/developer-reference)
- [Release notes](https://support.storeconnect.com/release-notes)
- [Troubleshooting](https://support.storeconnect.com/troubleshooting)
- [Trust Center](https://trust.getstoreconnect.com/)
- [Status Page](https://status.storeconnect.com/)

## Contact

- info@getstoreconnect.com
- US +1 415 745 3230
- AUS +61 2 8365 2308

100 S Ashley Dr, Suite 600-2461
Tampa FL 33602-600 USA

Level 22, Sydney Place
180 George Street
Sydney, NSW, 2000, AUS

## Machine-readable

- [Site index for agents](https://storeconnect.com/llms.txt): curated map of the StoreConnect site in llms.txt format
- [Documentation index for agents](https://support.storeconnect.com/llms.txt): full technical and product documentation map

Every page and article on this site has a Markdown rendering: append `.md` to its URL.

Continue in Markdown: [Help documentation](https://support.storeconnect.com/help-documentation.md) · [Developer reference](https://support.storeconnect.com/developer-reference.md) · [Videos & tutorials](https://support.storeconnect.com/videos-tutorials.md) · [Release notes](https://support.storeconnect.com/release-notes.md)

---

StoreConnect Support — https://support.storeconnect.com/articles/catalog-objects