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 ReviewBoard shuup shopify_python_api Cartridge satchless Longclaw django-carton Django Currencies dj-shop-cart Django Vendor ok-cart small-cart django SHOP LFS - Lightning Fast Shop django-reviews Plata
Package Saleor django-oscar ReviewBoard shuup shopify_python_api Cartridge satchless Longclaw django-carton Django Currencies dj-shop-cart Django Vendor ok-cart small-cart django SHOP LFS - Lightning Fast Shop django-reviews Plata
Description A modular, high performance,
headless e-commerce platform
built with Python, GraphQL,
Django, and React.
Domain-driven e-commerce for
Django
An extensible and friendly
code review tool for projects
and companies of all sizes.
E-Commerce Platform ShopifyAPI library allows
Python developers to
programmatically access the
admin section of stores
Ecommerce for Mezzanine E-commerce for Python A shop for Wagtail CMS 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.
A simple and flexible cart
manager for your django
projects.
Django cart. A python/django ecommerce
framework for simple and small
shops
A Django based shop system An online-shop based on Django Generic, reusable reviews for
Django
Plata - the lean and mean
Django-based Shop
Category Framework Framework Project Framework Project App Other Framework App App App App App Project Framework Framework App App
# Using This 82 239 12 14 2 21 17 8 3 5 0 0 0 1 58 15 6 15
Python 3?
Development Status Unknown Production/Stable Production/Stable Production/Stable n/a Production/Stable Unknown Alpha Production/Stable Production/Stable Production/Stable Pre-Alpha n/a n/a Unknown Unknown Production/Stable Production/Stable
Last updated Dec. 5, 2022, 8:03 a.m. Dec. 1, 2022, 4:37 a.m. Dec. 1, 2022, 2:34 p.m. Aug. 18, 2021, 6:32 p.m. Oct. 19, 2022, 12:21 p.m. Sept. 19, 2022, 1:03 p.m. Aug. 25, 2021, 9:08 a.m. Oct. 25, 2021, 8:33 a.m. Nov. 8, 2021, 6:43 a.m. March 6, 2022, 10:31 a.m. Nov. 29, 2022, 6:02 a.m. Dec. 2, 2022, 7:26 p.m. Sept. 23, 2021, 4:02 p.m. May 7, 2020, 8:59 p.m. Feb. 28, 2021, 1:04 p.m. Feb. 19, 2021, 4:09 a.m. Feb. 18, 2021, 2:46 a.m. Feb. 20, 2021, 3:58 p.m.
Version 2.10.1 3.1 5.0.1 3.1.0 n/a 1.3.4 1.2.0 1.0.2 1.2.1 0.10.1 5.2.0 0.3.0 n/a n/a 1.2.4 0.11 1.2.1 1.1.0
Repo GitHub GitHub GitHub GitHub GitHub GitHub GitHub GitHub GitHub GitHub GitHub GitHub GitHub GitHub GitHub GitHub GitHub GitHub
Commits
Stars 17,572 5,541 1,455 1,951 926 676 788 349 270 87 12 8 5 3 2,922 577 32 187
Repo Forks 4,791 2,029 417 988 272 298 144 78 100 71 2 4 0 1 997 213 16 61
Participants maarcingebala
dominik-zeglen
IKarbowiak
patrys
fowczarek
korycins
Pacu2
mad-anne
salwator
akjanik
more...
codeinthehole
maiksprenger
solarissmoke
mvantellingen
pyup-bot
mbertheau
dependabot-preview[bot]
dependabot[bot]
asiabiega
xordoquy
more...
chipx86
davidt
mikeconley
brennie
justy777
michelle-aubin
sgallagher
smacleod
gkm4d
medanat
more...
tulimaki
chessbr
Pikkupomo
suutari-ai
akx
gurch101
maximlion
wiltso
ruohola
shawnadelic
more...
dylanahsmith
jamiemtdwyer
Paulinakhew
mllemango
kevinhughes27
tanema
andyw8
gavinballard
tylerball
NabeelAhsen
more...
stephenmcd
henri-hulski
AlexHill
dfalk
sebasmagri
jerivas
ryneeverett
dsanders11
goodtune
sjkingo
more...
patrys
paluh
emesik
mirekm
mociepka
brew
greggarson
anentropic
bitrut
aniav
more...
JamesRamm
pyup-bot
alexfromvl
Purple-Skittles
dependabot[bot]
thenewguy
sidnetopia
BenSturmfels
Blake-G
bmoe872
more...
sect2k
Debetux
beckastar
Daniel-Avila
lazybird
racitup
panosl
bashu
einarf
bmihelac
dhendo
pasevin
asucrews
strycore
ydaniv
more...
Tobi-De
dependabot[bot]
da-kodesio
rhimmelbauer
renderbox
mgcamisa
fahzee1
devo-wm
vamatrivedi1994
dependabot[bot]
LowerDeez ralphleyga
dependabot[bot]
jrief
rfleschenberg
chrisglass
khchine5
bmihelac
alesdotio
mbrochh
haricot
rubengrill
febsn
more...
diefenbach
pigletto
mthornhill
restless
naro
mindflayer
simahawk
baffolobill
vincic
DNX
more...
diefenbach
JostCrow
pigletto
matthiask
fiee
frog32
DrMeers
flaiming
LeaFin
armicron
stefanklug
tjwalch
eonpatapon
more...
Documentation n/a n/a n/a n/a n/a n/a n/a
Multilingual Yes https://www.transifex.com/projects/p/django-oscar/ Possible Static strings are translated with gettext.
Model strings are translated using django-parler.
Documented   http://django-oscar.readthedocs.org/en/latest/ http://shuup.readthedocs.io/en/latest/   http://cartridge.jupo.org  
http://longclaw.readthedocs.io/en/latest/
http://www.django-shop.org
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.   Does not belong to the framework  
Via the wagtail admin.
Complete plugin system available for django-CMS: CKEditor, responsive images, Bootstrap-3 grid system, panels, accordion, carousels and many more.   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 Haystack support comes in contrib  
Uses Wagtails' search capability
Yes
using Elasticsearch in combination with Haystack, but can easily be replaced by any custom implementation
  + 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   Single product model that handles 0-n variations with 0-n option types. Abstract base class to build on  
Incredibly flexible options for modelling your catalogue
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.
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 Possible 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
Anonymous Checkout Yes - Can be disabled if not required Possible   - can optionally be disabled
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   Flat rate provided plus hooks for implementing your own rules Base class to build upon, multiple delivery groups within one order  
Basic support for multiple shipping options per country
Costs and options for shipping are pluggable.
It is very easy to build plugins adding the customers logic.
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/stephenmcd/cartridge  
https://travis-ci.org/JamesRamm/longclaw
https://travis-ci.org/awesto/django-shop https://jenkins.shiningpanda.com/lfs/job/LFS/
Multisite Possible No and never will
Continuous Integration Yes - https://travis-ci.org/tangentlabs/django-oscar   http://travis-ci.org/#!/stephenmcd/cartridge http://ci.django-shop.org/job/django-shop/ https://jenkins.shiningpanda.com/lfs/job/LFS/
Dynamic Categories Yes - called "ranges" Possible Possible
Simply categories (ext)
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 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.3 >=1.8 1.9 and later 1.1, 1.2, 1.3 1.4, 1.5
South Support Migrations included   Full migrations included Django migrations 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. Single-step and multi-step checkout included with the framework, you can provide your own 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. 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/   http://mezzanine.jupo.org Local only, look in examples/demo/ local (in the example folder) 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.
 
Authorize.net
eGate
PayPal
Stripe
Braintree
PIN
Authorize.net
PayPal
dotPay
SagePay
 
Braintree, Stripe, Paypal supported in core.
Payment gateways are dynamic plugins so you can add your own support.
All payment providers are handled by external plugins:
PayPal, Stripe, Ogone (on demand)
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%   75% 82% 90% + Enough   90% +
Faceted search/filtering
Promotional Codes for Discounts Possible   - by using special plugins
they can easily be programmed fulfilling the merchant's requirements
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