# Product Catalogs

This section will guide you through the core principles on how product catalogs within Procurement are structured, how they can be created, how they can be accessed and how access to them is managed.

# Object Graph

                                                                  ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┐
                                                                   Catalog Access
                                 ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─      │                             │
┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─       Catalogs                  │         ┌─────────────────────┐
 Products                  │     │                                │   │ Zaikio/Organization │   │
│                                   ┌───────────────────┐   │         │     (Consumer)      │
   ┌──────────────────┐    │     │  │Zaikio/Organization│         │   └─────────────────────┘   │
│  │     Articles     │             │    (Supplier)     │◀──┼──┐                 ▲
   └──────────────────┘    │     │  └───────────────────┘      │  │              │              │
│            ▲                                ▲             │  │      ┌─────────────────────┐
             │             │     │            │                └──┼───│      Contracts      │   │
│  ┌───────────────────┐            ┌───────────────────┐   │         └─────────────────────┘
   │     Variants      │   │     │  │    SalesGroups    │◀─────┐  │              ▲              │
│  └───────────────────┘            └───────────────────┘   │  │                 │
             ▲             │     │            ▲                │  │              │              │
│            │                                │             │  │      ┌─────────────────────┐
   ┌───────────────────┐   │     │  ┌───────────────────┐      │  │   │     SalesGroup      │   │
│  │       SKUs        │◀───────────│      Prices       │   │  └──────│     Memberships     │
   └───────────────────┘   │     │  └───────────────────┘         │   └─────────────────────┘   │
└ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─       ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┘      ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─

# General Concepts - Products

Within Procurement a distinct product is made up out of three different entities: Article, Variant and SKU:

Articles define the frame for the Product like the name and a description.

Articles come in different Variants. A variant specifies product specific criteria such as sizes, weights, colouring and many more.

SKUs are, as the name suggests, the packaging units for a product. They define the packaging amounts and units as well as the sizing of the distinct package unit. A final item that can be ordered will always be a SKU

Relations between those entities are one-to-many: One Article can have many Variants, one Variant can have many SKUs.

Example: There might be a substrate article with the name Magno Satin. It comes in various Variants, one of them might be the 120 grammage variant. When you want to order these it might come as a SKU of 28.000 sheet on a pallet.

# Product Types

Procurement uses distinct product types for each product category. These will define the available data fields for Articles and Variants. You will not be able to create or ask for a base Article or Variant, you will always create or access specific product types, e.g. SubstrateArticle and SubstrateVariant for substrate.

Read more about the available types and their available fields

# General Concept - Product Catalogs

Within Procurement a product catalog is made up out of two entities: Price and SalesGroup.

Prices define the price of a given SKU which is valid for all members of a specific sales group. Every SKU can have many prices – even for the same sales group.

Sales Groups defines a distinct product catalog that can later be linked to specific customers. They can be named and hold many Prices.

It is up to the supplier how to group consumers into sales groups. You might want to have just a single global sales group for all your customers. Or you might want to separate customers into sales groups depending on their location or by their sales representive. Or you want have special prices only visible for high valume customers.

Furthermore it is important to notice that customers can be in multiple sales groups at the same time. They might be in the default sales group, in the sames group for high volumne customer and the might have a sales group on their own for prices negotiated just between the supplier and this specific customer.

Suppliers might decide that some or all of their sales groups are exclusive. A sales group is exclusive when an order can only include articles with prices from one sales group at a time. And when you cannot have orders with articles with prices from different sales groups in one order.

# Dynamic and static prices

The supplier can decide if a price is static or dynamic. When the price is static then the price object from the catalog must include a minimum_order_quantity and a price. When the price is dynamic then the minimum_order_quantity and the price attribute will be ampty and instead the supplier must provide an API endpoint from which the Procurement will fetch a life price each time a consumer adds an item to an order.

Note that per variant the kind of the prices cannot be mixed, all prices for a variant need to be static or dynamic.

Learn more about how Dynamic Pricing work.

# General Concept - Catalog Access

Within Procurement access to a product catalog can be granted via SalesGroupMembership, which itself links to a SalesGroup and a Contract.

Consumers will only be able to browse articles and see prices when there is a connection via a a sales group and a sales group membership to their contract. When there are multiple connections then the consumer will see the cheapest available prices for each SKU.