Skip to content

Catalog

A site that shows products without selling them online: a product catalog imported from CSV, pages, blog and navigation, enquiry forms, agreements and customer accounts. The recipe runs the backend, a Celery worker on the queues of those modules, the CMS and the storefront, and the seed loads the Emporium demo package. It has no prices, stock, cart or checkout. The product names are on Concepts.

Diagram

Each backend tile is a domain of the module registry. The CMS and the storefront call the backend over the REST API; the backend hands slow work to the worker as tasks. The modules the recipe enables in each domain:

  • Foundation: Regional Data, Utilities, Module Registry and Health, Captcha, Email
  • Catalog: PIM, PIM CSV Import, Storefront Read Model
  • Content: Agreements, Contact Forms, Content
  • Customers: Accounts
ModulePackageWhy
Regional Dataentirius-django-regionalCore: countries, currencies and languages.
Utilitiesentirius-django-utilsCore: base models and API helpers, with the AI toolbox client the module registry reports.
PIMentirius-django-pimThe product catalog.
PIM CSV Importentirius-django-pim-csvCSV import of the catalog.
Module Registry and Healthentirius-django-muninCore: the module registry and health. The CMS switches its panels from it.
Captchaentirius-django-captchaBot check on customer sign-up.
Agreementsentirius-django-agreementsConsents and legal pages.
Emailentirius-django-emailRequired by Accounts.
Contact Formsentirius-django-contact-formsEnquiry forms.
Contententirius-django-contentdbPages, blog and navigation.
Accountsentirius-django-accountsCMS login and customer accounts.
Storefront Read Modelentirius-django-matrixThe read model the storefront API serves.

The service enables the access module itself in every recipe, so the admin gate and application tokens are always on: Access and API Tokens. What each module does, with its repository: Module Catalog.

Terminal window
git clone https://github.com/entirius/entirius-zeno.git
cd entirius-zeno
RECIPE=catalog make setup

The recipe is fixed in .env at the first run: a checkout keeps the recipe it started with.

The recorded run, on 2026-10-13: the seed took 2 min 46 s, then make bdd passed 832 scenarios, with 0 failed and 447 skipped. The skipped scenarios belong to modules outside the recipe or need the AI toolbox, which was disabled in that run. The images came from a warm build cache; a first run also builds them. The Quickstart has the timings of a run from source, the URLs and the logins.

A recipe of your own starts as a copy: copy recipes/catalog/ in entirius-zeno under a new name, edit apps.txt, queues.txt and the paragraph in README.md, then run make recipe-check RECIPE=<new>. It checks the lists against modules.yaml in the clone of the service.

No prices, stock, cart or checkout: the storefront shows the catalog to browse. Adding pricing and stock is the Shop recipe.

The modules left out, by domain:

  • Foundation: Translation Engine, Encrypted Fields
  • Catalog: Product Lookup, PIM Translations, Enrichment
  • Pricing and Stock: Price Manager, Stock, Omnibus Price History
  • Orders and Payments: Delivery Points, Payment Vault, Checkout, Returns
  • Content: FAQ, Content Translations, Sitemap, Reviews
  • Suppliers and Market Intelligence: Supplier Catalog, Competitive Pricing, Suppliers
  • Leads and Outreach: Notifications, Site Intelligence, Communicator, Leads
  • Integrations: PIM Export to Magento, Company Registry Lookup, BaseLinker, Accounts Export to Magento, Order Export to Magento, Order Import from Magento, GetResponse

The AI toolbox and the image embedding service stay off, as in Shop.

Data Import: load your own catalog from CSV files.