Skip to content

katana_public_api_client.api.material.create_material

katana_public_api_client.api.material.create_material

Classes

Functions

asyncio(*, client, body) async

Create a material

Creates a material object.

Parameters:

  • body (CreateMaterialRequest) –

    Request payload for creating a new raw material with variants and specifications Example: {'name': 'Stainless Steel Sheet 304', 'uom': 'm²', 'category_name': 'Raw Materials', 'default_supplier_id': 1501, 'additional_info': 'Food- grade stainless steel, 1.5mm thickness', 'batch_tracked': True, 'is_sellable': False, 'purchase_uom': 'sheet', 'purchase_uom_conversion_rate': 2.0, 'configs': [{'id': 1, 'name': 'Grade', 'values': ['304', '316'], 'material_id': 1}, {'id': 2, 'name': 'Thickness', 'values': ['1.5mm', '2.0mm', '3.0mm'], 'material_id': 1}], 'variants': [{'sku': 'STEEL-304-1.5MM', 'sales_price': 65.0, 'purchase_price': 45.0, 'lead_time': 5, 'minimum_order_quantity': 1, 'config_attributes': [{'config_name': 'Grade', 'config_value': '304'}, {'config_name': 'Thickness', 'config_value': '1.5mm'}]}]}.

Raises:

  • UnexpectedStatus

    If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.

  • TimeoutException

    If the request takes longer than Client.timeout.

Returns:

Source code in katana_public_api_client/api/material/create_material.py
async def asyncio(
    *,
    client: AuthenticatedClient | Client,
    body: CreateMaterialRequest,
) -> DetailedErrorResponse | ErrorResponse | Material | None:
    """Create a material

     Creates a material object.

    Args:
        body (CreateMaterialRequest): Request payload for creating a new raw material with
            variants and specifications Example: {'name': 'Stainless Steel Sheet 304', 'uom': 'm²',
            'category_name': 'Raw Materials', 'default_supplier_id': 1501, 'additional_info': 'Food-
            grade stainless steel, 1.5mm thickness', 'batch_tracked': True, 'is_sellable': False,
            'purchase_uom': 'sheet', 'purchase_uom_conversion_rate': 2.0, 'configs': [{'id': 1,
            'name': 'Grade', 'values': ['304', '316'], 'material_id': 1}, {'id': 2, 'name':
            'Thickness', 'values': ['1.5mm', '2.0mm', '3.0mm'], 'material_id': 1}], 'variants':
            [{'sku': 'STEEL-304-1.5MM', 'sales_price': 65.0, 'purchase_price': 45.0, 'lead_time': 5,
            'minimum_order_quantity': 1, 'config_attributes': [{'config_name': 'Grade',
            'config_value': '304'}, {'config_name': 'Thickness', 'config_value': '1.5mm'}]}]}.

    Raises:
        errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
        httpx.TimeoutException: If the request takes longer than Client.timeout.


    Returns:
        Union[DetailedErrorResponse, ErrorResponse, Material]
    """

    return (
        await asyncio_detailed(
            client=client,
            body=body,
        )
    ).parsed

asyncio_detailed(*, client, body) async

Create a material

Creates a material object.

Parameters:

  • body (CreateMaterialRequest) –

    Request payload for creating a new raw material with variants and specifications Example: {'name': 'Stainless Steel Sheet 304', 'uom': 'm²', 'category_name': 'Raw Materials', 'default_supplier_id': 1501, 'additional_info': 'Food- grade stainless steel, 1.5mm thickness', 'batch_tracked': True, 'is_sellable': False, 'purchase_uom': 'sheet', 'purchase_uom_conversion_rate': 2.0, 'configs': [{'id': 1, 'name': 'Grade', 'values': ['304', '316'], 'material_id': 1}, {'id': 2, 'name': 'Thickness', 'values': ['1.5mm', '2.0mm', '3.0mm'], 'material_id': 1}], 'variants': [{'sku': 'STEEL-304-1.5MM', 'sales_price': 65.0, 'purchase_price': 45.0, 'lead_time': 5, 'minimum_order_quantity': 1, 'config_attributes': [{'config_name': 'Grade', 'config_value': '304'}, {'config_name': 'Thickness', 'config_value': '1.5mm'}]}]}.

Raises:

  • UnexpectedStatus

    If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.

  • TimeoutException

    If the request takes longer than Client.timeout.

Returns:

Source code in katana_public_api_client/api/material/create_material.py
async def asyncio_detailed(
    *,
    client: AuthenticatedClient | Client,
    body: CreateMaterialRequest,
) -> Response[DetailedErrorResponse | ErrorResponse | Material]:
    """Create a material

     Creates a material object.

    Args:
        body (CreateMaterialRequest): Request payload for creating a new raw material with
            variants and specifications Example: {'name': 'Stainless Steel Sheet 304', 'uom': 'm²',
            'category_name': 'Raw Materials', 'default_supplier_id': 1501, 'additional_info': 'Food-
            grade stainless steel, 1.5mm thickness', 'batch_tracked': True, 'is_sellable': False,
            'purchase_uom': 'sheet', 'purchase_uom_conversion_rate': 2.0, 'configs': [{'id': 1,
            'name': 'Grade', 'values': ['304', '316'], 'material_id': 1}, {'id': 2, 'name':
            'Thickness', 'values': ['1.5mm', '2.0mm', '3.0mm'], 'material_id': 1}], 'variants':
            [{'sku': 'STEEL-304-1.5MM', 'sales_price': 65.0, 'purchase_price': 45.0, 'lead_time': 5,
            'minimum_order_quantity': 1, 'config_attributes': [{'config_name': 'Grade',
            'config_value': '304'}, {'config_name': 'Thickness', 'config_value': '1.5mm'}]}]}.

    Raises:
        errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
        httpx.TimeoutException: If the request takes longer than Client.timeout.


    Returns:
        Response[Union[DetailedErrorResponse, ErrorResponse, Material]]
    """

    kwargs = _get_kwargs(
        body=body,
    )

    response = await client.get_async_httpx_client().request(**kwargs)

    return _build_response(client=client, response=response)

sync(*, client, body)

Create a material

Creates a material object.

Parameters:

  • body (CreateMaterialRequest) –

    Request payload for creating a new raw material with variants and specifications Example: {'name': 'Stainless Steel Sheet 304', 'uom': 'm²', 'category_name': 'Raw Materials', 'default_supplier_id': 1501, 'additional_info': 'Food- grade stainless steel, 1.5mm thickness', 'batch_tracked': True, 'is_sellable': False, 'purchase_uom': 'sheet', 'purchase_uom_conversion_rate': 2.0, 'configs': [{'id': 1, 'name': 'Grade', 'values': ['304', '316'], 'material_id': 1}, {'id': 2, 'name': 'Thickness', 'values': ['1.5mm', '2.0mm', '3.0mm'], 'material_id': 1}], 'variants': [{'sku': 'STEEL-304-1.5MM', 'sales_price': 65.0, 'purchase_price': 45.0, 'lead_time': 5, 'minimum_order_quantity': 1, 'config_attributes': [{'config_name': 'Grade', 'config_value': '304'}, {'config_name': 'Thickness', 'config_value': '1.5mm'}]}]}.

Raises:

  • UnexpectedStatus

    If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.

  • TimeoutException

    If the request takes longer than Client.timeout.

Returns:

Source code in katana_public_api_client/api/material/create_material.py
def sync(
    *,
    client: AuthenticatedClient | Client,
    body: CreateMaterialRequest,
) -> DetailedErrorResponse | ErrorResponse | Material | None:
    """Create a material

     Creates a material object.

    Args:
        body (CreateMaterialRequest): Request payload for creating a new raw material with
            variants and specifications Example: {'name': 'Stainless Steel Sheet 304', 'uom': 'm²',
            'category_name': 'Raw Materials', 'default_supplier_id': 1501, 'additional_info': 'Food-
            grade stainless steel, 1.5mm thickness', 'batch_tracked': True, 'is_sellable': False,
            'purchase_uom': 'sheet', 'purchase_uom_conversion_rate': 2.0, 'configs': [{'id': 1,
            'name': 'Grade', 'values': ['304', '316'], 'material_id': 1}, {'id': 2, 'name':
            'Thickness', 'values': ['1.5mm', '2.0mm', '3.0mm'], 'material_id': 1}], 'variants':
            [{'sku': 'STEEL-304-1.5MM', 'sales_price': 65.0, 'purchase_price': 45.0, 'lead_time': 5,
            'minimum_order_quantity': 1, 'config_attributes': [{'config_name': 'Grade',
            'config_value': '304'}, {'config_name': 'Thickness', 'config_value': '1.5mm'}]}]}.

    Raises:
        errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
        httpx.TimeoutException: If the request takes longer than Client.timeout.


    Returns:
        Union[DetailedErrorResponse, ErrorResponse, Material]
    """

    return sync_detailed(
        client=client,
        body=body,
    ).parsed

sync_detailed(*, client, body)

Create a material

Creates a material object.

Parameters:

  • body (CreateMaterialRequest) –

    Request payload for creating a new raw material with variants and specifications Example: {'name': 'Stainless Steel Sheet 304', 'uom': 'm²', 'category_name': 'Raw Materials', 'default_supplier_id': 1501, 'additional_info': 'Food- grade stainless steel, 1.5mm thickness', 'batch_tracked': True, 'is_sellable': False, 'purchase_uom': 'sheet', 'purchase_uom_conversion_rate': 2.0, 'configs': [{'id': 1, 'name': 'Grade', 'values': ['304', '316'], 'material_id': 1}, {'id': 2, 'name': 'Thickness', 'values': ['1.5mm', '2.0mm', '3.0mm'], 'material_id': 1}], 'variants': [{'sku': 'STEEL-304-1.5MM', 'sales_price': 65.0, 'purchase_price': 45.0, 'lead_time': 5, 'minimum_order_quantity': 1, 'config_attributes': [{'config_name': 'Grade', 'config_value': '304'}, {'config_name': 'Thickness', 'config_value': '1.5mm'}]}]}.

Raises:

  • UnexpectedStatus

    If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.

  • TimeoutException

    If the request takes longer than Client.timeout.

Returns:

Source code in katana_public_api_client/api/material/create_material.py
def sync_detailed(
    *,
    client: AuthenticatedClient | Client,
    body: CreateMaterialRequest,
) -> Response[DetailedErrorResponse | ErrorResponse | Material]:
    """Create a material

     Creates a material object.

    Args:
        body (CreateMaterialRequest): Request payload for creating a new raw material with
            variants and specifications Example: {'name': 'Stainless Steel Sheet 304', 'uom': 'm²',
            'category_name': 'Raw Materials', 'default_supplier_id': 1501, 'additional_info': 'Food-
            grade stainless steel, 1.5mm thickness', 'batch_tracked': True, 'is_sellable': False,
            'purchase_uom': 'sheet', 'purchase_uom_conversion_rate': 2.0, 'configs': [{'id': 1,
            'name': 'Grade', 'values': ['304', '316'], 'material_id': 1}, {'id': 2, 'name':
            'Thickness', 'values': ['1.5mm', '2.0mm', '3.0mm'], 'material_id': 1}], 'variants':
            [{'sku': 'STEEL-304-1.5MM', 'sales_price': 65.0, 'purchase_price': 45.0, 'lead_time': 5,
            'minimum_order_quantity': 1, 'config_attributes': [{'config_name': 'Grade',
            'config_value': '304'}, {'config_name': 'Thickness', 'config_value': '1.5mm'}]}]}.

    Raises:
        errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
        httpx.TimeoutException: If the request takes longer than Client.timeout.


    Returns:
        Response[Union[DetailedErrorResponse, ErrorResponse, Material]]
    """

    kwargs = _get_kwargs(
        body=body,
    )

    response = client.get_httpx_client().request(
        **kwargs,
    )

    return _build_response(client=client, response=response)