Zum Inhalt
HALOWERK

Handelswerk

slotting plan

Takes a warehouse as a table and returns a placement. You supply the storage locations with their walking distance to the pick-and-drop point and, where they exist, their weight and volume limits; you supply the SKUs with pick frequency, weight and volume; and you may supply the joint-pick pairs.

POST https://handel.halowerk.com/v1/slotting-plan

Eingaben

Felder des veröffentlichten Eingabeschemas
FeldTypPflichtBeschreibung
skusarrayJaThe SKUs to place.
locationsarrayJaThe storage locations available for the plan.
affinitiesarrayNeinPairs of SKUs that are picked together. Used to slot them near each other.
abc_share_pctarrayNeinCumulative pick share in percent that ends class A and class B. First value must be smaller than the second.
return_tripbooleanNeinWhether the picker walks back the same way. True doubles every distance.
Vollständiges Eingabeschema anzeigen
{
  "type": "object",
  "required": [
    "skus",
    "locations"
  ],
  "additionalProperties": false,
  "properties": {
    "skus": {
      "type": "array",
      "minItems": 1,
      "maxItems": 2000,
      "description": "The SKUs to place.",
      "items": {
        "type": "object",
        "required": [
          "sku",
          "picks_per_period"
        ],
        "additionalProperties": false,
        "properties": {
          "sku": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "Your SKU identifier. Must be unique within the request."
          },
          "picks_per_period": {
            "type": "number",
            "minimum": 0,
            "maximum": 1000000,
            "description": "Number of picks in the period you are planning for. The period itself is yours; it only has to be the same for every SKU."
          },
          "weight_kg": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000,
            "description": "Weight of one storage unit in kilograms. Checked against max_weight_kg of the location."
          },
          "volume_l": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000,
            "description": "Volume of one storage unit in litres. Checked against max_volume_l of the location."
          },
          "current_location_id": {
            "type": "string",
            "maxLength": 64,
            "description": "Where the SKU sits today. Only used for the before-and-after comparison."
          }
        }
      }
    },
    "locations": {
      "type": "array",
      "minItems": 1,
      "maxItems": 5000,
      "description": "The storage locations available for the plan.",
      "items": {
        "type": "object",
        "required": [
          "location_id",
          "travel_distance_m"
        ],
        "additionalProperties": false,
        "properties": {
          "location_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "Your location identifier. Must be unique within the request."
          },
          "travel_distance_m": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000,
            "description": "One-way walking distance in metres from the pick-and-drop point to this location."
          },
          "zone": {
            "type": "string",
            "maxLength": 64,
            "description": "Free-text zone label, passed through unchanged."
          },
          "max_weight_kg": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000,
            "description": "Weight limit of this location in kilograms. Omitted means no limit."
          },
          "max_volume_l": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000,
            "description": "Volume limit of this location in litres. Omitted means no limit."
          }
        }
      }
    },
    "affinities": {
      "type": "array",
      "maxItems": 5000,
      "description": "Pairs of SKUs that are picked together. Used to slot them near each other.",
      "items": {
        "type": "object",
        "required": [
          "sku_a",
          "sku_b",
          "joint_picks_per_period"
        ],
        "additionalProperties": false,
        "properties": {
          "sku_a": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "sku_b": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "joint_picks_per_period": {
            "type": "number",
            "minimum": 0,
            "maximum": 1000000,
            "description": "How often the two are picked in the same order, in the same period as picks_per_period."
          }
        }
      }
    },
    "abc_share_pct": {
      "type": "array",
      "minItems": 2,
      "maxItems": 2,
      "default": [
        80,
        95
      ],
      "items": {
        "type": "number",
        "minimum": 0,
        "maximum": 100
      },
      "description": "Cumulative pick share in percent that ends class A and class B. First value must be smaller than the second."
    },
    "return_trip": {
      "type": "boolean",
      "default": true,
      "description": "Whether the picker walks back the same way. True doubles every distance."
    }
  }
}

Originalschema öffnen

Veröffentlichtes Eingabebeispiel

{
  "skus": [
    {
      "sku": "A-100",
      "picks_per_period": 420,
      "weight_kg": 2.5,
      "volume_l": 8,
      "current_location_id": "L-07"
    },
    {
      "sku": "A-101",
      "picks_per_period": 380,
      "weight_kg": 1.2,
      "volume_l": 5,
      "current_location_id": "L-01"
    },
    {
      "sku": "B-200",
      "picks_per_period": 95,
      "weight_kg": 18,
      "volume_l": 40,
      "current_location_id": "L-03"
    },
    {
      "sku": "C-300",
      "picks_per_period": 12,
      "weight_kg": 0.4,
      "volume_l": 2,
      "current_location_id": "L-02"
    }
  ],
  "locations": [
    {
      "location_id": "L-01",
      "travel_distance_m": 6,
      "zone": "front",
      "max_weight_kg": 25,
      "max_volume_l": 60
    },
    {
      "location_id": "L-02",
      "travel_distance_m": 9,
      "zone": "front",
      "max_weight_kg": 25,
      "max_volume_l": 60
    },
    {
      "location_id": "L-03",
      "travel_distance_m": 22,
      "zone": "middle",
      "max_weight_kg": 40,
      "max_volume_l": 120
    },
    {
      "location_id": "L-07",
      "travel_distance_m": 48,
      "zone": "back",
      "max_weight_kg": 40,
      "max_volume_l": 120
    }
  ],
  "affinities": [
    {
      "sku_a": "A-100",
      "sku_b": "A-101",
      "joint_picks_per_period": 210
    }
  ],
  "abc_share_pct": [
    80,
    95
  ],
  "return_trip": true
}

Ergebnis & Dokumentation

Veröffentlichtes Ergebnisschema anzeigen
{
  "$ref": "https://handel.halowerk.com/v1/slotting-plan/schema#/outputSchema"
}

Veröffentlichtes Ergebnisbeispiel öffnen

Maschinenlesbare Dokumentation dieses Hubs

Quelle dieser Seite: der veröffentlichte HALOWERK-Katalog. Stand: 2026-11-01, 15:19 UTC.

Weitere Endpunkte dieses Hubs

Alle Endpunkte dieses Hubs →