Back to Home

Documentation

Everything you need to know to get the most out of DiscountFlow. Find guides, tutorials, and API references.

Quick Start
API References
FAQs
API References
/
API Endpoints
/
Create Product

Create Product

Add a product

createProduct

Creates a new product. Returns the created Product object.

Method

POST

Path

/graphql

Authentication

Bearer Token

Request Body Schema

Content-type: application/json

Variables

NameTypeRequiredDescription
input.partnumberStringRequiredUnique part number identifier
input.descriptionStringOptionalProduct description
input.modelStringOptionalModel identifier
input.list_priceFloatOptionalList price
input.msrpFloatOptionalManufacturer suggested retail price
input.moqIntOptionalMinimum order quantity
input.tariff_surchargeFloatOptionalTariff surcharge amount
input.allow_tariffBooleanOptionalWhether a tariff surcharge applies
input.other_detailsJSONOptionalArbitrary additional data

Example Payload

{
  "query": "mutation ($input: CreateProductInput!) { createProduct(input: $input) { id partnumber description model list_price msrp moq tariff_surcharge allow_tariff created_at } }",
  "variables": {
    "input": {
      "partnumber": "WIDGET-001",
      "description": "Standard Widget",
      "model": "W1",
      "list_price": 99.99,
      "msrp": 129.99,
      "moq": 10,
      "tariff_surcharge": 5.0,
      "allow_tariff": true
    }
  }
}

Response

Returns the newly created Product object.

Example Response

{
  "data": {
    "createProduct": {
      "id": "2",
      "partnumber": "WIDGET-001",
      "description": "Standard Widget",
      "model": "W1",
      "list_price": 99.99,
      "msrp": 129.99,
      "moq": 10,
      "tariff_surcharge": 5.0,
      "allow_tariff": true,
      "created_at": "2026-06-03 08:00:00"
    }
  }
}

Errors

Validation errors are returned when required fields are missing.

Example Response

{
  "errors": [
    {
      "message": "Validation failed for the field [createProduct].",
      "extensions": {
        "validation": {
          "input.partnumber": ["The input.partnumber field is required."]
        }
      }
    }
  ]
}