Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
stylenone

Introduction

You can add filtering options on some of the store app pages. This facilitates the preparation process by selecting only items from certain brands, certain shelves or certain delivery modes.

A default configuration is applied in the pages, but this configuration can be overridden. To do this, go to the Configuration > Store App > Pages > {Page name} > Filters section.

Configuration structure

The structure is an array of objects, each object corresponding to 1 filter, with the following fields:

  • name (string - mandatory) - Key used to translate the filter, which appears in the format 'filter.{name}.title'.

  • field (string - mandatory) - Path used to access the filter value in the entity structure (ex: order.delivery.type)

  • filter_type (string- optional) - Choice of one of the following three specific filter types.

    • filter_sub_entity - Filters on path sub-entities. If the field is an array, it must be used.

    • different_value_count_is - Filters according to a specific number of values in the field. Is often used for single-line orders.

    • order_type_is - Specific filter for filtering by order type. For this, it is necessary to specify the possible values in the ‘possible_values’ field, the others will be ignored.

  • possible_values(array of objects - optional) Restricts the filter to specific values. All others will be ignored.

    • value (string - mandatory) - One of the filter values.

    • translation key (string - optional) - Translation key for displaying the value.

  • do_not_translate - Display the raw filter value instead of the translation key

Default configuration and overlays examples by page

The pages below provide a default configuration, but they may be overloaded. Examples are given to help.

Page

Default filter

Default JSON format

Overlays examples

Prepare_select

  • Delivery type

Expand
titleDefault config
Code Block
languagejson
[
  {
    "name": "delivery",
    "field": "order.delivery.type"
  }
]
Expand
titleFilter on the delivery mode stored in the order information section
Code Block
languagejson
[
    {
        "field": "order.information.delivery_mode",
        "name": "delivery"
    }
]

Pack_scan

  • Delivery type

Expand
titleDefault config
Code Block
languagejson
[
  {
    "name": "delivery",
    "field": "parcel.order.delivery.type",
    "filter_type": "filter_sub_entity"
  }
]
Expand
titleFilter on the delivery type + the carrier name of the parcel
Code Block
languagejson
[
  {
    "field": "parcel.order.delivery.type",
    "filter_type": "filter_sub_entity",
    "name": "delivery"
  },
  {
    "field": "parcel.delivery.carrier.name",
    "filter_type": "filter_sub_entity",
    "name": "carrier"
  }
]

Bag_scan

  • Single line orders

Expand
titleDefault config
Code Block
languagejson
[
  {
    "name": "monoline",
    "filter_type": "different_value_count_is",
    "field": "content_ids",
    "possible_values": [
      {
        "value": 1,
        "translation_key": "filter.monoline.is_monoline"
      }
    ]
  }
]

N/A

Picking

  • Delivery type

  • Delivery carrier

  • Department feature of items

  • Single line orders

Expand
titleDefault config
Code Block
languagejson
[
  {
    "name": "delivery",
    "field": "order.delivery.type"
  },
  {
    "name": "carrier",
    "field": "order.delivery.carrier.name"
  },
  {
    "name": "departement",
    "filter_type": "filter_sub_entity",
    "do_not_translate": true,
    "field": "item.features.departement.0"
  },
  {
    "name": "monoline",
    "filter_type": "different_value_count_is",
    "field": "item_id",
    "possible_values": [
      {
        "value": 1,
        "translation_key": "filter.monoline.is_monoline"
      }
    ]
  }
]
Expand
titleAdd a filter on the order types (sfs, c&c, ropis)
Code Block
languagejson
[
    {
        "field": "order.delivery.type",
        "name": "delivery"
    },
    {
        "field": "order.delivery.carrier.name",
        "name": "carrier"
    },
    {
        "do_not_translate": true,
        "field": "item.features.departement.0",
        "filter_type": "filter_sub_entity",
        "name": "departement"
    },
    {
        "field": "item_id",
        "filter_type": "different_value_count_is",
        "name": "monoline",
        "possible_values": [
            {
                "translation_key": "filter.monoline.is_monoline",
                "value": 1
            }
        ]
    },
    {
        "field": "order_type",
        "filter_type": "order_type_is",
        "name": "order_type",
        "possible_values": [
            {
                "value": "ffs"
            },
            {
                "value": "ckc"
            },
            {
                "value": "ropis"
            }
        ]
    }
]
Expand
titleAdd new filters on item features (in the example, the size)
Code Block
languagejson
[
    {
        "field": "order.delivery.type",
        "name": "delivery"
    },
    {
        "field": "order.delivery.carrier.name",
        "name": "carrier"
    },
    {
        "do_not_translate": true,
        "field": "item.features.departement.0",
        "filter_type": "filter_sub_entity",
        "name": "departement"
    },
    {
        "field": "item_id",
        "filter_type": "different_value_count_is",
        "name": "monoline",
        "possible_values": [
            {
                "translation_key": "filter.monoline.is_monoline",
                "value": 1
            }
        ]
    },
    {
        "do_not_translate": true,
        "field": "item.features.size.0",
        "filter_type": "filter_sub_entity",
        "name": "size"
    }
]

Consolidation

  • Delivery type

  • Delivery carrier

  • Single line orders

Expand
titleDefault config
Code Block
languagejson
[
  {
    "name": "delivery",
    "field": "order.delivery.type"
  },
  {
    "name": "carrier",
    "field": "order.delivery.carrier.name"
  },
  {
    "name": "monoline",
    "filter_type": "different_value_count_is",
    "field": "item_id",
    "possible_values": [
      {
        "value": 1,
        "translation_key": "filter.monoline.is_monoline"
      }
    ]
  }
]

N/A

Boxing

  • Delivery type

  • Delivery carrier

  • Single line orders

Expand
titleDefault config
Code Block
languagejson
[
  {
    "name": "delivery",
    "field": "order.delivery.type"
  },
  {
    "name": "carrier",
    "field": "order.delivery.carrier.name"
  },
  {
    "name": "monoline",
    "filter_type": "different_value_count_is",
    "field": "item_id",
    "possible_values": [
      {
        "value": 1,
        "translation_key": "filter.monoline.is_monoline"
      }
    ]
  }
]

N/A

Order list

  • Delivery type

  • Delivery carrier

  • Order state

  • Order type

  • Single line orders

Expand
titleDefault config
Code Block
languagejson
[
  {
    "name": "delivery",
    "field": "order.delivery.type"
  },
  {
    "name": "carrier",
    "field": "order.delivery.carrier.name"
  },
  {
    "name": "state",
    "field": "state"
  },
  {
    "name": "order_type",
    "filter_type": "order_type_is",
    "field": "order",
    "possible_values": [
      { "value": "ffs" },
      { "value": "ckc" },
      { "value": "ropis" }
    ]
  },
  {
    "name": "monoline",
    "filter_type": "different_value_count_is",
    "field": "item_id",
    "possible_values": [
      {
        "value": 1,
        "translation_key": "filter.monoline.is_monoline"
      }
    ]
  }
]
Expand
titleRestrict the state filter on specific values
Code Block
languagejson
[
    {
        "field": "order.delivery.type",
        "name": "delivery"
    },
    {
        "field": "order.delivery.carrier.name",
        "name": "carrier"
    },
    {
        "field": "state",
        "name": "state",
        "possible_values": [
            {
                "value": "new"
            },
            {
                "value": "picking"
            },
            {
                "value": "consolidable"
            },
            {
                "value": "consolidating"
            },
            {
                "value": "packable"
            },
            {
                "value": "packing"
            },
            {
                "value": "finish"
            },
            {
                "value": "dispatched"
            }
        ]
    },
    {
        "field": "order",
        "filter_type": "order_type_is",
        "name": "order_type",
        "possible_values": [
            {
                "value": "ffs"
            },
            {
                "value": "ckc"
            },
            {
                "value": "ropis"
            }
        ]
    },
    {
        "field": "item_id",
        "filter_type": "different_value_count_is",
        "name": "monoline",
        "possible_values": [
            {
                "translation_key": "filter.monoline.is_monoline",
                "value": 1
            }
        ]
    }
]

Users

  • Operator state

Expand
titleDefault config
Code Block
languagejson
[
  {
    "name": "state",
    "field": "state",
    "possible_values": [
      {
        "value": "idle",
        "translation_key": "entity_states.operator.idle"
      },
      {
        "value": "picking",
        "translation_key": "entity_states.operator.picking"
      },
      {
        "value": "consolidating",
        "translation_key": "entity_states.operator.consolidating"
      },
      {
        "value": "packing",
        "translation_key": "entity_states.operator.boxing"
      }
    ]
  }
]

N/A

Catalog

  • Color feature

  • Size feature

Note

The available filters in the catalog must appear in the GET/categories API call

Please follow the steps in the example on the right to add a filter.

Expand
titleDefault config
Code Block
languagejson
[
  {
    "name": "color",
    "field": "color",
    "do_not_translate": true
  },
  {
    "name": "size",
    "field": "size",
    "do_not_translate": true
  }
]
Expand
titleAdd an item feature filter (e.g. departement)

Unlike the other pages, adding a new features filter to the catalogue requires more complex configuration, as the search is carried out in all the items in the database. Here are the steps to follow:

  1. Make sure that the feature is indexed on your project. To find out, please contact your Onestock technical contact.

  2. Add the feature to the ‘Available filters’ configuration available via this path Configuration > Store App > Pages > Catalog > Specific settings > Available filters

    image-20241202-103034.png
  3. Wait for the pre-calculation of the filters, which runs every hour.
    Note : The change can be applied immediately by calling the POST/category_filters/compute route, but it is not open to external users. Please contact your Onestock technical contact.

  4. Add the configuration to the ‘Filters’ section of the catalogue page:

Code Block
languagejson
[
  {
    "name": "color",
    "field": "color",
    "do_not_translate": true
  },
  {
    "name": "size",
    "field": "size",
    "do_not_translate": true
  },
  {
    "do_not_translate": true,
    "field": "departement",
    "name": "departement"
  }
]
Expand
titleRestrict the possible size values to a specific list
Code Block
languagejson
[
  {
    "do_not_translate": true,
    "field": "color",
    "name": "color"
  },
  {
    "do_not_translate": true,
    "field": "size",
    "name": "size",
    "possible_values": [
      {
        "value": "XS"
      },
      {
        "value": "S"
      },
      {
        "value": "M"
      },
      {
        "value": "L"
      },
      {
        "value": "XL"
      },
      {
        "value": "XXL"
      }
    ]
  }
]