entirius-django-pricemanager
A Django module for product prices in Entirius, the open-source modular ecommerce platform. It keeps one current price per product, sales channel, country and currency, converts between net and gross with country tax rates, and records every change in a history log.
What it does
- Stores one live price per product, channel, country and currency, with an append-only history of every change.
- Calculates net and gross values from tax classes and country-specific tax rates.
- Supports special prices with validity dates, attribute-level prices and customer tier prices.
- Guards writes: a precedence table decides which price source may overwrite another, and bounds enforce a floor from a minimum price and a minimum margin over the purchase cost.
- Imports prices and tax rates from CSV files with management commands.
- Exposes an admin REST API for price editing, channels and tax classes, used by the CMS.
Installation
uv add entirius-django-pricemanager
pip install entirius-django-pricemanager
INSTALLED_APPS = [
...
"django_utils",
"django_regional",
"django_pricemanager",
]
# urls.py
urlpatterns = [
path("", include("django_pricemanager.urls")),
]
The admin API mounts at api/pricemanager/v2/admin/. Required settings: BI_ENVIRONMENT and BI_BUSINESS_UNIT
(read when the module's event definitions are imported). The optional ones are listed with their defaults in
https://github.com/entirius/entirius-django-pricemanager/blob/develop/docs/configuration.md.
Celery queue: pricemanager_create_pricelist. Optional integrations with django_pim (channel sync) and the
supplier cost feed are soft imports and do nothing when those modules are absent.
Quick start
from django_pricemanager.output import get_product_price_for_country_and_currency
price = get_product_price_for_country_and_currency("default", "SKU-1", "PL", "PLN")
Load prices first: python manage.py import-pricelist-from-csv (arguments in
https://github.com/entirius/entirius-django-pricemanager/blob/develop/docs/commands.md).
Requirements
- Python 3.11 or newer, Django 5.0 or newer.
- PostgreSQL 15 or newer.
- Entirius packages pulled in:
entirius-django-regional,entirius-django-utils,entirius-py-bievents,entirius-py-idx-normalizator,entirius-py-int-enum-choices,entirius-py-lockfile,entirius-py-process-logger.
Documentation
- Module docs: https://github.com/entirius/entirius-django-pricemanager/tree/develop/docs
- Entirius documentation: https://docs.entirius.com/
- Changelog: https://github.com/entirius/entirius-django-pricemanager/blob/develop/CHANGELOG.md
Part of Entirius
This module runs inside the Entirius backend service (Volkanos) and supplies prices to the catalog and the checkout.
- Backend service: https://github.com/entirius/entirius-service-volkanos
- Docker harness: https://github.com/entirius/entirius-zeno
- Sibling modules: https://github.com/entirius/entirius-django-regional, https://github.com/entirius/entirius-django-checkout, https://github.com/entirius/entirius-django-pim
Development
make install # sync dependencies (uv)
make check # lint + format check (ruff)
make test # test suite (pytest + pytest-django)
Development and agent instructions: https://github.com/entirius/entirius-django-pricemanager/blob/develop/AGENTS.md
License
Mozilla Public License 2.0 (MPL-2.0) — see https://github.com/entirius/entirius-django-pricemanager/blob/develop/LICENSE.
Metadata
Release files for entirius-django-pricemanager 4.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| entirius_django_pricemanager-4.3.0.tar.gz | 183.6 kB | Without provenance | Details for entirius_django_pricemanager-4.3.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| entirius_django_pricemanager-4.3.0-py3-none-any.whl | Python 3 | none | any | Details for entirius_django_pricemanager-4.3.0-py3-none-any.whl |
Total release size: 316.1 kB
Release files / entirius_django_pricemanager-4.3.0.tar.gz
| Download URL | entirius_django_pricemanager-4.3.0.tar.gz |
|---|---|
| Size | 183.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b8786131746a56478cce2478985afe43bbe87e0bba68a9701892d24662384ea9
|
|
BLAKE2b-256 checksum How to use checksums |
b2921fe9147322843ebea8af17b37a0fa0f93a910d6ac1abc8fa0ab3c5bfa43e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / entirius_django_pricemanager-4.3.0-py3-none-any.whl
| Download URL | entirius_django_pricemanager-4.3.0-py3-none-any.whl |
|---|---|
| Size | 132.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4ca046a9b6821a80243e347a457d88d3d26d00f90627f1c4fd2ce1e55e1d92c7
|
|
BLAKE2b-256 checksum How to use checksums |
189f3e92f0e93d9422118bfa9b3e8dc109b13b553b878c4203b395093382015e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for entirius-django-pricemanager 4.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.