Skip to content

Product & variant attributes

Product & variant attributes are Logistified-owned fields you can attach to products or variants. They can stay internal to Logistified, or they can be linked to an existing Shopify metafield. Purchase-order constraints use these attributes when you assign a constraint role such as Product MOQ, Unit CBM, or Purchase family.

Attribute definition form with a Product MOQ number attribute on product level
A Product MOQ attribute can be defined once and then reused by one dynamic Product MOQ constraint rule.
  • Where to configure attributes
  • Attribute definition fields
  • Shopify metafield links
  • Constraint roles
  • Managed attributes from Data Modeling
  • Attribute values and fallbacks
  • Validation and save behavior
  • See also

Open Settings -> Products -> Attribute Definitions.

Use this page when you need a product or variant field that does not exist in Logistified by default: product-level MOQ, unit volume, unit weight, case size, purchase family, compliance status, or any similar planning value.

Each attribute definition has:

FieldWhat it controls
Attribute nameThe merchant-facing label shown in Product Settings, product/variant detail, PO constraint binding, and relevant tables. Names must be unique.
TypeThe value format: Text, Number, Date, Yes/No, List, or Linked table row.
LevelProduct or Variant. Product-level values apply to the product as a whole; variant-level values apply to one variant.
Constraint roleOptional semantic meaning used by Constraint Studio and the optimizer.
ColorVisual color used for the attribute chip.
Shopify Metafield LinkOptional namespace.key link to an existing Shopify product or variant metafield.
DescriptionOptional helper text for your team.

Choose Product level when one value should be shared by all variants of a product. Product MOQ is the common example: a rule should sum every variant on the PO and compare the product total to one product-level MOQ value.

Choose Variant level when each variant can have its own value, such as unit CBM, unit weight, case size, or purchase family.

The Shopify link is optional. If you leave it empty, the attribute is stored and edited only in Logistified.

When you enter a Shopify metafield key:

  • Use namespace.key.
  • Product-level attributes are verified against Shopify product metafield definitions.
  • Variant-level attributes are verified against Shopify variant metafield definitions.
  • A duplicate key for the same owner type is rejected.
  • Linked table row attributes cannot be linked to Shopify metafields.

Use Refresh or Verify after creating new Shopify metafield definitions so Logistified can check that the owner type and key match.

Constraint roles tell Constraint Studio what an attribute means. A role can be assigned directly on an attribute definition, or through a Data Modeling semantic mapping.

RoleAllowed attribute typesTypical use
Group keyText, ListExact group count, group minimum total, group coverage.
Unit CBMNumberPO max CBM, container fill, capacity block fill.
Unit weightNumberPO max weight and weight-based fill rules.
Case sizeNumberCase-size or multiple-based planning.
Pallet quantityNumberPallet/capacity planning.
Purchase familyText, ListCoverage, ratio, or bundle rules by commercial family.
Product MOQNumberProduct-level MOQ summed across all variants on the PO.

Only one active attribute can use the same constraint role. If you try to assign Unit CBM to a second attribute, Logistified asks you to remove the first assignment or choose another role.

Data Modeling can create Linked table row attributes automatically so a product or variant can point to a custom Data Model row. Those managed attributes are marked as managed, are read-only on this page, and cannot be deleted from Product Settings.

If you need to change the table, fields, rows, or semantic role behind a managed attribute, do it in Settings -> Data Modeling instead.

Definitions only describe the field. Values are entered on the product/variant surfaces that show Product Settings attributes.

Values can be global or location-specific. When a location-specific value is missing, Logistified falls back to the global value for the same product or variant. Constraint evaluation uses the resolved value available for the PO context; if a required value is still missing, the PO hint explains which role or field is missing.

Logistified validates both client-side and server-side:

  • Attribute names must be present and unique.
  • List attributes need at least one option.
  • Options are only valid for List attributes.
  • Linked table row attributes need a target table.
  • Constraint roles must match the attribute type.
  • Duplicate Shopify keys and duplicate constraint roles are rejected.
  • Save buttons lock while a save is in flight.
  • If you cancel or navigate away with an unsaved draft, Logistified asks before discarding it.