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.
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
- Module docs: https://github.com/entirius/entirius-django-checkout/tree/develop/docs
- Entirius documentation: https://docs.entirius.com/
- Changelog: https://github.com/entirius/entirius-django-checkout/blob/develop/CHANGELOG.md
Part of Entirius
This module runs inside the Entirius backend service (Volkanos), next to the catalog, price and account modules.
- Backend service: https://github.com/entirius/entirius-service-volkanos
- Docker harness: https://github.com/entirius/entirius-zeno
- Sibling modules: https://github.com/entirius/entirius-django-pricemanager, https://github.com/entirius/entirius-django-accounts, https://github.com/entirius/entirius-django-returns, https://github.com/entirius/entirius-django-vault, https://github.com/entirius/entirius-django-qms
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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.