Skip to Content
DeveloperBusiness LogicProducts

Products

All events may have products. Products may have product variants.

Products creation

  • Products must have a name and a description.
  • Products can be enabled for quantity-based ordering.
  • Minimum quantity for ordering can be set
  • Products have a price and a VAT (Value Added Tax) percentage.
  • Products can be published or unpublished.

Product variants

  • Products can have multiple variants.
  • If variants are available, the user has to choose one of them
  • Variant names and descriptions are optional.
  • Variants have their own prices

Products in orders

  • Orders consist of one or more order lines.
  • Order lines reference products and variants.
  • Each order line includes the product name, description, variant name (if applicable), price, quantity, and VAT information.
  • The price when order is placed should be saved on the orderline
  • Multiple variants can be ordered, they should be saved on different orderlines

Calculations

  • For each line we need methods for quantity multiplied with cost without tax, tax, and total price.
  • If a product has variants, the variant’s price and VAT percentage are used.
  • For the order in total we also need total price without tax, taxes and total price as separate methods.

Validation

  • The quantity ordered could not be 0. It may be positive number for adding products, but may also be a negative number for refunding orderlines.
  • Product variants must belong to the corresponding product.

Integrations

  • A unique item code is generated for each product-variant combination. In the poweroffice integration there will be prepended a K- to the product id. For product id 2, with variant id 9 the identifier will be K-2-9

Refund Handling

  • Refund order lines are created for corrected quantities.
  • Refund order lines include a reference to the original order line and order.
  • Refund order lines have negative quantities.

Display and Ordering

  • Products and variants are displayed based on their display order.
  • Products with lower display order values are shown first.

Mandatory Products

  • Products can be marked as mandatory if a minimum quantity is set.
  • Mandatory products enforce a minimum quantity during ordering.