Django packages/apps for building an e-commerce site, a store, and or most other kinds of selling things on the internet.
Package | Saleor | django-oscar | ReviewBoard | shopify_python_api | LFS - Lightning Fast Shop | satchless | Cartridge | Longclaw | Plata | dj-shop-cart | django-reviews | Django Vendor |
---|
Package | Saleor | django-oscar | ReviewBoard | shopify_python_api | LFS - Lightning Fast Shop | satchless | Cartridge | Longclaw | Plata | dj-shop-cart | django-reviews | Django Vendor |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Description |
Saleor Core: the high performance, composable, headless commerce API. |
Domain-driven e-commerce for Django |
An extensible and friendly code review tool for projects and companies of all sizes. |
ShopifyAPI library allows Python developers to programmatically access the admin section of stores |
An online-shop based on Django | E-commerce for Python | Ecommerce for Mezzanine | A shop for Wagtail CMS |
Plata - the lean and mean Django-based Shop |
A simple and flexible cart manager for your django projects. |
Generic, reusable reviews for Django |
|
Category | Framework | Framework | Project | Project | Framework | Other | App | Framework | App | App | App | App |
# Using This |
94
![]() |
246
![]() |
14
![]() |
4
![]() |
15
![]() |
18
![]() |
21
![]() |
9
![]() |
15
![]() |
3
![]() |
6
![]() |
0
![]() |
Python 3? | ||||||||||||
Development Status | Unknown | Production/Stable | Production/Stable | n/a | Unknown | Unknown | Production/Stable | Alpha | Production/Stable | Production/Stable | Production/Stable | Unknown |
Last updated | July 15, 2025, 5:12 a.m. | July 9, 2025, 9:32 a.m. | July 9, 2025, 8:38 p.m. | Jan. 20, 2025, 9:52 a.m. | May 28, 2025, 8:12 a.m. | Jan. 10, 2024, 1:19 p.m. | Feb. 22, 2024, 4:25 a.m. | Aug. 13, 2023, 4:17 a.m. | Oct. 2, 2024, 2:26 a.m. | June 16, 2024, 1:54 a.m. | May 8, 2025, 6:53 a.m. | May 19, 2025, 10:38 a.m. |
Version | 2.10.1 | 4.0 | 7.0.3 | n/a | 0.11 | 1.2.0 | 1.3.4 | 1.0.2 | 1.1.0 | 7.1.1 | 1.2.1 | 0.4.20 |
Repo | GitHub | GitHub | GitHub | GitHub | GitHub | GitHub | GitHub | GitHub | GitHub | GitHub | GitHub | GitHub |
Commits | ||||||||||||
Stars | 21,788 | 6,436 | 1,634 | 1,362 | 638 | 780 | 712 | 397 | 201 | 43 | 33 | 15 |
Repo Forks | 5,736 | 2,256 | 434 | 375 | 225 | 143 | 296 | 83 | 63 | 5 | 18 | 4 |
Participants |
maarcingebala
dominik-zeglen IKarbowiak patrys fowczarek Pacu2 mad-anne JakubDraganek akjanik artursmet more... |
codeinthehole
maiksprenger solarissmoke mvantellingen pyup-bot mbertheau dependabot[bot] dependabot-preview[bot] specialunderwear viggo-devries more... |
chipx86
davidt freshstrangemusic michelle-aubin mikeconley justy777 sgallagher smacleod gkm4d medanat more... |
dylanahsmith
jamiemtdwyer Paulinakhew mllemango kevinhughes27 andyw8 gavinballard tylerball mkevinosullivan paulomarg more... |
diefenbach
pigletto mthornhill restless naro mindflayer simahawk baffolobill vincic DNX more... |
patrys
paluh emesik mirekm mociepka brew greggarson anentropic bitrut aniav more... |
stephenmcd
henri-hulski AlexHill dfalk sebasmagri jerivas ryneeverett dsanders11 goodtune sjkingo more... |
JamesRamm
pyup-bot dependabot[bot] alexfromvl Purple-Skittles nickmoreton thenewguy sidnetopia BenSturmfels Blake-G more... |
matthiask
fiee frog32 DrMeers LeaFin armicron stefanklug tjwalch eonpatapon pdebuyl more... |
Tobi-De
dependabot[bot] aimedey19 |
diefenbach
JostCrow pigletto |
rhimmelbauer
renderbox mgcamisa fahzee1 devo-wm dependabot[bot] vamatrivedi1994 |
Documentation | n/a | n/a | n/a | |||||||||
Multilingual | Yes https://www.transifex.com/projects/p/django-oscar/ | Possible | ||||||||||
Documented | http://django-oscar.readthedocs.org/en/latest/ | http://cartridge.jupo.org | http://longclaw.readthedocs.io/en/latest/ |
|||||||||
Tests | ||||||||||||
Reviews | Yes - reviews and review ratings are supported | Use existing Django packages | Providable by standard django packages | |||||||||
Plugins | Built around OrderProcessor and content plugins | |||||||||||
WYSIWYG Editor | Default install uses bootstrap-wysihtml5 but any other JS widget can easily be dropped in. | Does not belong to the framework | Via the wagtail admin. |
yes TinyMCE can be activated easily; FeinCMS content blocks can be easily reused inside Plata (FeinCMS isn't required to run Plata) | ||||||||
Search | Yes - ships with Haystack configuration but can be easily replaced with custom implementation | + livesearch | Haystack support comes in contrib | Uses Wagtails' search capability |
Does not belong inside shop software | |||||||
Product Types | Yes - A base product type is provided which can be subclassed and extended. Built-in support for digital product types which don't require shipping | Standard, Variants, Configurable Products | Abstract base class to build on | Single product model that handles 0-n variations with 0-n option types. | Incredibly flexible options for modelling your catalogue |
Only comes with example products; you have to write your own product model (third party packages with products are available) | ||||||
PDF Invoice Generation | Possible but not in core | Possible | Possible | |||||||||
Anonymous Checkout | Yes - Can be disabled if not required | Possible | ||||||||||
Shipping options | Extremely flexible. Any part of the shipping calculation can be customised to suit your domain. | Very flexible OOTB. Easy extendable via a plugin API. | Base class to build upon, multiple delivery groups within one order | Flat rate provided plus hooks for implementing your own rules | Basic support for multiple shipping options per country |
Flat rate provided; other options can be implemented through a plugin system | ||||||
Tax calculations | Pluggable tax calculations | |||||||||||
Upsell support | Yes - including automatic offer prompting | Possible | ||||||||||
Continuous Integration | https://travis-ci.org/tangentlabs/django-oscar | https://jenkins.shiningpanda.com/lfs/job/LFS/ | https://travis-ci.org/stephenmcd/cartridge | https://travis-ci.org/JamesRamm/longclaw |
||||||||
Multisite | No and never will | Possible | ||||||||||
Continuous Integration | Yes - https://travis-ci.org/tangentlabs/django-oscar | https://jenkins.shiningpanda.com/lfs/job/LFS/ | http://travis-ci.org/#!/stephenmcd/cartridge | |||||||||
Dynamic Categories | Yes - called "ranges" | No, YAGNI | Possible | (yes) For selecting which order items a discount applies to | ||||||||
PyPi Installable | ||||||||||||
Customer Accounts | Targeted for 1.1 release |
|||||||||||
Multi-Tenant | ||||||||||||
Django Version | 1.3+ | 1.1, 1.2, 1.3 | 1.3 | Cartridge <= 0.3.7 supports Django 1.1 to 1.4 Cartridge >= 0.4.0, <= 0.8.1 supports Django 1.3 to 1.4 Cartridge 0.8.2 and 0.8.3 supports Django 1.4 to 1.5 Cartridge 0.9 supports Django 1.4 to 1.6 |
>=1.8 | 1.4, 1.5 | ||||||
South Support | Migrations included | Full automatically migration | Full migrations included | Not possible because Plata allows configuring the product model | ||||||||
Price sorting/filtering | ||||||||||||
Configurable Checkout Steps | Yes - The checkout can be easily customised to add, remove, alter or combine steps. It's not controlled by a single setting though. | Possible | Single-step and multi-step checkout included with the framework, you can provide your own | Possible through subclassing the Shop object | ||||||||
Stock Control | Possible | + transactional stock control (one transaction per stock change) | ||||||||||
App Integration | Admin can be used but a more sophisticated dashboard is provided. | LFS doesn't use Django admin. | Uses the regular Django admin | |||||||||
Multiple currencies | No and never will | |||||||||||
Wishlists | Planned | Possible | ||||||||||
Demo Site | http://latest.oscarcommerce.com/ | http://demo.getlfs.com | Local only, look in examples/demo/ | http://mezzanine.jupo.org | Several projects in the repository demonstrating various aspects of Plata. | |||||||
Payment Methods | Gateways: DataCash, PayPal, PaymentExpress There is also an accounts extension that provides support for giftcards, loyalty schemes and customer budgets. |
Very flexible OOTB. Easy extendable via a plugin API. Cash on Delivery Bank Account PayPal Credit Card sofortueberweisung.de |
Authorize.net PayPal dotPay SagePay |
Authorize.net eGate PayPal Stripe Braintree PIN |
Braintree, Stripe, Paypal supported in core. Payment gateways are dynamic plugins so you can add your own support. |
PayPal Postfinance Cash on Delivery Ogone |
||||||
List of Sites | Yes https://github.com/django-oscar/django-oscar#case-studies | http://www.getlfs.com/live-shops | http://cartridge.jupo.org/overview.html#sites-using-cartridge | |||||||||
Test coverage | ~83% | Enough | 75% | 82% | 90% + | |||||||
Faceted search/filtering | ||||||||||||
Promotional Codes for Discounts | Possible | |||||||||||
Sales | Yes - Highly sophisticated offers engine. | Possible |
Feature | Description |
---|---|
Multilingual | Full builtin multilingual support. |
Documented | Contains thorough documentation. |
Tests | Contains a suite of unit tests. |
Reviews | Add a comment to a product and/or rate it. |
Plugins | Supports third party plugins. |
WYSIWYG Editor | Support for WYSIWYG editor(s) and/or markup formats. |
Search | Has the framework a builtin search? |
Product Types | Supported product types. |
PDF Invoice Generation | Supports PDF Invoice generation for packaging slips? |
Anonymous Checkout | Can a customer perform a checkout without registration? |
Shipping options | Available shipping options.e |
Tax calculations | Allowing products to be taxable via different shipping/billing areas |
Upsell support | Allow product cross referencing and upselling opportunities |
Continuous Integration | Does the package use a CI service, and where is it? |
Multisite | Multi-tenancy enabled through integration with contrib.sites. |
Continuous Integration | Does the package use a CI service, and where is it? |
Dynamic Categories | Categories can be created for all products under a certain price, that contain a<br>certain attribute (eg colour is blue) and will be automatically updated as the<br>product attributes change. |
PyPi Installable | Can be automatically installed with dependency resolution via pip or setuptools. |
Customer Accounts | Customer accounts integrated with Django auth - for features such as order<br>status, invoices and history. |
Multi-Tenant | If the shop supports multiple sites, can they all be hosted from a single<br>running instance of the application? |
Django Version | Which version of Django is supported? |
South Support | Allows south to be used to migrate the database. |
Price sorting/filtering | Although this sounds as a no brainer, this funtionality is not common. Since<br>dynamic pricing does cause technical issues implementing this. |
Configurable Checkout Steps | Can the checkout steps be combined into a single screen (one step checkout) or<br>multiple (billing/shipping, payment, confirmation) with a single setting. |
Stock Control | Can stock levels be specified with products going out of stock once all<br>purchased? |
App Integration | Does the admin interface support integration of any Django app which provides at<br>least a urls.py? (Eg by making use of Django's admin interface) |
Multiple currencies | Allows to use multiple currencies in one instance. All catalog items can be<br>provided with prices in each currency. |
Wishlists | Allow users to identify wishlist items |
Demo Site | If the framework has a public demo site, a link and login/password are given. |
Payment Methods | We accept M-Pesa, Paypal and Airtel Money. |
List of Sites | Is there a list of sites online that use the E-Commerce app? |
Test coverage | The current test coverage of the package in percent. |
Faceted search/filtering | Products can be filtered by attributes and other criteria. The user can also see<br>the number of results each criteria would yield. |
Promotional Codes for Discounts | Can discount codes be created for the customer to enter and receive a discount.<br>Features such as support date ranges and limit to certain products and<br>categories and optional free shipping. |
Sales | Specify a discount across a range of products and/or categories for a date<br>period. Bonus points if it doesn't add extra database queries each time the<br>product is viewed. |
Search Weight | Package | Description | Last PyPI release | Stars | Forks | |||||
---|---|---|---|---|---|---|---|---|---|---|
{{ item.weight / max_weight * 100 | number:0 }}% | {{ item.title }} | Grid: {{ item.description }} | {{ item.last_released | date: 'mediumDate' }} | N/A | {{ item.score }} | N/A | {{ item.repo_watchers }} | N/A | {{ item.repo_forks }} | N/A |