> ## Documentation Index
> Fetch the complete documentation index at: https://developers.redo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Catalog

> Products, product families, and their attributes, options, and media.

## Queries

* [`product`](/docs/api-reference/v3/reference/catalog/queries/product) — Fetch a single product by its id.
* [`productFamilies`](/docs/api-reference/v3/reference/catalog/queries/product-families) — List product families.
* [`productFamily`](/docs/api-reference/v3/reference/catalog/queries/product-family) — Fetch a single product family by its id.
* [`products`](/docs/api-reference/v3/reference/catalog/queries/products) — List products, optionally filtered by product family.

## Mutations

* [`createProductFamily`](/docs/api-reference/v3/reference/catalog/mutations/create-product-family) — Create a new product family.
* [`deleteProduct`](/docs/api-reference/v3/reference/catalog/mutations/delete-product) — Delete a product. Returns true if an owned product was deleted, false if none matched. Throws a 409 CONFLICT error (with an extension code of PRODUCT\_SOURCE\_MANAGED, PRODUCT\_HAS\_LISTING, or PRODUCT\_HAS\_INVENTORY) if the product is ineligible for deletion.
* [`deleteProductFamily`](/docs/api-reference/v3/reference/catalog/mutations/delete-product-family) — Delete a product family and all of its products. Returns true if an owned product family was deleted, false if none matched. Throws a 409 CONFLICT error (with an extension code of PRODUCT\_SOURCE\_MANAGED, PRODUCT\_HAS\_LISTING, or PRODUCT\_HAS\_INVENTORY) if the family or any product is ineligible for deletion.
* [`syncSalesChannelVariants`](/docs/api-reference/v3/reference/catalog/mutations/sync-sales-channel-variants) — Resolve sales channel variant ids to products here, syncing any that do not exist yet. Returns one entry per requested variant id, in the order given; a variant the sales channel does not have resolves to NOT\_FOUND rather than failing the request. Variants already present are returned without calling the sales channel. Throws a 400 error when a variant id is not in the sales channel's id format (for Shopify, gid://shopify/ProductVariant/\<numeric id>), and a 400 error (with an extension code of SALES\_CHANNEL\_NOT\_CONNECTED) when the sales channel is not connected.

## Objects

* [`Attribute`](/docs/api-reference/v3/reference/catalog/attribute) — A typed attribute defined by the merchant and attached to a product or product family.
* [`Dimensions`](/docs/api-reference/v3/reference/catalog/dimensions) — A product's length, width, and height expressed in a single shared unit.
* [`Product`](/docs/api-reference/v3/reference/catalog/product) — A specific sellable product (a variant under a product family).
* [`ProductFamily`](/docs/api-reference/v3/reference/catalog/product-family) — A merchant catalog item — a group of related products (variants).
* [`ProductFamilyImage`](/docs/api-reference/v3/reference/catalog/product-family-image) — An image attached to a product family.
* [`ProductFamilyOption`](/docs/api-reference/v3/reference/catalog/product-family-option) — A variant option (e.g. Size, Color) for a product family, with its allowed values.
* [`ProductImage`](/docs/api-reference/v3/reference/catalog/product-image) — An image attached to a specific product (variant).
* [`ProductOptionValue`](/docs/api-reference/v3/reference/catalog/product-option-value) — A variant's selected value for one of its family's options (e.g. Size: M).
* [`SyncedVariant`](/docs/api-reference/v3/reference/catalog/synced-variant) — The result of resolving one sales channel variant to a product here.
* [`Weight`](/docs/api-reference/v3/reference/catalog/weight) — A weight as a `{ value, unit }` pair, e.g. `{ value: 1.5, unit: KILOGRAM }`.

## Input objects

* [`CreateProductFamilyInput`](/docs/api-reference/v3/reference/catalog/create-product-family-input) — The input for creating a new product family.
* [`CreateProductInput`](/docs/api-reference/v3/reference/catalog/create-product-input) — A product (variant) to create under the new family.
* [`DimensionInput`](/docs/api-reference/v3/reference/catalog/dimension-input) — A length as a `{ value, unit }` pair.
* [`ProductFamilyOptionInput`](/docs/api-reference/v3/reference/catalog/product-family-option-input) — An option (e.g. Size) to create on the new family.
* [`ProductOptionValueInput`](/docs/api-reference/v3/reference/catalog/product-option-value-input) — A variant's selected value for one of the family's options (e.g. Size: M).
* [`SyncSalesChannelVariantsInput`](/docs/api-reference/v3/reference/catalog/sync-sales-channel-variants-input) — The sales channel variants to resolve to products, syncing any that are missing.
* [`WeightInput`](/docs/api-reference/v3/reference/catalog/weight-input) — A weight as a `{ value, unit }` pair.

## Enums

* [`AttributeType`](/docs/api-reference/v3/reference/catalog/attribute-type) — The data type of a merchant-defined attribute. Determines the JSON shape of the attribute's `value` (documented on each enum value).
* [`DimensionUnit`](/docs/api-reference/v3/reference/catalog/dimension-unit) — A unit of length used to express a product's dimensions.
* [`ProductFamilySortKey`](/docs/api-reference/v3/reference/catalog/product-family-sort-key) — A field this list can be ordered by; pass to the list's `orderBy` argument and pair with `reverse` to flip direction.
* [`ProductSortKey`](/docs/api-reference/v3/reference/catalog/product-sort-key) — A field this list can be ordered by; pass to the list's `orderBy` argument and pair with `reverse` to flip direction.
* [`SalesChannel`](/docs/api-reference/v3/reference/catalog/sales-channel) — An external sales channel a product can be synced from on demand.
* [`VariantSyncOutcome`](/docs/api-reference/v3/reference/catalog/variant-sync-outcome) — What happened to one requested sales channel variant.
* [`WeightUnit`](/docs/api-reference/v3/reference/catalog/weight-unit) — A unit of mass used to express a product's weight.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.