AlmondTill/G3N API

Shape the catalog’s vocabulary — seasons, tags, characteristics, units

Define the words the catalog is described in — the seasons goods belong to, free-form tags, the typed characteristics products carry, your own units of measure, the top-level divisions and the makers — so every item is filed the same way.

Catalog · a play in 5 steps.

The steps

  1. Add a season — a time-bounded grouping goods belong to. — createSeason
  2. Add a tag — a free-form label. — createTag
  3. Add a characteristic — a typed attribute products carry, like material or care. — createCharacteristic
  4. Add a unit of measure of your own — a bundle, a crate. — createCustomUom
  5. Add a division — a top-level product grouping — and a manufacturer — who builds a product. — createDivision, createManufacturer

The calls

Every operation this use case runs, in the order it first appears, with the request and the response its reference page shows.

createSeason

createSeason — mutation · Create a new season — a time-bounded product grouping at your organization.

Example request

mutation ExampleCreateSeason($input: NewSeasonInput!) {
  createSeason(input: $input) {
    id
    sysId
    type
    caption
    status
    parentId
    rootId
    createdAt
    updatedAt
    revisionNum
    revision
    code
    startAt
    endAt
  }
}

Variables:

{
  "input": {
    "caption": "Blue jeans"
  }
}

Send it with the envelope naming the version: "extensions": {"at": {"version": {"name":"genesis","number":0}}}.

Example response

{
  "data": {
    "createSeason": {
      "id": "01900000-0000-7000-8000-37386ae00000",
      "sysId": "SN-EXMP-0000-000F",
      "type": "Season",
      "caption": "Blue jeans",
      "status": "active",
      "parentId": "01900000-0000-7000-8000-065235280000",
      "rootId": "01900000-0000-7000-8000-a093dd800000",
      "createdAt": "2027-01-31T00:00:00.000Z",
      "updatedAt": "2027-01-31T00:00:00.000Z",
      "revisionNum": 1,
      "revision": "01900000-0000-7000-8000-b7960e180000",
      "code": "BJ-001",
      "startAt": "2027-01-31T00:00:00.000Z",
      "endAt": "2027-01-31T00:00:00.000Z"
    }
  },
  "extensions": {
    "at": {
      "callId": "01EXAMPLE-CALL-ID",
      "version": {
        "requested": {
          "name": "genesis",
          "number": 0
        },
        "serviced": {
          "name": "genesis",
          "number": 0
        }
      }
    }
  }
}

createTag

createTag — mutation · Create a new tag — a free-form product label at your organization.

Example request

mutation ExampleCreateTag($input: NewTagInput!) {
  createTag(input: $input) {
    id
    sysId
    type
    caption
    status
    parentId
    rootId
    createdAt
    updatedAt
    revisionNum
    revision
    code
  }
}

Variables:

{
  "input": {
    "caption": "Blue jeans"
  }
}

Send it with the envelope naming the version: "extensions": {"at": {"version": {"name":"genesis","number":0}}}.

Example response

{
  "data": {
    "createTag": {
      "id": "01900000-0000-7000-8000-37386ae00000",
      "sysId": "TG-EXMP-0000-000F",
      "type": "Tag",
      "caption": "Blue jeans",
      "status": "active",
      "parentId": "01900000-0000-7000-8000-065235280000",
      "rootId": "01900000-0000-7000-8000-a093dd800000",
      "createdAt": "2027-01-31T00:00:00.000Z",
      "updatedAt": "2027-01-31T00:00:00.000Z",
      "revisionNum": 1,
      "revision": "01900000-0000-7000-8000-b7960e180000",
      "code": "BJ-001"
    }
  },
  "extensions": {
    "at": {
      "callId": "01EXAMPLE-CALL-ID",
      "version": {
        "requested": {
          "name": "genesis",
          "number": 0
        },
        "serviced": {
          "name": "genesis",
          "number": 0
        }
      }
    }
  }
}

createCharacteristic

createCharacteristic — mutation · Create a new product characteristic — a typed attribute products carry (material, care, age rating) at your organization.

Example request

mutation ExampleCreateCharacteristic($input: NewCharacteristicInput!) {
  createCharacteristic(input: $input) {
    id
    sysId
    type
    caption
    status
    parentId
    rootId
    createdAt
    updatedAt
    revisionNum
    revision
    valueType
    unit
    code
  }
}

Variables:

{
  "input": {
    "caption": "Blue jeans",
    "valueType": "string"
  }
}

Send it with the envelope naming the version: "extensions": {"at": {"version": {"name":"genesis","number":0}}}.

Example response

{
  "data": {
    "createCharacteristic": {
      "id": "01900000-0000-7000-8000-37386ae00000",
      "sysId": "CH-EXMP-0000-000F",
      "type": "Characteristic",
      "caption": "Blue jeans",
      "status": "active",
      "parentId": "01900000-0000-7000-8000-065235280000",
      "rootId": "01900000-0000-7000-8000-a093dd800000",
      "createdAt": "2027-01-31T00:00:00.000Z",
      "updatedAt": "2027-01-31T00:00:00.000Z",
      "revisionNum": 1,
      "revision": "01900000-0000-7000-8000-b7960e180000",
      "valueType": "string",
      "unit": "<unit>",
      "code": "BJ-001"
    }
  },
  "extensions": {
    "at": {
      "callId": "01EXAMPLE-CALL-ID",
      "version": {
        "requested": {
          "name": "genesis",
          "number": 0
        },
        "serviced": {
          "name": "genesis",
          "number": 0
        }
      }
    }
  }
}

createCustomUom

createCustomUom — mutation · Create a new custom unit of measure your group defines (a bundle, a crate) at your organization.

Example request

mutation ExampleCreateCustomUom($input: NewCustomUomInput!) {
  createCustomUom(input: $input) {
    id
    sysId
    type
    caption
    status
    parentId
    rootId
    createdAt
    updatedAt
    revisionNum
    revision
    dimensionClass
    factorToBase
    code
  }
}

Variables:

{
  "input": {
    "caption": "Blue jeans",
    "dimensionClass": "count",
    "factorToBase": 1.5
  }
}

Send it with the envelope naming the version: "extensions": {"at": {"version": {"name":"genesis","number":0}}}.

Example response

{
  "data": {
    "createCustomUom": {
      "id": "01900000-0000-7000-8000-37386ae00000",
      "sysId": "UM-EXMP-0000-000F",
      "type": "CustomUom",
      "caption": "Blue jeans",
      "status": "active",
      "parentId": "01900000-0000-7000-8000-065235280000",
      "rootId": "01900000-0000-7000-8000-a093dd800000",
      "createdAt": "2027-01-31T00:00:00.000Z",
      "updatedAt": "2027-01-31T00:00:00.000Z",
      "revisionNum": 1,
      "revision": "01900000-0000-7000-8000-b7960e180000",
      "dimensionClass": "count",
      "factorToBase": 1.5,
      "code": "BJ-001"
    }
  },
  "extensions": {
    "at": {
      "callId": "01EXAMPLE-CALL-ID",
      "version": {
        "requested": {
          "name": "genesis",
          "number": 0
        },
        "serviced": {
          "name": "genesis",
          "number": 0
        }
      }
    }
  }
}

createDivision

createDivision — mutation · Create a new division — a top-level product grouping at your organization.

Example request

mutation ExampleCreateDivision($input: NewDivisionInput!) {
  createDivision(input: $input) {
    id
    sysId
    type
    caption
    status
    parentId
    rootId
    createdAt
    updatedAt
    revisionNum
    revision
    divisionType
    code
  }
}

Variables:

{
  "input": {
    "caption": "Blue jeans",
    "divisionType": "merchandise"
  }
}

Send it with the envelope naming the version: "extensions": {"at": {"version": {"name":"genesis","number":0}}}.

Example response

{
  "data": {
    "createDivision": {
      "id": "01900000-0000-7000-8000-37386ae00000",
      "sysId": "DV-EXMP-0000-000F",
      "type": "Division",
      "caption": "Blue jeans",
      "status": "active",
      "parentId": "01900000-0000-7000-8000-065235280000",
      "rootId": "01900000-0000-7000-8000-a093dd800000",
      "createdAt": "2027-01-31T00:00:00.000Z",
      "updatedAt": "2027-01-31T00:00:00.000Z",
      "revisionNum": 1,
      "revision": "01900000-0000-7000-8000-b7960e180000",
      "divisionType": "merchandise",
      "code": "BJ-001"
    }
  },
  "extensions": {
    "at": {
      "callId": "01EXAMPLE-CALL-ID",
      "version": {
        "requested": {
          "name": "genesis",
          "number": 0
        },
        "serviced": {
          "name": "genesis",
          "number": 0
        }
      }
    }
  }
}

createManufacturer

createManufacturer — mutation · Create a new manufacturer — who builds a product at your organization.

Example request

mutation ExampleCreateManufacturer($input: NewManufacturerInput!) {
  createManufacturer(input: $input) {
    id
    sysId
    type
    caption
    status
    parentId
    rootId
    createdAt
    updatedAt
    revisionNum
    revision
    origin
    code
  }
}

Variables:

{
  "input": {
    "caption": "Blue jeans"
  }
}

Send it with the envelope naming the version: "extensions": {"at": {"version": {"name":"genesis","number":0}}}.

Example response

{
  "data": {
    "createManufacturer": {
      "id": "01900000-0000-7000-8000-37386ae00000",
      "sysId": "MF-EXMP-0000-000F",
      "type": "Manufacturer",
      "caption": "Blue jeans",
      "status": "active",
      "parentId": "01900000-0000-7000-8000-065235280000",
      "rootId": "01900000-0000-7000-8000-a093dd800000",
      "createdAt": "2027-01-31T00:00:00.000Z",
      "updatedAt": "2027-01-31T00:00:00.000Z",
      "revisionNum": 1,
      "revision": "01900000-0000-7000-8000-b7960e180000",
      "origin": "<origin>",
      "code": "BJ-001"
    }
  },
  "extensions": {
    "at": {
      "callId": "01EXAMPLE-CALL-ID",
      "version": {
        "requested": {
          "name": "genesis",
          "number": 0
        },
        "serviced": {
          "name": "genesis",
          "number": 0
        }
      }
    }
  }
}