Metadata-Version: 2.4
Name: entirius-django-matrix
Version: 4.0.0
Summary: Storefront read model for Django: a denormalized product/catalog projection with faceted search, pricing and stock
Project-URL: Repository, https://github.com/entirius/entirius-django-matrix
Author: Entirius
License-Expression: MPL-2.0
License-File: LICENSE
Requires-Python: >=3.11
Requires-Dist: celery
Requires-Dist: django>=5.0
Requires-Dist: djangorestframework-simplejwt>=5.3
Requires-Dist: djangorestframework>=3.14
Requires-Dist: drf-spectacular>=0.27
Requires-Dist: entirius-django-pim>=3.0.0
Requires-Dist: entirius-django-regional>=2.0.0
Requires-Dist: entirius-django-utils>=2.0.0
Requires-Dist: entirius-py-bievents>=2.0.0
Requires-Dist: entirius-py-idx-normalizator>=2.0.0
Requires-Dist: entirius-py-magento2-sdk2>=2.0.0
Requires-Dist: entirius-py-process-logger>=2.0.0
Requires-Dist: marshmallow
Requires-Dist: marshmallow-dataclass[enum,union]
Requires-Dist: pydantic>=2.0
Provides-Extra: dev
Requires-Dist: pre-commit; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Provides-Extra: pricemanager
Requires-Dist: entirius-django-pricemanager>=4.0.0; extra == 'pricemanager'
Provides-Extra: pricetuner
Requires-Dist: entirius-django-accounts>=5.0.0; extra == 'pricetuner'
Requires-Dist: entirius-django-pricetuner>=2.0.0; extra == 'pricetuner'
Provides-Extra: qms
Requires-Dist: entirius-django-qms>=4.0.0; extra == 'qms'
Provides-Extra: test
Requires-Dist: dj-database-url; extra == 'test'
Requires-Dist: psycopg[binary]; extra == 'test'
Requires-Dist: pytest; extra == 'test'
Requires-Dist: pytest-django; extra == 'test'
Description-Content-Type: text/markdown

# entirius-django-matrix

Storefront read model for Django.

`django_matrix` maintains a denormalized projection of the product catalog optimized for
storefront reads: per-channel product representations, translations, prices and stock, with
faceted search (full-text, trigram, GIN indexes) and a versioned REST API consumed by the
frontend. Worker jobs fill the read model from PIM, pricing and stock sources.

## Installation

```shell
pip install entirius-django-matrix
```

Add `django_matrix` (and `django.contrib.postgres`) to `INSTALLED_APPS`. PostgreSQL is required
(GIN indexes, full-text and trigram search). The read model attaches to `django_pim` and
`django_regional`; optional integrations are exposed as extras:

```shell
pip install "entirius-django-matrix[qms,pricemanager,pricetuner]"
```

## Development

```shell
uv sync --all-extras
make check test
```

Tests require PostgreSQL — point `DATABASE_URL` at any postgres 15+.
See [AGENTS.md](AGENTS.md) for architecture, settings and integration points.
