E-Com

Django packages/apps for building an e-commerce site, a store, and or most other kinds of selling things on the internet.

Features currently being evaluated

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
certain attribute (eg colour is blue) and will be automatically updated as the
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
status, invoices and history.
Multi-Tenant If the shop supports multiple sites, can they all be hosted from a single
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
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
multiple (billing/shipping, payment, confirmation) with a single setting.
Stock Control Can stock levels be specified with products going out of stock once all
purchased?
App Integration Does the admin interface support integration of any Django app which provides at
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
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
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.
Features such as support date ranges and limit to certain products and
categories and optional free shipping.
Sales Specify a discount across a range of products and/or categories for a date
period. Bonus points if it doesn't add extra database queries each time the
product is viewed.

Filter results

Package Saleor django-oscar shuup ReviewBoard shopify_python_api django SHOP satchless Cartridge Longclaw LFS - Lightning Fast Shop django-carton Django Currencies Plata Django Vendor django-reviews ok-cart
Package Saleor django-oscar shuup ReviewBoard shopify_python_api django SHOP satchless Cartridge Longclaw LFS - Lightning Fast Shop django-carton Django Currencies Plata Django Vendor django-reviews ok-cart
Description A modular, high performance,
headless e-commerce platform
built with Python, GraphQL,
Django, and React.
Domain-driven e-commerce for
Django
E-Commerce Platform 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
A Django based shop system E-commerce for Python Ecommerce for Mezzanine A shop for Wagtail CMS An online-shop based on Django A simple and lightweight
application for shopping carts
and wish lists.
django-currencies allows you
to define different
currencies, and includes
template tags/filters to allow
easy conversion between them.
Plata - the lean and mean
Django-based Shop
Generic, reusable reviews for
Django
Django cart.
Category Framework Framework Framework Project Project Framework Other App Framework Framework App App App App App App
# Using This 82 239 14 12 2 58 17 21 8 15 3 5 15 0 6 0
Python 3?
Development Status Unknown Production/Stable Production/Stable Production/Stable n/a Unknown Unknown Production/Stable Alpha Unknown Production/Stable Production/Stable Production/Stable Pre-Alpha Production/Stable n/a
Last updated Aug. 17, 2022, 7:44 a.m. July 5, 2022, 10:08 a.m. Aug. 18, 2021, 6:32 p.m. July 28, 2022, 6:13 p.m. Aug. 3, 2022, 12:48 p.m. Feb. 28, 2021, 1:04 p.m. Aug. 25, 2021, 9:08 a.m. July 14, 2022, 6:37 p.m. Oct. 25, 2021, 8:33 a.m. Feb. 19, 2021, 4:09 a.m. Nov. 8, 2021, 6:43 a.m. March 6, 2022, 10:31 a.m. Feb. 20, 2021, 3:58 p.m. Aug. 12, 2022, 5:56 p.m. Feb. 18, 2021, 2:46 a.m. Sept. 23, 2021, 4:02 p.m.
Version 2.10.1 3.1 3.1.0 4.0.10 n/a 1.2.4 1.2.0 1.3.3 1.0.2 0.11 1.2.1 0.10.1 1.1.0 0.2.45 1.2.1 n/a
Repo GitHub GitHub GitHub GitHub GitHub GitHub GitHub GitHub GitHub GitHub GitHub GitHub GitHub GitHub GitHub GitHub
Commits
Stars 16,616 5,422 1,901 1,436 882 2,861 787 664 341 571 267 86 187 7 32 5
Repo Forks 4,661 1,992 970 413 258 988 143 296 75 212 100 71 61 4 16 0
Participants maarcingebala
dominik-zeglen
IKarbowiak
patrys
korycins
fowczarek
Pacu2
mad-anne
salwator
akjanik
more...
codeinthehole
maikhoepfel
solarissmoke
mvantellingen
pyup-bot
mbertheau
dependabot-preview[bot]
asiabiega
dependabot[bot]
xordoquy
more...
tulimaki
chessbr
Pikkupomo
suutari-ai
akx
gurch101
maximlion
wiltso
ruohola
shawnadelic
more...
chipx86
davidt
mikeconley
brennie
justy777
sgallagher
smacleod
gkm4d
medanat
michelle-aubin
more...
dylanahsmith
jamiemtdwyer
Paulinakhew
mllemango
kevinhughes27
tanema
andyw8
gavinballard
tylerball
NabeelAhsen
more...
jrief
rfleschenberg
chrisglass
khchine5
bmihelac
alesdotio
mbrochh
haricot
rubengrill
febsn
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
alexfromvl
Purple-Skittles
dependabot[bot]
thenewguy
sidnetopia
BenSturmfels
Blake-G
bmoe872
more...
diefenbach
pigletto
mthornhill
restless
naro
mindflayer
simahawk
baffolobill
vincic
DNX
more...
sect2k
Debetux
beckastar
Daniel-Avila
lazybird
racitup
panosl
bashu
einarf
bmihelac
dhendo
pasevin
asucrews
strycore
ydaniv
more...
matthiask
fiee
frog32
DrMeers
flaiming
LeaFin
armicron
stefanklug
tjwalch
eonpatapon
more...
rhimmelbauer
renderbox
mgcamisa
devo-wm
vamatrivedi1994
dependabot[bot]
diefenbach
JostCrow
pigletto
LowerDeez
Documentation n/a n/a n/a n/a n/a n/a
Multilingual Yes https://www.transifex.com/projects/p/django-oscar/ Static strings are translated with gettext.
Model strings are translated using django-parler.
Possible
Documented   http://django-oscar.readthedocs.org/en/latest/ http://shuup.readthedocs.io/en/latest/ http://www.django-shop.org   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   (addons)   Built around OrderProcessor and content plugins
WYSIWYG Editor Default install uses bootstrap-wysihtml5 but any other JS widget can easily be dropped in. Complete plugin system available for django-CMS: CKEditor, responsive images, Bootstrap-3 grid system, panels, accordion, carousels and many more.   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 Yes
using Elasticsearch in combination with Haystack, but can easily be replaced by any custom implementation
Haystack support comes in contrib  
Uses Wagtails' search capability
  + livesearch   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 Any product types available Any product type can be described.
Just extend the provided base class and add the product's attributes. This allows to add any kind of variation.
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
Standard, Variants, Configurable Products   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 Invoices are rendered using HTML with CSS optimized for printing, which allows to style them using standard Django templates.
They then are paginated and can be printed page by page using a header and footer.
Possible Possible
Anonymous Checkout Yes - Can be disabled if not required   - can optionally be disabled
Possible
Shipping options Extremely flexible. Any part of the shipping calculation can be customised to suit your domain. Shipstation addon available with built in automation for drop shipping Costs and options for shipping are pluggable.
It is very easy to build plugins adding the customers logic.
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
Very flexible OOTB. Easy extendable via a plugin API.   Flat rate provided; other options can be implemented through a plugin system
Tax calculations Pluggable tax calculations Any kind of tax model can be applied using plugins.
Upsell support Yes - including automatic offer prompting Possible
Continuous Integration https://travis-ci.org/tangentlabs/django-oscar   https://travis-ci.org/shuup/shuup https://travis-ci.org/awesto/django-shop   https://travis-ci.org/stephenmcd/cartridge  
https://travis-ci.org/JamesRamm/longclaw
https://jenkins.shiningpanda.com/lfs/job/LFS/
Multisite Possible No and never will
Continuous Integration Yes - https://travis-ci.org/tangentlabs/django-oscar http://ci.django-shop.org/job/django-shop/   http://travis-ci.org/#!/stephenmcd/cartridge https://jenkins.shiningpanda.com/lfs/job/LFS/
Dynamic Categories Yes - called "ranges" Possible
Simply categories (ext)
Possible No, YAGNI (yes) For selecting which order items a discount applies to
PyPi Installable
Customer Accounts  
Targeted for 1.1 release
Multi-Tenant possible
Django Version 1.3+ Django>=1.9.0,<1.10 1.9 and later 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.1, 1.2, 1.3 1.4, 1.5
South Support Migrations included Django migrations   Full migrations included Full automatically migration   Not possible because Plata allows configuring the product model
Price sorting/filtering The catalog's list view is controlled via Django REST framework. Hence all filtering capabilities are available.
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. Each form required for the checkout steps is a plugin which can be combined and positioned hierarchically. This allows to build checkouts in a very flexible manner. Single-step and multi-step checkout included with the framework, you can provide your own Possible Possible through subclassing the Shop object
Stock Control Possible Possible  + transactional stock control (one transaction per stock change)
App Integration Admin can be used but a more sophisticated dashboard is provided. Uses the regular Django admin LFS doesn't use Django admin.
Multiple currencies No and never will
Wishlists Planned Possible
Demo Site http://latest.oscarcommerce.com/ local (in the example folder) Local only, look in examples/demo/   http://mezzanine.jupo.org http://demo.getlfs.com 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.
All payment providers are handled by external plugins:
PayPal, Stripe, Ogone (on demand)
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.
Very flexible OOTB. Easy extendable via a plugin API.

Cash on Delivery
Bank Account
PayPal
Credit Card
sofortueberweisung.de

PayPal
Postfinance
Cash on Delivery
Ogone
List of Sites Yes https://github.com/django-oscar/django-oscar#case-studies   http://cartridge.jupo.org/overview.html#sites-using-cartridge http://www.getlfs.com/live-shops
Test coverage ~83% 90% +   75% 82% Enough   90% +
Faceted search/filtering
Promotional Codes for Discounts   - by using special plugins
they can easily be programmed fulfilling the merchant's requirements
Possible
Sales Yes - Highly sophisticated offers engine. Possible
Search Weight Package Description Last PyPI release: Repo Forks Stars
{{ item.weight / max_weight * 100 | number:0 }}% {{ item.title }} Grid: {{ item.description }} {{ item.last_released | date: 'mediumDate' }} N/A {{ item.repo_forks }} N/A {{ item.repo_watchers }} N/A