Present for Craft CMS

Configuration

Present → Settings, or config/present.php.

Show components in the cart

Default: on.

Whether craft.present.cartLineItems() includes the things inside a box. Present never hides a line item from Commerce — the setting only tells your templates what to render. An order the merchant cannot see in full is worse than a slightly noisy cart.

Enforce the stock rollup

Default: on.

Makes a bundle unavailable when its components cannot supply a single box. Off, the bundle stays purchasable and Commerce's own per-purchasable stock validation catches it at the line item instead — later, and with a worse message.

When a box in a cart comes apart

Default: put it back.

Boxes come apart in ordinary use: a cart template that lets a shopper delete any line item, an admin editing a quantity on the order screen, a component that has since been disabled. Present checks every group on every recalculation.

  • Put it back the way it was — component quantities are reset from the container's, and a missing component is re-added from the stored selection.
  • Remove the whole box and say why — the group goes, with an order notice explaining it.

Leaving it alone is not an option, because a half-priced half-box is the one outcome nobody wants.

Deleting the container always removes the whole box whatever this is set to: there is nothing left to repair the contents back into.

Register the builder's CSS and JS

Default: on.

Turn off if you are bundling present-builder.js through your own pipeline.

Money decimal places

Default: 2.

How finely a fixed bundle price is split across its components. Two is right for most currencies; use 0 for yen or won, or the allocator produces prices with fractions no gateway will take.

Config file

<?php

return [
    'showComponentsInCart' => true,
    'enforceStockRollup' => true,
    'brokenGroupBehavior' => 'repair',   // or 'remove'
    'registerBuilderAssets' => true,
    'moneyDecimals' => 2,
];

Permissions

  • Manage bundles — the bundles section and the element editor
  • Use the configurator — the CP configurator (Pro)

Bundle types are admin-only and require allowAdminChanges, because they live in project config.