Skip to content

docs: add a user guide for the brand plugin - #15

Merged
plewandowski merged 1 commit into
1.0from
docs/user-guide
Sep 2, 2026
Merged

plewandowski merged 1 commit into
1.0from
docs/user-guide

Conversation

@plewandowski

Copy link
Copy Markdown
Contributor

End-user documentation for the plugin, under docs/user-guide/.

Stacked on #14 so this diff shows only the docs. GitHub will retarget it to 1.0 when #14 merges.

What is in it

README.md How the pieces fit together, where everything lives, and links out
features/managing-brands.md The Brands grid and every field on the create/edit form, including the four display toggles
features/brand-settings.md The feature toggle, the brand attribute and the brand mapping, and why the last two are global
features/brands-in-the-shop.md The overview, per-brand listings, the homepage strip, the product-page badge and the tile line
features/resyncing-product-brands.md madcoders:brand:resync-products, its options, and the two admin surfaces for checking how a product resolved
journeys/*.md Four walkthroughs: create a brand, point the plugin at your brand attribute, browse brands, see the brand on a product

Scope is the plugin only - stock Sylius screens are out. Installation is not duplicated; the guide links to docs/INSTALLATION.md.

The walkthroughs are verified, not described

Each one was replayed against a running Sylius test application by dm-journey, which screenshots every step. All four pass with brokenAt: null. The store was a real one: fixtures loaded, the feature enabled, a brand attribute and mapping configured, then bin/console madcoders:brand:resync-products run to attach 23 products across four brands.

/docs/user-guide is export-ignored

#14 makes docs/ ship in the package, which is what puts the installation instructions in vendor/. This guide carries 8 MB of screenshots that have no business in every composer require, so the directory is excluded. README.md, docs/INSTALLATION.md and the ADR log still ship.

Two problems caught during review

Worth recording, because both would have shipped documentation that was wrong rather than merely thin.

Every screenshot in the first pass was unstyled - raw text in one very long column, one image 2880 x 61752 px. The cause was the web server, not missing assets: the app was being served with php -S ... public/index.php, which routes every request through the front controller, so /build/** CSS returned 404. Re-served through the Symfony CLI (CSS now 200) and re-captured at a 1440x1000 viewport at 1x scale instead of full-page at 2x.

The product-page brand badge was first documented as absent. No product in the original crawl resolved to a brand, so there was no evidence for it. It works: /en_US/products/celestial-harmony-t-shirt resolves to the Sylius brand, whose Display on the product page toggle is on, and renders Brand: Sylius linking to /en_US/brands/sylius. The walkthrough now shows the badge and asserts its text as a journey step.

Known limits

  • The admin filter panels are collapsed in the captures, so the filter tables are sourced from config/grids/admin/brand.yaml and config/grids/admin/product.yaml rather than from a screenshot.
  • No fixture brand has a logo uploaded, so no screenshot shows the badge's logo variant; the text says the logo appears where a brand has one.
  • Only en_US is documented, matching the single shipped translation catalogue.

All 59 internal links and image paths were verified to resolve on disk.

Generated with documentation-maker against a running Sylius test application
(fixtures loaded, feature enabled, brand attribute and mapping configured, then
`madcoders:brand:resync-products` run to attach 23 products across four brands),
then reviewed and corrected.

Four feature pages - the Brands grid and form, the Brands settings section, the
shop surfaces, and the resync command - plus four walkthroughs. Every
walkthrough was replayed against the running store and passes, so the steps and
their screenshots are verified rather than described from the source.

Scope is the plugin only. Stock Sylius screens are out, and installation stays
in docs/INSTALLATION.md, which the guide links to instead of duplicating.

`/docs/user-guide` is export-ignored. Shipping `docs/` in the package is what
puts the installation instructions in vendor/, but the guide carries 8 MB of
screenshots that have no business in every `composer require`; the README, the
installation guide and the ADR log still ship.

Two things caught during review rather than shipped:

- The first capture pass produced unusable screenshots - unstyled, one of them
  61752px tall - because the app was served with `php -S ... public/index.php`,
  which routes every request through the front controller and 404s the CSS
  under /build. Re-captured through the Symfony CLI at a 1440x1000 viewport.
- The product-page brand badge was initially documented as absent, because no
  product in the first crawl resolved to a brand. It is present; the guide now
  shows it on a product whose brand has the product-page toggle on.

Also `.documentation-maker.ini` and `.documentation-maker/` are gitignored, so
the local base URL and the crawl artefacts stay out of the repository.
@plewandowski

Copy link
Copy Markdown
Contributor Author

On hold at the author's request, and it now needs a refresh before merging.

Retargeted from worktree-readiness-fixes (merged in #14) to 1.0, so the diff is docs-only.

#16 changes two things this guide describes:

  • The brand logo now renders on product tiles, not just the product page. features/brands-in-the-shop.md and the "see the brand on a product" walkthrough both describe the tile as a text-only line.
  • The product-page badge shows a logo. The guide currently says the logo appears "where a brand has one" and shows a screenshot with none, because no fixture brand had a logo at the time. Three of the five demo brands now ship one.

The demo fixtures also moved out of Sylius' default suite into their own madcoders_brand suite (#10), so the setup steps behind these screenshots have changed.

Refreshing means re-running the crawl against a shop built with sylius:fixtures:load madcoders_brand, re-capturing, and correcting those two sections. The journeys themselves still hold.

@plewandowski
plewandowski merged commit 6831f26 into 1.0 Sep 2, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant