Customization via Attributes

Attributes are used in the fulfillmenttools platform in order to impose a certain degree of customization to a process, such as improving the appearance in the platform and clients. Currently, we support these different categories of attributes:

CategoryComment

descriptive

key and value are shown in our Clients, like the App or the Backoffice, below the line item. They can be used to beef up the displayed data in order to ease processing, e.g. the packaging type or a storage location.

pickingSequence

defines the sequence how line items are ordered during picking.

miscellaneous (default)

this attribute is currently not used by the fulfillmenttools clients. Exception with key BRANDS, see info box below.

this attribute has keys like 'valuePerUnit', 'hsCode' and 'currency'. Other keys are possible for this attribute.

this attribute is for insurance related data and can have keys like 'valuePerUnit' and 'currency'.

shop

this attribute is for customer shop price and can have keys like 'valuePerUnit' and 'currency'.

this attribute is for dimensions and has keys 'weightPerUnit', 'height', 'width', 'length'.

The special key %%subtitle%% can be used to show the descriptive attribute directly below the line item in our clients.

The special key BRAND (miscellaneous attribute) can be used to add the information about the brand of the product. This enables filtering and searching by the brand in the Backoffice.

The special key %%weightPerUnit%% must be greater than zero.

The special key %%valuePerUnit%% must be greater or equal to zero.

The special key %%hsCode%% must be string and cannot be empty. Using an 8-digit HS code is recommended.

With the priority property you can order the respective attribute category. The lower the value the higher is the priority, e.g. priority 1 is higher than priority 10. Attributes that have the highest priority might be selected for display in different articles in our clients. The smallest allowed value is 1, the maximum allowed value is 1000. Default Value is 1001.

For categories 'customs', 'insurance', 'shop' and 'dimensions', it is mandatory to fill a new field called type. This field shows the type of the key. The type can be CURRENCY (validation ISO-4217), NUMBER or STRING. For other categories field type is optional.

When several currency keys are declared in attributes, all must just refer to one value, for example only 'USD' or 'EUR'. Using different currencies within the same attribute set is not valid.

Example

When you create an order you can add attributes as ArticleAttributeItems on the article within the line items. Let's assume, that we want to display the brand of the article as subtitle and other product information in the fulfillmenttools apps. This could be the line item which you add to the order:

{
  "quantity": 2,
  "article": {
    "tenantArticleId": "111222333",
    "title": "T-Shirt",
    "imageUrl": "https://loremflickr.com/320/240/shirt",
    "attributes": [
      {
        "key": "%%subtitle%%",
        "value": "Super Brand",
        "category": "descriptive",
        "priority": 100
      },
      {
        "key": "Color",
        "value": "white",
        "category": "descriptive",
        "priority": 101
      },
      {
        "key": "Size",
        "value": "M",
        "category": "descriptive",
        "priority": 102
      }
    ]
  }
}

These attributes are going to show in the clients like this:

A full working example creating an order using attributes can be found here: Click and Collect Orders

Attribute Inheritance

Attributes are inherited during creation of entities within the fulfillmenttools platform. If you supply attributes to order line items the pickjobs are also going to have these attributes. In general, all subsequent entities are going to inherit these attributes. If you additionally supply attributes to listings, these are going to be taken as a fallback.

Limitations

Attributes are supplied as lists. The attributes field has a limit of 15360 chars in total (the whole object serialized as string). This approximately corresponds to 15 attributes with around 1024 chars each. You get an error 400 if you try to create or update an entity which exceeds this limits.

Last updated