Markus Michalski FAQ

Cart & Checkout Attributes

Displays selected product attributes in cart, checkout and order summary - for the EU requirement to show essential product characteristics before purchase. With Shop API, admin configuration and kill switch.

Deutsche Version

All Sylius Plugins

Cart & Checkout Attributes

Sylius
PHP
License

This documentation always describes the latest published version.

Overview

Out of the box, Sylius only carries the product name, chosen variant, quantity and price through cart and checkout - any product attribute values shown on the product page are lost after that. For shops operating under German/EU law, that is a problem: Art. 246a EGBGB (implementing the Consumer Rights Directive) requires that essential characteristics of the goods are shown on the page immediately before the order is placed - case law holds that a link back to the product page is not enough.

This plugin lets admins mark, per product attribute, whether and how it is shown again in the cart, checkout summary and (depending on scope) order confirmation - without overriding any core templates.

Attributes such as material, dimensions or fill quantity show up again in cart and checkout, not just on the product page.

graph LR
    A["Cart / Checkout / Order Summary (Twig Hook)"] --> C["Twig Functions"]
    B["Shop API Request"] --> D["State Provider"]
    C --> E["Kill Switch + Display Config"]
    D --> E
    E --> F["Attribute Partial (SyliusAttribute Types)"]
    E --> G["JSON Response"]

Documentation

Page Content
Installation Composer via Packeton, bundle/routes, setup command, update, uninstallation
Configuration Admin form extension, kill switch, practical examples
Storefront Twig Hooks in cart, checkout and order summary
Shop API Endpoints, fields, filters, error behaviour
Extending Repository interface, the plugin's own hook points, admin menu convention
Troubleshooting Symptoms → check → solution, limitations, FAQ
Technical Architecture, entities, migrations, enum

Features

Feature Description
Three-state checkout visibility Per attribute: Not visible / Visible / Mandatory
Separate cart visibility Its own flag, independent of the checkout setting
Admin integration without a new CRUD page Its own card directly on the existing product attribute form
Reuses the attribute partials Checkbox, date, percent and select values render exactly as on the product page
Order confirmation & account order history The same table is reused on both
Shop API Two read-only endpoints for settings and display configuration
Shop-wide kill switch One setting turns off the whole display immediately
Setup command Runs only this plugin's own migrations, checks the route import, idempotent

Requirements

Requirement Version Notes
Sylius ^2.2
PHP ^8.3
Symfony (console/finder/routing) ^7.4
API Platform (doctrine-orm/metadata/state) ^4.2.1 or ^5.0
doctrine/migrations ^3.7
Database MySQL/MariaDB required Migrations are MySQL DDL - PostgreSQL is not supported

PostgreSQL is not supported: the migrations skip themselves on any database other than MySQL/MariaDB, so the feature stays permanently inactive there.

License

Commercial license: one Sylius installation (all channels, including its development and staging environments) per license, no redistribution, updates for 12 months from purchase.

Support

Email: support@markus-michalski.net