Skip to main content

entirius-django-atlas

A Django module that brings external product data into Entirius, the open-source modular ecommerce platform. One pipeline serves three kinds of sources: procurement (suppliers whose products are pushed to the catalog), monitoring (competitor prices) and enrichment (extra product data). Only procurement sources write to the catalog; the other two are read-only observers.

PyPI Python License: MPL-2.0

What it does

  • Keeps a registry of sources, their feeds and credentials, with XML feed and scraper connectors.
  • Imports source products on a cron schedule and maps attributes and categories through mapping profiles.
  • Runs a review and approval workflow, then pushes approved procurement products to the catalog once and refreshes cost, quantity and physical attributes on later imports.
  • Matches source products to existing catalog products by EAN and selects a primary source per product.
  • Records every observation in an append-only log and every field change in an audit log.
  • Exposes an admin API (JWT, Pydantic schemas, OpenAPI) for the CMS.

Installation

uv add entirius-django-atlas
pip install entirius-django-atlas

Optional extras: entirius-django-atlas[qms] (stock writes to the warehouse module), entirius-django-atlas[lookup] (registers atlas as a provider of the product lookup module; Python 3.12 or newer).

INSTALLED_APPS = [
    ...
    "django_utils",
    "django_regional",
    "django_pim",
    "django_atlas",
]

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

Optional settings (ATLAS_*: image download, body-size caps, the private-host guard, scraper callback signing) are defined with their defaults in https://github.com/entirius/entirius-django-atlas/blob/develop/src/django_atlas/settings.py

Quick start

from django_atlas.services.observation_service import get_observations

# newest observation per source for one SKU
prices = get_observations("SKU-1", "monitoring", latest_per_source=True)

The admin API is mounted under api/atlas/v2/admin/.

Requirements

  • Python 3.11 or newer, Django 5.0 or newer.
  • PostgreSQL (the observation queries use DISTINCT ON).
  • A Celery worker consuming the atlas_default, atlas_images and atlas_results queues.
  • Entirius packages pulled in: entirius-django-utils, entirius-django-regional, entirius-django-pim.

Documentation

Part of Entirius

This module runs inside the Entirius backend service (Volkanos) and feeds the product catalog and the pricing engine.

Development

make install     # sync dependencies (uv, incl. extras)
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-atlas/blob/develop/AGENTS.md

License

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

Metadata

Release files for entirius-django-atlas 2.1.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-atlas 2.1.0
File Size Uploaded
entirius_django_atlas-2.1.0.tar.gz 414.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for entirius-django-atlas 2.1.0
File Interpreter ABI Platform
entirius_django_atlas-2.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 659.4 kB

Release files / entirius_django_atlas-2.1.0.tar.gz

Download URL entirius_django_atlas-2.1.0.tar.gz
Size 414.7 kB
Tags Source
SHA-256 checksum
How to use checksums
c2177a5c8720395555327575472e93fab6f37c34edf18ccf965c8f6caf7b9768
BLAKE2b-256 checksum
How to use checksums
30d947673edbe598f26f1cbda6c532848765970b0332f7ba7b91ce6e524368a8
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_atlas-2.1.0-py3-none-any.whl

Download URL entirius_django_atlas-2.1.0-py3-none-any.whl
Size 244.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
94a1025c7ef05ca9465df1a6261437ff17cd11b146de5c2206529e289b0c393c
BLAKE2b-256 checksum
How to use checksums
72014fd69f4be23cac7f08368ae2e3c011bb522255d36efe5561494bcc4395ef
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

2.1.0 This release

2 release files

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