Skip to main content

entirius-django-checkout

A Django module for carts and orders in Entirius, the open-source modular ecommerce platform. It runs the checkout of a multi-channel storefront: cart lifecycle, order creation and splitting, payments through pluggable gateways, shipping and payment method selection, discounts and stock reservation.

PyPI Python License: MPL-2.0

What it does

  • Keeps carts and turns them into orders, with order splitting by configurable rules.
  • Takes payments through PayU, PayPal, Autopay, Przelewy24, Paynow and Stripe, including their notification callbacks.
  • Offers shipping and payment methods per sales channel, country and currency.
  • Applies discount codes, discount rules and free-product (gratis) rules.
  • Reserves stock per product and supplier.
  • Exposes two REST API generations side by side: v1 and v2, where each PATCH updates one part of the cart.

Installation

uv add entirius-django-checkout
pip install entirius-django-checkout

Optional integrations are extras (qms: stock sync from warehouses, vault: saved payment cards, returns: order returns):

uv add "entirius-django-checkout[qms,vault,returns]"
INSTALLED_APPS = [
    ...
    "django_utils",
    "django_regional",
    "django_accounts",
    "django_pim",
    "django_pricemanager",
    "django_checkout",
]

# The list works first in, first out: the first entry is checked first.
AUTHENTICATION_BACKENDS = [
    "django_accounts.backends.JWTAccessBackend",
    "django.contrib.auth.backends.ModelBackend",  # default Django auth, needed for /admin
]

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

Required settings: PRIVATE_DIR, EXPORT_DIR, BI_ENVIRONMENT and BI_BUSINESS_UNIT; the module refuses to import without them. Reference with the optional toggles: https://github.com/entirius/entirius-django-checkout/blob/develop/docs/configuration.md.

The storefront API reads its key from the X-API-KEY header. With django_access installed the key is an access token: scope checkout.storefront for the storefront key, checkout.erase for the admin erase key (which also needs --expires-days <days>):

python manage.py access_token create --application <name> --create-application --scope checkout.storefront --channel <idx>

Without django_access, create the keys with python manage.py generate-api-key <channel_idx> and python manage.py generate-api-admin-key <channel_idx>.

Quick start

from django_checkout.models import Channel
from django_checkout.services.cart_service import get_cart

channel = Channel.objects.get(idx="default")
cart = get_cart(channel, cart_id)

Requirements

  • Python 3.11 or newer, Django 5.0 or newer.
  • PostgreSQL.
  • Entirius packages pulled in: entirius-django-utils, entirius-django-regional, entirius-django-pim, entirius-django-accounts, entirius-django-pricemanager, the payment gateway SDKs (entirius-py-payu-sdk, entirius-py-paypal-sdk, entirius-py-autopay-sdk, entirius-py-przelewy24-sdk, entirius-py-paynow-sdk), entirius-py-bievents, entirius-py-idx-normalizator, entirius-py-process-logger.

Documentation

Part of Entirius

This module runs inside the Entirius backend service (Volkanos), next to the catalog, price and account 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-checkout/blob/develop/AGENTS.md

License

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

Metadata

Release files for entirius-django-checkout 10.0.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-checkout 10.0.0
File Size Uploaded Provenance Actions
entirius_django_checkout-10.0.0.tar.gz 921.1 kB Without provenance Details for entirius_django_checkout-10.0.0.tar.gz

Built distribution (wheel)

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

Total release size: 1.3 MB

Release files / entirius_django_checkout-10.0.0.tar.gz

Download URL entirius_django_checkout-10.0.0.tar.gz
Size 921.1 kB
Tags Source
SHA-256 checksum
How to use checksums
bb0fd5d47950583efe2cc708e9872be929d17d211351ec859156af9cff1d36e9
BLAKE2b-256 checksum
How to use checksums
f5db54ac427653a70cb0fdcfbc3339b98d0baacacdb5cc40564f2683682acfda
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_checkout-10.0.0-py3-none-any.whl

Download URL entirius_django_checkout-10.0.0-py3-none-any.whl
Size 344.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
04e06a6e3ae055bce4ac6087025c29c0090a9718d368fd4c7d40ce5b87637ed0
BLAKE2b-256 checksum
How to use checksums
4d6a1fe0aade2f5a534e265ca12de0d5217bce754c2a9039a3b9d0d1d51673b8
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-checkout 10.0.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.

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