LogoLogo
  • Welcome to Akinon Documentation
  • Products
    • ACC
    • Omnitron
    • Commerce
    • Order Management System (OMS)
    • Instore
    • Integrator
    • Marketplace Dashboard (MPD)
    • Project Zero (PZ)
    • Seller Center
    • Akifast
    • App Maker
  • API Reference
    • Welcome to Akinon API Reference
  • Omnitron
    • Getting Started
    • Integration
      • Product
        • Product
        • Pre-Product
        • Attribute
        • Attribute Value
        • Attribute Set
        • Product Image
      • Price
        • Price List
        • Product Price
        • Currency Unit Table
      • Stock
        • Stock List
        • Product Stock
      • Order
        • Get Orders
        • Search Order
        • Get Order Detail by Order Number
        • Get Order Item Detail
        • Orders ID Detail Integration
        • Orders Waiting to Send to ERP
        • Update Order and Order Item
        • Stock Reservation Release
        • Order Cancellation
        • Cancellation & Refund Pending Orders
        • Order Discount Items
        • Order Status Codes & Cancellation Statuses
      • Migration
        • Getting Started
        • User Migration
        • Address Migration
        • Old Order Migration
        • Old Order Item Migration
        • View Migration Progress
        • Currency Options
    • PIM
      • Attributes & Sets
      • Mapping
      • Localization
      • Media
    • Catalogue
      • Introduction
      • Price List
      • Stock List
      • Catalogue Item
      • Category Trees
      • Product Collection
      • Product Sorting
    • Channels
      • Introduction
      • Payments
      • Customers
    • Order
      • Getting Started
      • Fulfillment
      • Cancellations & Refunds
    • Retail Stores
      • Retail Stores
    • User Management
      • Roles & Permissions
      • Add & Remove
    • Whippy Ware
      • Introduction
      • Stock
      • Stock Lists
      • Stock List Rules
      • Stock Providers
      • Stock Locations
  • Omnitron OpenAPIs
    • Without Server
      • Customers
      • Reporting
      • Deleted Items
      • Pos
      • AttributeValues
      • Attribute Values
      • Providers
      • LDAPProviders
      • Healthcheck
      • LoyaltyTransactions
      • Policies
      • Exports
      • Dashboard
      • AuthTOTP
      • Price Lists
      • ProductPrices
      • Districts
      • Cities
      • Countries
      • Townships
      • PrometheusMetrics
      • Language
      • Content Types
      • Mappings
      • Applications
      • ApplicationPermissions
      • Error Reports
      • MailTemplates
      • UploadLogo
      • SalesChannelMarketPlaceAttributeSetConfig
      • SalesChannelCancellationRequestImage
      • SalesChannelCities
      • SalesChannelCancellationReasons
      • SalesChannelCargoCompany
      • SalesChannelProductImage
      • SalesChannelAttributeConfig
      • SalesChannelAttributeValueConfig
      • SalesChannelTownships
      • SalesChannelCustomers
      • SalesChannelFailedIntegrations
      • SalesChannelGetStockList
      • SalesChannelRetailStore
      • IntegrationActions
      • SalesChannelOrderShippingInfo
      • SalesChannelBatchRequests
      • SalesChannelAddresses
      • SalesChannelMarketPlaceAttributeSet
      • SalesChannelErrorReports
      • SalesChannelCategoryNodes
      • SalesChannelDistricts
      • SalesChannelProductStock
      • SalesChannelExtraProductStock
      • SalesChannelOrders
      • SalesChannelCancellationPlans
      • SalesChannelExtraProductPrices
      • SalesChannelProduct
      • SalesChannelAttributeSchemas
      • SalesChannelProductCategories
      • SalesChannelCancellationRequests
      • SalesChannelMarketPlaceAttributeValue
      • SalesChannelMappedProduct
      • SalesChannelMarketPlaceAttribute
      • SalesChannelOrderItem
      • SalesChannelProductPrice
      • SalesChannelCreateOrder
      • GetPriceList
      • SalesChannelCountries
      • SalesChannelGetPriceList
      • SalesChannelCategoryTree
    • With Server
      • Customers
      • Reporting
      • Deleted Items
      • Pos
      • AttributeValues
      • Attribute Values
      • Providers
      • LDAPProviders
      • Healthcheck
      • LoyaltyTransactions
      • Policies
      • Exports
      • Dashboard
      • AuthTOTP
      • Price Lists
      • ProductPrices
      • Districts
      • Cities
      • Countries
      • Townships
      • PrometheusMetrics
      • Language
      • Mappings
      • Content Types
      • Applications
      • ApplicationPermissions
      • Error Reports
      • MailTemplates
      • UploadLogo
      • SalesChannelMarketPlaceAttributeSetConfig
      • SalesChannelCancellationRequestImage
      • SalesChannelCities
      • SalesChannelCancellationReasons
      • SalesChannelCargoCompany
      • SalesChannelProductImage
      • SalesChannelAttributeConfig
      • SalesChannelAttributeValueConfig
      • SalesChannelTownships
      • SalesChannelCustomers
      • SalesChannelFailedIntegrations
      • SalesChannelGetStockList
      • IntegrationActions
      • SalesChannelRetailStore
      • SalesChannelOrderShippingInfo
      • SalesChannelBatchRequests
      • SalesChannelAddresses
      • SalesChannelMarketPlaceAttributeSet
      • SalesChannelErrorReports
      • SalesChannelDistricts
      • SalesChannelCategoryNodes
      • SalesChannelProductStock
      • SalesChannelExtraProductStock
      • SalesChannelCountries
      • SalesChannelOrders
      • SalesChannelProduct
      • SalesChannelCancellationPlans
      • SalesChannelExtraProductPrices
      • SalesChannelProductCategories
      • SalesChannelAttributeSchemas
      • SalesChannelCancellationRequests
      • SalesChannelMarketPlaceAttributeValue
      • SalesChannelMappedProduct
      • SalesChannelMarketPlaceAttribute
      • SalesChannelOrderItem
      • SalesChannelProductPrice
      • SalesChannelCreateOrder
      • GetPriceList
      • SalesChannelGetPriceList
      • SalesChannelCategoryTree
  • Commerce
    • Users
      • Getting Started
      • User Management & Authentication
      • Password & OTP Operations
      • User Profile & Segment Management
      • User Payment & Card Management
      • User Orders & Cancellations
      • Anonymous User Orders & Cancellations
      • User Support & Conversation
      • Captcha Validation
      • Currency & Akifast Operations
    • Checkout
      • Payment Related
      • Payment Strategy Related
      • Shipping Related
      • Independent Pages
    • Product
    • User Collections
    • Basket
    • Discount
    • Autocomplete
    • Breadcrumb
    • Pretty URLs
    • Menu
    • Widgets
    • Loyalty Accounts
    • Address Migration
    • Index Configuration
    • Favourite Products
    • User Address
    • Data Warehouse
    • Introduction
      • Filtering Parameters
    • Data Warehouse
    • Default
  • OMS
    • Package Services
    • Package Item Services
    • Package Denial Reason Services
    • Order Services
    • Order Item Services
    • Transfer Order Services
    • Transfer Item Services
    • Channel Services
    • Cancellation Plan Services
    • Cancellation Reason Services
    • Address Setup Services
    • City Services
    • District Services
    • Township Services
    • Stock Location Address Services
    • Webhook Setup Services
    • Webhook Event Services
    • Omnitron Order Webhooks
    • Undelivered Webhook Event Services
    • Inventory Discrepancy Services
    • OMS Setup Services
    • UI Settings Services
    • OMS Audit Events Service
    • Customer Address Services
    • Application Settings Services
    • Content Type Services
    • Customer Services
    • Channel Setup Services
    • Demo Data Service
    • Order Execution Plan Services
    • Invoice Services
    • Localization Services
    • Action Log Services
    • Order Log Services
    • Celery Metrics Service
    • Stock Location Services
    • Stock Location Address Services
    • Stock Location Sender Address Services
    • Stock Location Sender Address Setup Services
    • Cargo Company Condition Services
    • Permission Group Services
  • OMS OpenAPIs
    • Package Services
      • Default
  • Instore
    • Password Reset Services
  • Integrator
    • Projects
    • Flows
    • Logs
  • Seller Center
    • Languages
    • Categories
    • Introduction
    • Products
    • Packages
    • Orders
    • Claims
    • Shipping Methods
  • Akifast
    • Authentication
  • B2B
    • Quotation
    • Basket
    • Division
    • User
    • Staff User
    • Groups
    • Notification
    • Notification Template
  • Flows
    • Shipment Flows
    • Payment Flows
    • SMS Flows
    • Basket Offer Flows
Powered by GitBook

© 2025 Akinon. All rights reserved.

On this page
  • GET Attributes
  • Attribute API Methods
  • GET Attributes by Attribute Data Type
  • POST Create Attribute
  • DELETE Attribute
  • GET Attribute
  • PATCH Update Attribute
  • PUT Update Attribute
  • GET Attributes Details
  • GET Attribute Detail
  • GET Attribute Translations
  • Attribute Set API Methods
  • GET Attribute Sets
  • GET Attribute Sets by Attribute Set Type
  • POST Create Attribute Set
  • DELETE Attribute Set
  • GET Attribute Set
  • PATCH Update Attribute Set
  • PUT Update Attribute Set
  • GET Attribute Sets Details
  • GET Attribute Set Detail by Attribute Set Type
  • GET Attribute Set Detail
  • Attribute Config API Methods
  • GET Attribute Configs
  • GET Attribute Config by Attribute
  • POST Create Attribute Config
  • DELETE Attribute Config
  • GET Attribute Config
  • PATCH Update Attribute Config
  • PUT Update Attribute Config
  • GET Attribute Configs Details
  • GET Attribute Config Detail
  • Attribute Value API Methods
  • GET Attribute Values
  • POST Create Attribute Value
  • GET Attribute Value
  • PATCH Update Attribute Value
  • PUT Update Attribute Value
  • DELETE Attribute Value
  • GET Attribute Values Details
  • GET Attribute Value Detail
  • GET Attribute Value Translations

Was this helpful?

  1. Omnitron
  2. PIM

Attributes & Sets

The following four items will be discussed within the scope of product attributes.

  1. Attribute

  2. AttributeSet

  3. AttributeConfig

  4. AttributeValue

During the initial installation of Omnitron, product attributes, namely Attribute values, are created before the products themselves. AttributeSet values are created to keep these attribute values together. AttributeConfigs are then added to link Attributes and AttributeSets. Attributes and AttributeSets are linked completely through AttributeConfig, as there is no direct relation between them. Finally, an AttributeValue is added for each Attribute.

1. Attribute

Indicates product attributes. Product properties, such as size, color, etc. are called Attributes. Attributes AttributeInputTypes {omnicore.products.enums.AttributeInputTypes} can have the following types: text, boolean, dropdown etc. Attribute values of products not productized are controlled with the pre_attribute: bool value, while the attribute values of a product marked as pre_product will be pre_attibute=True. Attribute objects are multilingual and can be localized.

2. AttributeSet

Multiple Attributes form an AttributeSet. For example, the size and color of a product created for clothing will be the AttributeSet collectively belonging to the clothing products. AttributeSet may be of two different types: simple and grouped, as specified in AttributeSetType {omnicore.products.enums.AttributeSetTypes}.

3. AttributeConfig

AttributeConfig is a bridge between Attribute and AttributeSet, and singular between the two properties. It means that there can only be one AttributeConfig between Attribute and AttributeSet.

4. AttributeValue

Values of the product’s attributes. If a garment size is Attribute, sizes such as X, M, L and XL are AttributeValue. AttributeValue objects are multilingual and can be localized.

GET Attributes

Path: /api/v1/attributes/

Brings the attribute values from the Attribute table. Gets the filter parameters with {omnitron.products.resources.filters.AttributeFilter} in AttributeFilter as query parameters. Supports pagination with ViewSet’s inheritance from ListModelMixin with query parameters of page=X and limit=Y.

AttributeFilter

Used in listing operations with GET used in AttributeViewSet. It can get the following parameters as a filter.

  • data_type: Contains Attribute type, takes AttributeInputTypes enum values. It allows multiple selections. E.g: /?data_type=X&data_type=Y

  • key: The code for the Attribute, requires an exact match.

  • name:The namespace for the Attribute. It only needs to contain this value and works as case-sensitive.

  • is_required: Takes True/False value.

  • is_searchable: Takes True/False value.

  • is_variant: Takes True/False value.

  • is_variant_listable: Takes True/False value.

  • is_visible: Takes True/False value.

Attribute API Methods

GET Attributes by Attribute Data Type

Path: api/v1/attributes/?data_type=text/

{
  "count": 52,
  "next": "https://{customer_omnitron_url}/api/v1/attributes/?data_type=text&limit=20&page=2",
  "previous": null,
  "results": [
    {
      "pk": 995,
      "key": "max_installment",
      "data_type": "text",
      "default_value": null,
      "is_required": false,
      "is_visible": true,
      "is_searchable": false,
      "is_filterable": false,
      "is_variant": false,
      "is_variant_listable": false,
      "name": "max_installment",
      "is_form_required": false,
      "is_form_field_required": false,
      "erp_code": "max_installment",
      "pre_attribute": false,
      "description": "max_installment",
      "is_localizable": false,
      "entity_type": 1
      "modified_date": "2022-11-24T08:53:33.341501Z",
      "created_date": "2021-02-23T08:44:48.034000Z",

    }
  ]
}

POST Create Attribute

Path: api/v1/attributes/

Adds a new record to the Attribute table. It is validated with AttributeSerializer. If the data is not suitable, it returns HTTP400. If there is an error or non-compliance in the service layer during the recording process, it returns HTTP406.

{
    "key": "test",
    "data_type": "dropdown",
    "is_required": false,
    "is_visible": true,
    "is_searchable": false,
    "is_filterable": false,
    "is_variant": false,
    "is_variant_listable": false,
    "name": "Test Dropdown",
    "is_form_required": false,
    "is_form_field_required": false,
    "erp_code": "erp_test",
    "pre_attribute": false,
    "is_localizable": false
}

Response

{
    "pk": 1325,
    "key": "test",
    "data_type": "dropdown",
    "default_value": null,
    "is_required": false,
    "is_visible": true,
    "is_searchable": false,
    "is_filterable": false,
    "is_variant": false,
    "is_variant_listable": false,
    "name": "Test Dropdown",
    "is_form_required": false,
    "is_form_field_required": false,
    "erp_code": "erp_test",
    "pre_attribute": false,
    "description": null,
    "is_localizable": false,
    "modified_date": "2023-01-04T19:21:28.149803Z",
    "created_date": "2023-01-04T19:21:28.149784Z",
    "entity_type": 1
}

Errors

{
    "key": [
        "attribute with this key already exists."
    ]
}
-- OR
{
    "non_field_errors": "(erp_code:erp_gender) already exists",
    "error_code": "attribute_200_1"
}

DELETE Attribute

Path: /api/v1/attributes/{pk}/

Deletes the object of the relevant primary key from the Attribute table. If it cannot find the object, it returns HTTP404.

Response

HTTP204

GET Attribute

Path: /api/v1/attributes/{pk}/

Gets the object of the relevant primary key from the Attribute table. If it cannot find the object, it returns HTTP404.

Response

{
    "pk": 995,
    "key": "max_installment",
    "data_type": "text",
    "default_value": null,
    "is_required": false,
    "is_visible": true,
    "is_searchable": false,
    "is_filterable": false,
    "is_variant": false,
    "is_variant_listable": false,
    "name": "max_installment",
    "is_form_required": false,
    "is_form_field_required": false,
    "erp_code": "max_installment",
    "pre_attribute": false,
    "description": "max_installment",
    "is_localizable": false
}

PATCH Update Attribute

Path: /api/v1/attributes/{pk}/

Partially updates the object of the relevant primary key from the Attribute table. It is validated with AttributeSerializer. If the data is not suitable, it returns HTTP400. If it cannot find the object, it returns HTTP404. With a partial update behavior, it only updates the sent parameters.

Body

{
    "name": "Test Dropdown 1"
}

Response

{
    "pk": 63,
    "key": "test",
    "data_type": "dropdown",
    "default_value": null,
    "is_required": false,
    "is_visible": true,
    "is_searchable": false,
    "is_filterable": false,
    "is_variant": false,
    "is_variant_listable": false,
    "name": "Test Dropdown 1",
    "is_form_required": false,
    "is_form_field_required": false,
    "erp_code": "test",
    "pre_attribute": false,
    "description": null,
    "modified_date": "2023-01-04T19:24:56.538441Z",
    "created_date": "2023-01-04T19:21:28.149784Z",
    "entity_type": 1,
    "is_localizable": false
}

Errors

{
    "key": [
        "You can only use lowercase and uppercase letters in English alphabet, digits and underscores."
    ]
}
-- OR
{
    "data_type": [
        "No matching type."
    ]
}
-- OR
{
    "non_field_errors": "Data Type can not be updated.",
    "error_code": "attribute_200_5"
}
-- OR
{
    "non_field_errors": [
        "is_localizable field cannot be True when Attribute data_type is not one of text or text_area."
    ]
}

PUT Update Attribute

Path: /api/v1/attributes/{pk}/

Updates the object of the relevant primary key from the Attribute table. It is validated with AttributeSerializer. If the data is not suitable, it returns HTTP400. If it cannot find the object, it returns HTTP404. With an update behavior, it updates the entire object.

GET Attributes Details

Path: /api/v1/attributes/detailed/

Exhibits the same behavior as Attribute listing, but the return parameters are more detailed. The data_type and visible_values fields are retrieved in detail.

Response

{
  "count": 52,
  "next": "https://{customer_omnitron_url}/api/v1/attributes/detailed/?page=2",
  "previous": null,
  "results": [
    {
      "pk": 995,
      "key": "max_installment",
      "data_type": {
        "value": "text",
        "label": "Text"
      },
      "default_value": null,
      "is_required": false,
      "is_visible": true,
      "is_searchable": false,
      "is_filterable": false,
      "is_variant": false,
      "is_variant_listable": false,
      "name": "max_installment",
      "is_form_required": false,
      "is_form_field_required": false,
      "erp_code": "max_installment",
      "pre_attribute": false,
      "description": "max_installment",            
      "modified_date": "2017-01-21T14:54:14.364000Z",
      "created_date": "2016-12-14T15:01:20.124000Z",
      "entity_type": 1,
      "visible_values": []
    }
  ]
}

GET Attribute Detail

Path: /api/v1/attributes/{pk}/detailed/

Exhibits the same behavior as getting Attributes, but the return parameters are more detailed. The data_type and visible_values fields are retrieved in detail.

Response

{
  "pk": 269,
  "key": "forbidden",
  "data_type": {
    "value": "bool",
    "label": "Boolean"
  },
  "default_value": null,
  "is_required": false,
  "is_visible": false,
  "is_searchable": true,
  "is_filterable": true,
  "is_variant": false,
  "is_variant_listable": false,
  "name": "forbidden",
  "is_form_required": false,
  "is_form_field_required": false,
  "erp_code": "forbidden",
  "pre_attribute": false,
  "description": null,
  "modified_date": "2017-01-21T14:54:14.364000Z",
  "created_date": "2016-12-14T15:01:20.124000Z",
  "entity_type": 1,
  "visible_values": [
    {
      "pk": 3852,
      "attribute": 269,
      "value": "no",
      "order": null,
      "label": null,
      "erp_code": "false"
    },
    {
      "pk": 3851,
      "attribute": 269,
      "value": "yes",
      "order": null,
      "label": null,
      "erp_code": "true"
    }
  ]
}

GET Attribute Translations

Path: /api/v1/attributes/{pk}/translations/

Brings the recorded localization values for the Attribute. Only the "name" parameter can be localized for the Attribute.

Response

{
    "translations": {
        "fr-fr": {
            "name": "Taille"
        },
        "ar": {
            "name": "بحجم"
        },
        "tr-tr": {
            "name": "Beden"
        }
    }
}

Attribute Set API Methods

GET Attribute Sets

Path: /api/v1/attribute_set/

Brings the attribute values from the AttributeSet table. Gets the filter parameters in AttributeSetFilter {omnitron.products.resources.filters.AttributeSetFilter} as query parameters. Supports pagination with ViewSet’s inheritance from ListModelMixin with query parameters of page=X and limit=Y.

AttributeSetFilter

Used in listing operations with GET used in AttributeSetViewSet. It can get the following parameters as a filter.

  • attribute_set_type: Contains AttributeSet type, takes AttributeSetTypes enum values.

  • name: The namespace for the AttributeSet. It only needs to contain this value and works as case-sensitive.

GET Attribute Sets by Attribute Set Type

Filters can be used with GET requests as follows.

Path: api/v1/attribute_set/?attribute_set_type=simple/

Response

{
  "count": 51,
  "next": "https://{customer_omnitron_url}/api/v1/attribute_set/?attribute_set_type=simple&page=2",
  "previous": null,
  "results": [
    {
      "pk": 842,
      "name": "testacc1",
      "attribute_set_type": "simple",
      "attributeconfig_set": [
        {
          "pk": 3148,
          "attribute": 303,
          "attribute_set": 842,
          "is_required": false,
          "is_visible": true,
          "is_searchable": true,
          "is_filterable": true,
          "is_variant": false,
          "is_variant_listable": false,
          "default_fields": [
            "is_localizable"
          ],
          "order": 0,
          "is_form_required": false,
          "is_form_field_required": false
        }
      ],
    "description": null,
    "modified_date": "2021-11-10T17:42:33.171630Z",
    "created_date": "2017-01-20T19:02:43.782000Z"
    }
  ]
}

POST Create Attribute Set

Path: /api/v1/attribute_set/

Adds a new record to the AttributeSet table. It is validated with AttributeSetSerializer. If the data is not suitable, it returns HTTP400. If there is an error or non-compliance in the service layer during the recording process, it returns HTTP406.

{
    "name": "TestAttributeSet",
    "attribute_set_type": "simple",
    "description": "Test AttributeSet"
}

Response

{
    "pk": 1040,
    "name": "TestAttributeSet",
    "attribute_set_type": "simple",
    "attributeconfig_set": [],
    "description": "Test AttributeSet",
    "modified_date": "2023-01-05T06:00:48.144781Z",
    "created_date": "2023-01-05T06:00:48.144761Z"
}

Errors

{
    "name": [
        "attribute set with this name already exists."
    ]
}

DELETE Attribute Set

Path: /api/v1/attribute_set/{pk}/

Deletes the object of the relevant primary key from the AttributeSet table. If it cannot find the object, it returns HTTP404.

Response: HTTP204

GET Attribute Set

Path: /api/v1/attribute_set/{pk}/

Gets the object of the relevant primary key from the AttributeSet table. If it cannot find the object, it returns HTTP404.

Response

{
    "pk": 1040,
    "name": "TestAttributeSet",
    "attribute_set_type": "simple",
    "attributeconfig_set": [],
    "description": "Test AttributeSet"
}

PATCH Update Attribute Set

Path: /api/v1/attribute_set/{pk}/

Partially updates the object of the relevant primary key from the AttributeSet table. It is validated with AttributeSetSerializer. If the data is not suitable, it returns HTTP400. If it cannot find the object, it returns HTTP404. With a partial update behavior, it only updates the sent parameters.

Body

{
    "name": "TestAttributeSet1"
}

Response

{
    "pk": 72,
    "name": "TestAttributeSet1",
    "attribute_set_type": "simple",
    "attributeconfig_set": [],
    "description": "Test AttributeSet",
    "modified_date": "2023-01-05T06:02:54.953317Z",
    "created_date": "2023-01-05T06:00:48.144761Z"
}

HTTP 200

Errors

{
    "name": [
        "attribute set with this name already exists."
    ]
}

PUT Update Attribute Set

Path: /api/v1/attribute_set/{pk}/

Updates the object of the relevant primary key from the AttributeSet table. It is validated with AttributeSetSerializer. If the data is not suitable, it returns HTTP400. If it cannot find the object, it returns HTTP404. With an update behavior, it updates the entire object.

Body

{
    "name": "TestAttributeSet2",
    "attribute_set_type": "simple"
}

Response

{
    "name": "TestAttributeSet2",
    "attribute_set_type": "simple",
    "attributeconfig_set": [],
    "description": "Test AttributeSet add new description",
    "modified_date": "2023-01-05T06:14:59.870777Z",
    "created_date": "2023-01-05T06:00:48.144761Z"
}

HTTP 200

Errors

{
    "attribute_set_type": [
        "This field is required."
    ]
}

GET Attribute Sets Details

Path: /api/v1/attribute_set/detailed/

Exhibits the same behavior as AttributeSet listing, but the return parameters are more detailed. It also gets individual Attribute values in "attributeconfig_set."

Response:

{
    "count": 73,
    "next": "http://localhost:8000/api/v1/attribute_set/detailed/?page=2",
    "previous": null,
    "results": [
         {
            "pk": 72,
            "name": "TestAttributeSet2",
            "attribute_set_type": {
                "value": "simple",
                "label": "Simple"
            },
            "attributeconfig_set": [],
            "description": "Test AttributeSet add new description",
            "modified_date": "2023-01-05T06:16:28.507891Z",
            "created_date": "2023-01-05T06:00:48.144761Z"
        }
     ...
     ]
}

GET Attribute Set Detail by Attribute Set Type

Path: api/v1/attribute_set/detailed/?attribute_set_type=simple/

Response

{
  "count": 61,
  "next": "https://{customer_omnitron_url}/api/v1/attribute_set/detailed/?page=2",
  "previous": null,
  "results": [
    {
      "pk": 842,
      "name": "testacc1",
      "attribute_set_type": {
        "value": "simple",
        "label": "Simple"
      },
      "attributeconfig_set": [
        {
          "pk": 3148,
          "attribute": {
            "pk": 303,
            "key": "123",
            "data_type": "dropdown",
            "default_value": null,
            "is_required": false,
            "is_visible": true,
            "is_searchable": true,
            "is_filterable": true,
            "is_variant": false,
            "is_variant_listable": false,
            "name": "12344",
            "is_form_required": false,
            "is_form_field_required": false,
            "erp_code": "1234444",
            "pre_attribute": false,
            "description": null
          },
          "attribute_set": 842,
          "is_required": false,
          "is_visible": true,
          "is_searchable": true,
          "is_filterable": true,
          "is_variant": false,
          "is_variant_listable": false,
          "default_fields": [
            "is_localizable"
          ],
          "order": 0,
          "is_form_required": false,
          "is_form_field_required": false
        },
        {
          "pk": 2923,
          "attribute": {
            "pk": 1128,
            "key": "acctestattribute2",
            "data_type": "dropdown",
            "default_value": 4911,
            "is_required": true,
            "is_visible": true,
            "is_searchable": true,
            "is_filterable": true,
            "is_variant": true,
            "is_variant_listable": true,
            "name": "acctestattribute2",
            "is_form_required": false,
            "is_form_field_required": false,
            "erp_code": "acctestattribute2",
            "pre_attribute": false,
            "description": "acctestattribute2"
          },
          "attribute_set": 842,
          "is_required": true,
          "is_visible": true,
          "is_searchable": true,
          "is_filterable": true,
          "is_variant": true,
          "is_variant_listable": true,
          "default_fields": [
            "is_localizable"
          ],
          "order": 2,
          "is_form_required": false,
          "is_form_field_required": false
        }
      ],
      "description": null,
      "modified_date": "2023-01-05T06:16:28.507891Z",
      "created_date": "2023-01-05T06:00:48.144761Z"

    }
  ]
}

GET Attribute Set Detail

Path: /api/v1/attribute_set/{pk}/detailed/

Exhibits the same behavior as getting AttributeSets, but the return parameters are more detailed. It also gets individual Attribute values in "attributeconfig_set."

Response

{
  "pk": 1040,
  "name": "TestAttributeSet",
  "attribute_set_type": {
    "value": "simple",
    "label": "Simple"
  },
  "attributeconfig_set": [],
  "description": "Test AttributeSet"
}

Attribute Config API Methods

GET Attribute Configs

Path: /api/v1/attribute_config/

Gets the values in the AttributeConfig table. Gets the filter parameters with {omnitron.products.resources.filters.AttributeConfigFilter} in AttributeConfigFilter as query parameters. Supports pagination with ViewSet’s inheritance from ListModelMixin with query parameters of page=X and limit=Y.

AttributeConfigFilter

Used in listing operations with GET used in AttributeConfigViewSet. It can get the following parameters as a filter.

  • attribute: pk value of the relevant Attribute object.

  • attribute_set: pk value of the relevant AttributeSet object.

GET Attribute Config by Attribute

Path: api/v1/attribute_config/?attribute={pk}

Response

{
  "count": 14,
  "next": "https://{customer_omnitron_url}/api/v1/attribute_config/?attribute=303&page=2",
  "previous": null,
  "results": [
    {
      "pk": 1300,
      "attribute": 303,
      "attribute_set": 3,
      "is_required": false,
      "is_visible": true,
      "is_searchable": true,
      "is_filterable": true,
      "is_variant": false,
      "is_variant_listable": false,
      "default_fields": [
        "is_localizable"
      ],
      "order": 0,
      "is_form_required": false,
      "is_form_field_required": false,
      "modified_date": "2018-08-15T12:12:19.394963Z",
      "created_date": "2017-01-21T16:47:12.115000Z",
      "is_localizable": false

    }
  ]
}

POST Create Attribute Config

Path: /api/v1/attribute_config/

Adds a new record to the AttributeConfig table. It is validated with AttributeConfigSerializer. If the data is not suitable, it returns HTTP400. If there is an error or non-compliance in the service layer during the recording process, it returns HTTP406.

Body

{
    "attribute": 995,
    "attribute_set": 842,
    "is_required": false,
    "is_visible": true,
    "is_searchable": true,
    "is_filterable": true,
    "is_variant": false,
    "is_variant_listable": false,
    "is_form_required": false,
    "is_form_field_required": false
}

Response

{
    "pk": 2447,
    "attribute": 1,
    "attribute_set": 72,
    "is_required": false,
    "is_visible": true,
    "is_searchable": true,
    "is_filterable": true,
    "is_variant": false,
    "is_variant_listable": false,
    "default_fields": [
        "is_localizable"
    ],
    "order": 0,
    "is_form_required": false,
    "is_form_field_required": false,
    "modified_date": "2023-01-05T06:26:12.416073Z",
    "created_date": "2023-01-05T06:26:12.416053Z",
    "is_localizable": false
}

Errors

{
    "attribute": [
        "Invalid pk \"995\" - object does not exist."
    ],
    "attribute_set": [
        "Invalid pk \"842\" - object does not exist."
    ]
}
-- OR
{
  "code": "attribute_config_203_5",
  "en": "Multiple type attribute cannot assign to an attribute set"
}
-- OR
{
    "non_field_errors": [
        "The fields attribute, attribute_set must make a unique set."
    ]
}
-- OR
{
    "code": "attribute_config_203_3",
    "en": "Attribute config custom attribute set validation error. Custom attribute set doesn't accept variant attribute"
}
-- OR
{
    "code": "attribute_config_203_4",
    "en": "This attribute cannot exist in custom attribute set and attribute set"
}

DELETE Attribute Config

Path: /api/v1/attribute_config/{pk}/

Deletes the object of the relevant primary key from the AttributeConfig table. If it cannot find the object, it returns HTTP404.

Response: HTTP204

GET Attribute Config

Path: /api/v1/attribute_config/{pk}/

Gets the object of the relevant primary key from the AttributeSet table. If it cannot find the object, it returns HTTP404.

Response

{
    "pk": 3247,
    "attribute": 995,
    "attribute_set": 842,
    "is_required": false,
    "is_visible": true,
    "is_searchable": true,
    "is_filterable": true,
    "is_variant": false,
    "is_variant_listable": false,
    "default_fields": ["is_localizable"],
    "order": 5,
    "is_form_required": false,
    "is_form_field_required": false
}

PATCH Update Attribute Config

Path: /api/v1/attribute_config/{pk}/

Partially updates the object of the relevant primary key from the AttributeConfig table. It is validated with AttributeConfigSerializer. If the data is not suitable, it returns HTTP400. If it cannot find the object, it returns HTTP404. With a partial update behavior, it only updates the sent parameters.

Body

{
    "is_visible": true
}

Response

{
    "pk": 2447,
    "attribute": 1,
    "attribute_set": 72,
    "is_required": false,
    "is_visible": true,
    "is_searchable": true,
    "is_filterable": true,
    "is_variant": false,
    "is_variant_listable": false,
    "default_fields": [
        "is_localizable"
    ],
    "order": 0,
    "is_form_required": false,
    "is_form_field_required": false,
    "modified_date": "2023-01-05T06:34:27.218889Z",
    "created_date": "2023-01-05T06:26:12.416053Z",
    "is_localizable": false
}

Errors

{
    "attribute_set": [
        "Invalid pk \"700\" - object does not exist."
    ]
}
-- OR
{
    "attribute": [
        "Invalid pk \"10000\" - object does not exist."
    ]
}
-- OR
{
    "non_field_errors": [
        "The fields attribute, attribute_set must make a unique set."
    ]
}
-- OR
{
    "non_field_errors": "Attribute config custom attribute set validation error. Custom attribute set doesn't accept variant attribute",
    "error_code": "attribute_config_203_3"
}

PUT Update Attribute Config

Path /api/v1/attribute_config/{pk}/

Updates the object of the relevant primary key from the AttributeConfig table. It is validated with AttributeConfigSerializer. If the data is not suitable, it returns HTTP400. If it cannot find the object, it returns HTTP404. With an update behavior, it updates the entire object.

Body

{
    "attribute": 1,
    "attribute_set": 72,
    "is_required": false,
    "is_visible": true,
    "is_searchable": true,
    "is_filterable": true,
    "is_variant": true,
    "is_variant_listable": false,
    "is_form_required": false,
    "is_form_field_required": false
}

Response

{
    "pk": 2447,
    "attribute": 1,
    "attribute_set": 72,
    "is_required": false,
    "is_visible": true,
    "is_searchable": true,
    "is_filterable": true,
    "is_variant": true,
    "is_variant_listable": false,
    "default_fields": [
        "is_localizable"
    ],
    "order": 0,
    "is_form_required": false,
    "is_form_field_required": false,
    "modified_date": "2023-01-05T07:12:55.475601Z",
    "created_date": "2023-01-05T06:26:12.416053Z",
    "is_localizable": false
}

Errors

{
    "is_visible": [
        "This field is required."
    ],
    "is_variant_listable": [
        "This field is required."
    ],
    "attribute": [
        "This field is required."
    ],
    "is_form_required": [
        "This field is required."
    ],
    "is_filterable": [
        "This field is required."
    ],
    "is_searchable": [
        "This field is required."
    ],
    "is_form_field_required": [
        "This field is required."
    ],
    "attribute_set": [
        "This field is required."
    ],
    "is_required": [
        "This field is required."
    ]
}

GET Attribute Configs Details

Path: /api/v1/attribute_config/detailed/

Exhibits the same behavior as AttributeSet listing, but the return parameters are more detailed. Gets the associated attribute value in detail.

Response

{
  "count": 14,
  "next": "https://{customer_omnitron_url}/api/v1/attribute_config/detailed/?attribute=303&page=2",
  "previous": null,
  "results": [
    {
      "pk": 1300,
      "attribute": {
        "pk": 303,
        "key": "123",
        "data_type": "dropdown",
        "default_value": null,
        "is_required": false,
        "is_visible": true,
        "is_searchable": true,
        "is_filterable": true,
        "is_variant": false,
        "is_variant_listable": false,
        "name": "12344",
        "is_form_required": false,
        "is_form_field_required": false,
        "erp_code": "1234444",
        "pre_attribute": false,
        "description": null
      },
      "attribute_set": 3,
      "is_required": false,
      "is_visible": true,
      "is_searchable": true,
      "is_filterable": true,
      "is_variant": false,
      "is_variant_listable": false,
      "default_fields": [
        "is_localizable"
      ],
      "order": 0,
      "is_form_required": false,
      "is_form_field_required": false
    }
  ],
  "modified_date": "2022-12-29T11:26:06.800700Z",
  "created_date": "2022-12-29T11:26:06.800693Z",
  "is_localizable": false
}

GET Attribute Config Detail

Path: /api/v1/attribute_config/{pk}/detailed/

Exhibits the same behavior as getting AttributeConfigs, but the return parameters are more detailed. Gets the associated attribute value in detail.

Response

{
  "pk": 1300,
  "attribute": {
    "pk": 303,
    "key": "123",
    "data_type": "dropdown",
    "default_value": null,
    "is_required": false,
    "is_visible": true,
    "is_searchable": true,
    "is_filterable": true,
    "is_variant": false,
    "is_variant_listable": false,
    "name": "12344",
    "is_form_required": false,
    "is_form_field_required": false,
    "erp_code": "1234444",
    "pre_attribute": false,
    "description": null
  },
  "attribute_set": 3,
  "is_required": false,
  "is_visible": true,
  "is_searchable": true,
  "is_filterable": true,
  "is_variant": false,
  "is_variant_listable": false,
  "default_fields": [
    "is_localizable"
  ],
  "order": 0,
  "is_form_required": false,
  "is_form_field_required": false,
  "modified_date": "2023-01-05T07:12:55.475601Z",
  "created_date": "2023-01-05T06:26:12.416053Z",
  "is_localizable": false
}

Attribute Value API Methods

GET Attribute Values

Path: /api/v1/attribute_value/

Gets the values in the AttributeValue table. Gets the filter parameters in AttributeValueFilter {omnitron.products.resources.filters.AttributeValueFilter} as query parameters. Supports pagination with ViewSet’s inheritance from ListModelMixin with query parameters of page=X and limit=Y.

AttributeValueFilter

Used in listing operations with GET used in AttributeValueViewSet. It can get the following parameters as a filter.

  • label: The title field for the AttributeValue. It only needs to contain this value and works as case-sensitive.

  • erp_code: The erp code field for the AttributeValue. It only needs to contain this value.

  • value: The value field for the AttributeValue. It only needs to contain this value.

  • value__exact: The value field for the AttributeValue. It requires a complete match.

  • attribute: pk value of the relevant Attribute object.

Response

{
  "count": 20,
  "next": "https://{customer_omnitron_url}/api/v1/attribute_value/?attribute=667&page=2",
  "previous": null,
  "results": [
    {
      "pk": 4019,
      "attribute": 667,
      "value": "Beyaz",
      "order": null,
      "label": "White",
      "erp_code": "White",
      "modified_date": "2018-08-15T12:12:22.588620Z",
      "created_date": "2017-01-21T18:46:22.218000Z"

    },
    {
      "pk": 4020,
      "attribute": 667,
      "value": "Bordo",
      "order": null,
      "label": "Claret Red",
      "erp_code": "Claret Red",
      "modified_date": "2018-08-15T12:12:22.588620Z",
      "created_date": "2017-01-21T18:46:22.218000Z"
    }
  ]
}

POST Create Attribute Value

Path: /api/v1/attribute_value/

Adds a new record to the AttributeValue table. It is validated with AttributeValueSerializer. If the data is not suitable, it returns HTTP400. If there is an error or non-compliance in the service layer during the recording process, it returns HTTP406.

{
    "attribute": 995,
    "label": "Test",
    "value": "Test Value",
    "erp_code": "erp_test"
}

Response

{
    "pk": 5072,
    "attribute": 995,
    "value": "Test Value",
    "order": null,
    "label": "Test",
    "erp_code": "erp_test",
    "modified_date": "2023-01-05T07:26:16.974706Z",
    "created_date": "2023-01-05T07:26:16.974689Z"
}

Errors

{
    "attribute": [
        "Invalid pk \"995\" - object does not exist."
    ]
}
-- OR
{
    "non_field_errors": [
        "The fields attribute, value must make a unique set."
    ]
}

-- OR
{
    "non_field_errors": "... already exists",
    "error_code": "attribute_value_201_1"
}

GET Attribute Value

Path: /api/v1/attribute_value/{pk}/

Gets the object of the relevant primary key from the AttributeValue table. If it cannot find the object, it returns HTTP404.

Response

{
    "pk": 5072,
    "attribute": 995,
    "value": "Test Value",
    "order": null,
    "label": "Test",
    "erp_code": "erp_test",
    "modified_date": "2018-08-15T12:12:22.588620Z",
    "created_date": "2017-01-21T18:46:22.218000Z"
}

PATCH Update Attribute Value

Path: /api/v1/attribute_value/{pk}/

Partially updates the object of the relevant primary key from the AttributeValue table. It is validated with AttributeValueSerializer. If the data is not suitable, it returns HTTP400. If it cannot find the object, it returns HTTP404. With a partial update behavior, it only updates the sent parameters.

Body

{
    "label": "Test1"
}

Response

{
    "pk": 976,
    "attribute": 1,
    "value": "Test Value",
    "order": null,
    "label": "Test1",
    "erp_code": "erp_test",
    "modified_date": "2023-01-05T07:33:36.127252Z",
    "created_date": "2023-01-05T07:26:16.974689Z"
}

Errors

{
    "non_field_errors": "... already exists",
    "error_code": "attribute_value_201_1"
}
-- OR
{
    "non_field_errors": ""AttributeValue can not be updated."",
    "error_code": "attribute_value_201_2"
}

PUT Update Attribute Value

Path: /api/v1/attribute_value/{pk}/

Updates the object of the relevant primary key from the AttributeValue table. It is validated with AttributeValueSerializer. If the data is not suitable, it returns HTTP400. If it cannot find the object, it returns HTTP404. With an update behavior, it updates the entire object.

Body

{
    "attribute": 1,
    "label": "Test2",
    "value": "Test Value",
    "erp_code": "erp_test"
}

Response

{
    "pk": 976,
    "attribute": 1,
    "value": "Test Value",
    "order": null,
    "label": "Test2",
    "erp_code": "erp_test",
    "modified_date": "2023-01-05T07:41:09.023560Z",
    "created_date": "2023-01-05T07:26:16.974689Z"
}

Errors

{
    "attribute": [
        "This field is required."
    ],
    "value": [
        "This field is required."
    ],
    "erp_code": [
        "This field is required."
    ]
}

DELETE Attribute Value

Path: /api/v1/attribute_value/{pk}/

Deletes the object of the relevant primary key from the AttributeConfig table. If it cannot find the object, it returns HTTP404.

Response: HTTP204

GET Attribute Values Details

Path: /api/v1/attribute_value/detailed/

Exhibits the same behavior as AttributeValue listing, but the return parameters are more detailed. Gets the associated attribute value in detail.

Response

{
  "count": 20,
  "next": "https://{customer_omnitron_url}/api/v1/attribute_value/detailed/?attribute=667&page=2",
  "previous": null,
  "results": [
    {
      "pk": 4019,
      "value": "White",
      "order": null,
      "label": "White",
      "attribute": {
        "pk": 667,
        "key": "mp_filterable_color",
        "data_type": "dropdown",
        "default_value": 4035,
        "is_required": false,
        "is_visible": true,
        "is_searchable": true,
        "is_filterable": true,
        "is_variant": false,
        "is_variant_listable": false,
        "name": "MP Filtrable Color",
        "is_form_required": false,
        "is_form_field_required": false,
        "erp_code": "mp_filterable_color",
        "pre_attribute": false,
        "description": null,
        "modified_date": "2023-01-05T07:41:09.023560Z",
        "created_date": "2023-01-05T07:26:16.974689Z",
        "entity_type": 1
      },
    },
    {
      "pk": 4020,
      "value": "Claret Red",
      "order": null,
      "label": "Claret Red",
      "attribute": {
        "pk": 667,
        "key": "mp_filterable_color",
                "data_type": "dropdown",
        "default_value": 4035,
        "is_required": false,
        "is_visible": true,
        "is_searchable": true,
        "is_filterable": true,
        "is_variant": false,
        "is_variant_listable": false,
        "name": "MP Filtrable Color",
        "is_form_required": false,
        "is_form_field_required": false,
        "erp_code": "mp_filterable_color",
        "pre_attribute": false,
        "description": null,
        "modified_date": "2023-01-05T07:41:09.023560Z",
        "created_date": "2023-01-05T07:26:16.974689Z",
        "entity_type": 1
      }
    }
  ]
}

GET Attribute Value Detail

Path: /api/v1/attribute_value/{pk}/detailed/

Exhibits the same behavior as getting AttributeValue, but the return parameters are more detailed. Gets the associated attribute value in detail.

Response

{
    "pk": 4019,
    "value": "White",
    "order": null,
    "label": "White",
    "attribute": {
        "pk": 667,
        "key": "mp_filterable_color",
        "data_type": "dropdown",
        "default_value": 4035,
        "is_required": false,
        "is_visible": true,
        "is_searchable": true,
        "is_filterable": true,
        "is_variant": false,
        "is_variant_listable": false,
        "name": "MP Filtrable Color",
        "is_form_required": false,
        "is_form_field_required": false,
        "erp_code": "mp_filterable_color",
        "pre_attribute": false,
        "description": null,
        "modified_date": "2017-01-21T14:54:14.359000Z",
        "created_date": "2016-12-14T14:56:02.160000Z",
        "entity_type": 1
    }
}

GET Attribute Value Translations

Path: /api/v1/attribute_value/{pk}/translations/

Brings the recorded localization values for the AttributeValue. Only the "label" parameter can be localized for the AttributeValue.

Response

{
  "translations": {
    "en-us": {
      "label": "White"
    },
    "tr-tr": {
      "label": "Beyaz"
    }
  }
}
PreviousPIMNextMapping

Last updated 26 days ago

Was this helpful?