Skip to main content

entirius-django-pim

A Django module for product information of Entirius, the open-source modular ecommerce platform: the product catalog behind every sales channel. It stores products, categories, features, attributes and media, and serves them to the admin CMS over a REST API.

PyPI Python License: MPL-2.0

What it does

  • Stores products per sales channel on top of one shared physical product (SKU, EAN, dimensions).
  • Models simple, configurable, bundle and custom products, with categories, features, feature sets and attributes.
  • Manages pictures, files, videos and product links.
  • Lets products on secondary channels inherit attributes, descriptions and media from a default channel.
  • Reports quality gaps: what each product is missing, per channel and language, by configurable rules.
  • Exposes an admin REST API with an OpenAPI schema.

Installation

uv add entirius-django-pim
pip install entirius-django-pim
INSTALLED_APPS = [
    ...
    "rest_framework",
    "django_regional",
    "django_pim",
]

# urls.py
urlpatterns = [
    path("", include("django_pim.urls")),
]

The module reads MEDIA_URL, STATIC_URL and TMP_DIR (a directory for file and picture processing) from the project settings at import time. Optional settings (T9N_DEFAULT_LANG, DEFAULT_CURRENCY, THUMBS_CONFIG, PIM_GAPS_QUEUE and others) and their defaults are in https://github.com/entirius/entirius-django-pim/blob/develop/src/django_pim/settings.py

Quick start

from django_pim.services.product_service import get_product_by_sku

product = get_product_by_sku(channel_idx="default", sku="SKU-001")
print(product.visibility, product.is_enabled)

Requirements

  • Python 3.11 or newer, Django 5.0 or newer.
  • PostgreSQL 15 or newer (UniqueConstraint(nulls_distinct=False)).
  • Entirius packages pulled in: entirius-django-regional, entirius-django-utils, entirius-py-bievents, entirius-py-idx-normalizator, entirius-py-int-enum-choices, entirius-py-image-transformations, entirius-py-process-logger.

Documentation

Part of Entirius

This module runs inside the Entirius backend service (Volkanos) and is the catalog most other modules build on.

Development

make install     # sync dependencies (uv)
make check       # lint + format check (ruff)
make test        # test suite (pytest + pytest-django, needs PostgreSQL via DATABASE_URL)

Development and agent instructions: https://github.com/entirius/entirius-django-pim/blob/develop/AGENTS.md

License

Mozilla Public License 2.0 (MPL-2.0) — see https://github.com/entirius/entirius-django-pim/blob/develop/LICENSE.

Metadata

Release files for entirius-django-pim 3.4.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-pim 3.4.0
File Size Uploaded
entirius_django_pim-3.4.0.tar.gz 488.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for entirius-django-pim 3.4.0
File Interpreter ABI Platform
entirius_django_pim-3.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 844.5 kB

Release files / entirius_django_pim-3.4.0.tar.gz

Download URL entirius_django_pim-3.4.0.tar.gz
Size 488.4 kB
Tags Source
SHA-256 checksum
How to use checksums
e275f7f786a1719049ce179add8a948b00dfdb1e476409751e432c8ae70f5544
BLAKE2b-256 checksum
How to use checksums
ea48f7a1451806f0e2d185977abf95e3c58e409cdf44afaf4098d6b8ba4116ce
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_pim-3.4.0-py3-none-any.whl

Download URL entirius_django_pim-3.4.0-py3-none-any.whl
Size 356.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2683118e6d4d1952bc0cd88f4a80e96c8418e15a93bfd06bee4d0105437f4380
BLAKE2b-256 checksum
How to use checksums
1daad41292312d4bbdeaafc2e2a1272dd67ba111ec9f42941797e3e8d1e22e67
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

3.4.0 This release

2 release files

3.3.1

2 release files

3.3.0

2 release files

3.2.2

2 release files

3.2.1

2 release files

3.2.0

2 release files

3.1.0

2 release files

3.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