---
title: "Manage your product catalog"
description: "Create products and prices, control their visibility with publish and archive, and attach them to orders."
canonical: "https://studio.inttegro.com/guides/manage-product-catalog"
format: inttegro-machine-docs/v1
language: "cURL"
reader_profile: optional
reader_manifest: "https://studio.inttegro.com/machine/curl/readers/index.json"
reader_identification: "Optional: declare your client only if known and your current-session capabilities; use reader_manifest for supplemental recommendations."
preamble_estimated_tokens: 658
model_token_report: "https://studio.inttegro.com/machine/token-report.json"
preamble_questions: 5
preamble_source: "general"
recommended_mcp_tools: ["get_integration_guide","check_integration_readiness","create_product"]
estimated_tokens: 1910
token_estimate_method: "utf8_bytes_divided_by_4"
---

## Machine preamble

**Summary:** Create products and prices, control their visibility with publish and archive, and attach them to orders. This cURL representation preserves HTTP paths and JSON wire names.

### Five questions

#### Q1. When should the reader use Manage your product catalog?

Use this guide when implementing the complete business outcome rather than an isolated request.

#### Q2. What is authoritative on this page?

The guide owns the business sequence and verification logic. Its linked API references own the exact request, response, state, and error contracts.

#### Q3. What page-specific constraint matters most?

Keep the documented ordering, trust boundary, idempotency behavior, and authoritative read-after-write verification intact.

#### Q4. Can Inttegro MCP materially help with this task?

Yes, when the reader has an authenticated MCP connection and the task needs live context, guided planning, or a supported operation. The strongest matches are `get_integration_guide`, `check_integration_readiness`, `create_product`; their exact roles and boundaries are listed below.

#### Q5. How should the reader verify the answer and continue?

Use the guide’s explicit completion condition and verify the final resource through the documented lookup or lifecycle state; a successful redirect or accepted request may be intermediate. Continue with [Accept a payment](https://studio.inttegro.com/machine/curl/guides/accept-a-payment.md) and [Prices API](https://studio.inttegro.com/machine/curl/api/prices.md) when those concerns enter scope.

### Recommended MCP assistance

Use these through an authenticated Inttegro MCP connection. This document remains the contract source.

- [`get_integration_guide`](https://studio.inttegro.com/machine/curl/inttegro-mcp/tools.md#get_integration_guide) — read-only integration guidance. Returns a focused implementation sequence and canonical Studio links for authentication, checkout, orders, catalog, messaging, idempotency, or testing.
- [`check_integration_readiness`](https://studio.inttegro.com/machine/curl/inttegro-mcp/tools.md#check_integration_readiness) — read-only integration guidance. Audits platform secret storage, server-runtime compatibility, idempotency, errors, state verification, checkout returns, and messaging consent without receiving source code or credentials.
- [`create_product`](https://studio.inttegro.com/machine/curl/inttegro-mcp/tools.md#create_product) — action; exact user confirmation required. Creates a catalog product as a draft by default. Prices are created separately so each operation has an unambiguous result.

## Document content

# Manage your product catalog

Products and prices are the building blocks of every order. A product describes what you're selling—name, category, tax code, and custom metadata. A price attaches a monetary amount and currency to a product. This guide walks through creating and maintaining your catalog, controlling product visibility through the publish/unpublish/archive lifecycle, and attaching catalog items to orders at checkout.

> Mcp Guide Callout is interactive content. Use the canonical page to view it.

## Prerequisites

- Basic understanding of [orders](https://studio.inttegro.com/machine/curl/api/orders.md) and how line items work

## Create a product

A product is a catalog entry. It doesn't have a price on its own—you attach one or more prices separately. This separation lets you update pricing without touching the product record and support multiple currencies or billing intervals on a single item.

**Create product — POST /products/create**

```bash
curl https://api.inttegro.com/products/create \
  -H "Authorization: Bearer $INTTEGRO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Premium Tailoring",
    "about": "Bespoke suit tailoring with two fittings",
    "category": "services",
    "type": "service",
    "tax_code": "txcd_20030000"
  }'
```

The response includes the product ID (`pr_…`). Store this—you'll need it when creating prices and referencing the product in orders.

## Attach a price

A price binds a monetary amount and currency to a product. You can attach multiple prices to the same product—useful for multi-currency stores or tiered billing (monthly vs annual).

**Create price — POST /prices/create**

```bash
curl https://api.inttegro.com/prices/create \
  -H "Authorization: Bearer $INTTEGRO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "product_id": "prod_ZLxM9pQ4wRsN7jKv2cY1tD8hBgFnAo3i",
    "type": "fixed_amount",
    "fixed_amount": {
      "currency": "ghs",
      "value": 85000
    },
    "label": "Standard"
  }'
```

Amounts are always in the smallest currency unit—pesewas for GHS, cents for USD, kobo for NGN. 85000 pesewas = GHS 850.00.

## Publish and unpublish products

Products start in an unpublished state. Publish them when they're ready to appear in your storefront or be selected during checkout. Unpublish to hide them temporarily without losing the product record or its associated prices.

**Publish product — POST /products/publish**

```bash
curl https://api.inttegro.com/products/publish \
  -H "Authorization: Bearer $INTTEGRO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"product_id": "prod_ZLxM9pQ4wRsN7jKv2cY1tD8hBgFnAo3i"}'
```

To hide a product without archiving it, call [Unpublish a product](https://studio.inttegro.com/machine/curl/api/products.md#unpublish-a-product) with the same request shape. The product reverts to unpublished status and can be republished at any time.

## Archive a product

Archiving is permanent removal from active catalog management. Archive products you'll never sell again—discontinued items, seasonal products that have run their course, or test entries you want to clean up. Archived products cannot be ordered and won't appear in catalog listings.

**Archive product — POST /products/archive**

```bash
curl https://api.inttegro.com/products/archive \
  -H "Authorization: Bearer $INTTEGRO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"product_id": "prod_ZLxM9pQ4wRsN7jKv2cY1tD8hBgFnAo3i"}'
```

Archiving a product does not affect past orders that reference it. Historical line items remain intact for reconciliation and customer service purposes.

## Related resources

- [Products API](https://studio.inttegro.com/machine/curl/api/products.md) — Full reference for create, lookup, update, publish, unpublish, and archive
- [Prices API](https://studio.inttegro.com/machine/curl/api/prices.md) — Complete parameter reference for prices
- [Accept a payment](https://studio.inttegro.com/machine/curl/guides/accept-a-payment.md) — How to include catalog products in order line items
