Skip to main content

entirius-django-sitemap

A Django module that generates multilingual XML sitemaps and robots.txt files for storefronts of Entirius, the open-source modular ecommerce platform. It writes one sitemap per content type (products, categories, custom products, content pages, FAQ items), a sitemap index and a robots.txt for every channel domain.

PyPI Python License: MPL-2.0

What it does

  • Generates sitemap files per content type and a sitemap index for each channel domain.
  • Builds a robots.txt per domain that references the generated sitemaps.
  • Writes one URL per item and language, merged into one file per channel or split per language.
  • Builds URLs from prefix templates with language and channel placeholders.
  • Skips a content type when its source module (products, content, FAQ) is not installed.

Installation

uv add entirius-django-sitemap
pip install entirius-django-sitemap
INSTALLED_APPS = [
    ...
    "django_regional",
    "django_sitemap",
]

The module has no HTTP endpoints, so there is no URL include. No setting is required; optional settings (SITEMAP_URL_HOST, SITEMAP_FORMAT_XML, SITEMAP_LIMIT, SITEMAP_ROOT_DIR, SITEMAP_ROBOTS_TEMPLATE_PATH, LIST_OF_CATEGORY_IDXES_WHICH_ARE_EXCLUDED) are described in https://github.com/entirius/entirius-django-sitemap/blob/develop/AGENTS.md (section Settings).

Each content source is an extra — pim (products and categories), contentdb (content pages), faq (FAQ items):

uv add "entirius-django-sitemap[pim,contentdb,faq]"

Quick start

from django_sitemap.models import DomainSitemap
from django_sitemap.worker.sitemap import generate_robots, generate_sitemap

domain = DomainSitemap.objects.get(idx="shop-en")
generate_sitemap(domain)
generate_robots(domain)

The same from the command line, for one domain or for all of them:

python manage.py generate_sitemap --domain_idx shop-en
python manage.py generate_sitemap

Requirements

  • Python 3.11 or newer, Django 4.0 or newer.
  • Entirius packages pulled in: entirius-django-regional, entirius-py-process-logger.
  • Optional, through the extras: entirius-django-pim, entirius-django-contentdb, entirius-django-faq.

Documentation

Part of Entirius

This module runs inside the Entirius backend service (Volkanos) and reads from the product, content and FAQ modules.

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-sitemap/blob/develop/AGENTS.md

License

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

Metadata

Release files for entirius-django-sitemap 4.0.2

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-sitemap 4.0.2
File Size Uploaded Provenance Actions
entirius_django_sitemap-4.0.2.tar.gz 146.6 kB Without provenance Details for entirius_django_sitemap-4.0.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for entirius-django-sitemap 4.0.2
File Interpreter ABI Platform Actions
entirius_django_sitemap-4.0.2-py3-none-any.whl Python 3 none any Details for entirius_django_sitemap-4.0.2-py3-none-any.whl

Total release size: 190.0 kB

Release files / entirius_django_sitemap-4.0.2.tar.gz

Download URL entirius_django_sitemap-4.0.2.tar.gz
Size 146.6 kB
Tags Source
SHA-256 checksum
How to use checksums
ac1e3ae4bc787a5036a31e67a9bbf89965f4c4604a6297a77dc9bd87ce713cc1
BLAKE2b-256 checksum
How to use checksums
8158962bc110561daf074dc5cf64bfd528262a4de0412d025e407323d96b449f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","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_sitemap-4.0.2-py3-none-any.whl

Download URL entirius_django_sitemap-4.0.2-py3-none-any.whl
Size 43.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7f2941e5e6db93618a2122ade282b2f3f84f1229562cf09727398a9bccd94e3a
BLAKE2b-256 checksum
How to use checksums
3521c317f9fae5efe0b9e30b9eaf356f2377a172920031689e13906cf3bde993
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","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-sitemap 4.0.2

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.

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