D Products#

a. Create

#

Creates a new product

POST /products
import Fragment from '@fragment-dev/ts-node';

const client = new Fragment({
  clientId: process.env['FRAGMENT_CLIENT_ID'],
  clientSecret: process.env['FRAGMENT_CLIENT_SECRET'],
});

const response = await client.products.create(
  {
      code: 'PROD_001',
      description: 'Premium subscription service',
      paid_by_roles: [{ name: 'buyer' }],
      paid_to_roles: [{ name: 'seller' }]
    }
);
Parameters
code
string, required
Product code (unique identifier)
description
string
Description of the product
paid_by_roles
object[]
Roles that can pay for this product. Reference roles by id or name. At least one of paid_by_roles or paid_to_roles must be provided.
paid_to_roles
object[]
Roles that receive payment for this product. Reference roles by id or name. At least one of paid_by_roles or paid_to_roles must be provided.
Response
{
  "data": {
    "id": "product_1234567890",
    "workspace_id": "ws_1234567890",
    "code": "PROD_001",
    "description": "Premium subscription service",
    "paid_by_roles": [
      {
        "name": "buyer",
        "id": "role_def123"
      }
    ],
    "paid_to_roles": [
      {
        "name": "buyer",
        "id": "role_def123"
      }
    ],
    "update_version": 1,
    "created": "2024-01-13T00:00:00Z"
  }
}

b. List

#

Lists all products for the workspace

GET /products
import Fragment from '@fragment-dev/ts-node';

const client = new Fragment({
  clientId: process.env['FRAGMENT_CLIENT_ID'],
  clientSecret: process.env['FRAGMENT_CLIENT_SECRET'],
});

const response = await client.products.list();
Response
{
  "data": [
    {
      "id": "product_1234567890",
      "workspace_id": "ws_1234567890",
      "code": "PROD_001",
      "description": "Premium subscription service",
      "paid_by_roles": [
        {
          "name": "buyer",
          "id": "role_def123"
        }
      ],
      "paid_to_roles": [
        {
          "name": "buyer",
          "id": "role_def123"
        }
      ],
      "update_version": 1,
      "created": "2024-01-13T00:00:00Z"
    }
  ]
}

c. Retrieve

#

Gets a product by code

GET /products/{code}
import Fragment from '@fragment-dev/ts-node';

const client = new Fragment({
  clientId: process.env['FRAGMENT_CLIENT_ID'],
  clientSecret: process.env['FRAGMENT_CLIENT_SECRET'],
});

const response = await client.products.retrieve('PROD_001');
Parameters
code
string, required
Product code
Response
{
  "data": {
    "id": "product_1234567890",
    "workspace_id": "ws_1234567890",
    "code": "PROD_001",
    "description": "Premium subscription service",
    "paid_by_roles": [
      {
        "name": "buyer",
        "id": "role_def123"
      }
    ],
    "paid_to_roles": [
      {
        "name": "buyer",
        "id": "role_def123"
      }
    ],
    "update_version": 1,
    "created": "2024-01-13T00:00:00Z"
  }
}