Skip to main content

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.

PyPI Python License: MPL-2.0

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

Part of Entirius

This module runs inside the Entirius backend service (Volkanos) and supplies prices to the catalog and the checkout.

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)

Source distribution for entirius-django-pricemanager 4.3.0
File Size Uploaded
entirius_django_pricemanager-4.3.0.tar.gz 183.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for entirius-django-pricemanager 4.3.0
File Interpreter ABI Platform
entirius_django_pricemanager-4.3.0-py3-none-any.whl Python 3 none any Details

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}

Release history Release notifications | RSS feed

This release

4.3.0 This release

2 release files

4.2.1

2 release files

4.2.0

2 release files

4.1.0

2 release files

4.0.1

2 release files

4.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page