E-Commerce

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

FeatureDescription
Reviews Add a comment to a product and/or rate it.
WYSIWYG Editor Support for WYSIWYG editor(s) and/or markup formats.
Documented Contains thorough documentation.
Plugins Supports third party plugins.
Multilingual Full builtin multilingual support.
SEO Builtin tools for SEO.
Tests Contains a suite of unit tests.
Shipping options Available shipping options.
Product Types Supported product types.
Search Has the framework a builtin search?
PDF Invoice Generation Supports PDF Invoice generation for packaging slips?
Anonymous Checkout Can a customer perform a checkout without registration?
Tax calculations Allowing products to be taxable via different shipping/billing areas
Upsell support Allow product cross referencing and upselling opportunities
Multisite Multi-tenancy enabled through integration with contrib.sites.
Continuous Integration Does the package use a CI service, and where is it?
Multi-Tenant If the shop supports multiple sites, can they all be hosted from a single
running instance of the application?
Customer Accounts Customer accounts integrated with Django auth - for features such as order
status, invoices and history.
PyPi Installable Can be automatically installed with dependency resolution via pip or setuptools.
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.
Django Version Which version of Django is supported?
South Support Allows south to be used to migrate the database.
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?
Price sorting/filtering Although this sounds as a no brainer, this funtionality is not common. Since
dynamic pricing does cause technical issues implementing this.
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.
Payment Methods We accept M-Pesa, Paypal and Airtel Money.
Demo Site If the framework has a public demo site, a link and login/password are given.
Test coverage The current test coverage of the package in percent.
Wishlists Allow users to identify wishlist items
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.
List of Sites Is there a list of sites online that use the E-Commerce app?
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.
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.
Package django-oscar Saleor django SHOP shuup satchless Cartridge LFS - Lightning Fast Shop Satchmo shopify_python_api django-carton django-cart Plata Longclaw mamona KoalixCRM Django Currencies django-changuito django-sellmo django-easycart django-simple-forex Django session cart django-ajax-shop django-shop-area-tax django-simple-currencies welut django-simple-currencies gnocchi-catalogue
Package django-oscar Saleor django SHOP shuup satchless Cartridge LFS - Lightning Fast Shop Satchmo shopify_python_api django-carton django-cart Plata Longclaw mamona KoalixCRM Django Currencies django-changuito django-sellmo django-easycart django-simple-forex Django session cart django-ajax-shop django-shop-area-tax django-simple-currencies welut django-simple-currencies gnocchi-catalogue
Description Domain-driven e-commerce for
Django
A modular, high performance
e-commerce storefront built
with Python, GraphQL, Django,
and ReactJS.
A Django based shop system E-Commerce Platform E-commerce for Python Ecommerce for Mezzanine An online-shop based on Django Satchmo is an ecommerce
framework built on the Django
framewo...
ShopifyAPI library allows
Python developers to
programmatically access the
admin section of stores
A simple and lightweight
application for shopping carts
and wish lists.
Django simple shopping cart
solution, with tests :)
Plata - the lean and mean
Django-based Shop
A shop for Wagtail CMS Fully portable Django payments
application that can use any
Order/Cart model.
Beautiful CRM/ERP for small
business
django-currencies allows you
to define different
currencies, and includes
template tags/filters to allow
easy conversion between them.
This is a fork of the fork of
django-cart .. It reminds me
this quote...
http://www.youtube.com/watch?v=VkpjiohfmQU
... but if you ...
Ambitious Django based
e-commerce framework
A flexible session-based
shopping cart application for
Django.
A 'cart' for Django, stored in
a visitors Session
a little and fast reusable
shop application ajax based
Area tax cart processor for
django-shop
Currency, exchange rate and
conversions support for django
projects
:wavy_dash: welut is django
plugin to convert the .epub,
.mobi or .pdf files as images.
Usefull to manage e-library or
...
Currency, exchange rate and
conversions support for django
projects
A Product Catalogue app for
Gnocchi
CategoryFrameworkFrameworkFrameworkFrameworkOtherAppFrameworkFrameworkProjectAppAppAppFrameworkAppProjectAppAppFrameworkAppAppAppAppAppAppAppAppApp
# Using This142153961619133203015312410211110101
Python 3?
Development Status Production/Stable n/a Unknown Production/Stable Unknown Beta Unknown Beta n/a Production/Stable Production/Stable Production/Stable Alpha n/a Beta Beta Production/Stable n/a Alpha n/a n/a n/a n/a Unknown Production/Stable Unknown n/a
Last updated Oct. 28, 2018, 11:10 p.m. Nov. 14, 2018, 8:05 a.m. Oct. 31, 2018, 11:01 a.m. Nov. 14, 2018, 2:15 p.m. Sept. 10, 2016, 9:49 a.m. June 14, 2018, 9:43 p.m. Jan. 4, 2018, 9:28 a.m. Oct. 12, 2017, 1:14 p.m. Nov. 12, 2018, 5:06 p.m. June 15, 2016, 2:39 p.m. April 1, 2017, 7:17 p.m. Oct. 11, 2018, 1:01 p.m. June 2, 2018, 7:36 a.m. March 6, 2013, 11:43 a.m. Dec. 29, 2017, 5:24 a.m. Nov. 14, 2018, 7:44 a.m. Aug. 14, 2017, 1:24 p.m. Dec. 9, 2015, 11:44 a.m. Oct. 3, 2018, 2:04 a.m. June 1, 2016, 3:53 a.m. Nov. 12, 2012, 6:16 p.m. April 3, 2013, 3:09 p.m. April 20, 2012, 12:18 p.m. June 2, 2015, 12:26 a.m. Nov. 24, 2017, 1:32 a.m. June 2, 2015, 12:26 a.m. March 18, 2011, 4:18 a.m.
Version1.6.4n/a0.12.32.0.01.1.30.13.00.110.9.2n/a1.2.11.0.41.1.00.2.1n/a0.50.4.01.2n/a0.4.0n/an/an/an/a0.11.0.40.1n/a
RepoGithubGithubGithubGithubGithubGithubGithubBitbucketGithubGithubGithubGithubGithubGithubGithubGithubGithubGithubGithubGithubBitbucketGithubGithubGithubGithubGithubBitbucket
Commits
Stars3433307417007997305714833913492281841801371248365492120119754444
Repo Forks1331133863340212527418222612375112602317235122291451141n/a
Participantscodeinthehole
maikhoepfel
mvantellingen
solarissmoke
sasha0
mbertheau
pyup-bot
asiabiega
xordoquy
OliverRandell
more...
maarcingebala
patrys
dominik-zeglen
Pacu2
mad-anne
artursmet
akjanik
mociepka
koradon
salwator
more...
jrief
rfleschenberg
chrisglass
khchine5
bmihelac
alesdotio
mbrochh
rubengrill
haricot
febsn
more...
tulimaki
suutari-ai
Pikkupomo
chessbr
akx
gurch101
shawnadelic
tmskrtsz
finmaster19
maximlion
more...
patrys
paluh
emesik
mirekm
mociepka
brew
greggarson
anentropic
bitrut
aniav
more...
stephenmcd
AlexHill
dfalk
sebasmagri
jerivas
ryneeverett
dsanders11
goodtune
sjkingo
Kniyl
more...
diefenbach
pigletto
mthornhill
restless
naro
invalid-email-address
mindflayer
simahawk
baffolobill
vincic
more...
chris1610dylanahsmith
jamiemtdwyer
kevinhughes27
gavinballard
ShayneP
benjlcox
marcvanolmen
asiviero
lugray
allanarmstrong
more...
lazybird
sect2k
Debetux
beckastar
bmentges
dfalk
michaelavila
vodopyanovas
caroso1222
michaelrice
tfyr
furins
jordij
matthiask
fiee
frog32
DrMeers
flaiming
LeaFin
armicron
stefanklug
tjwalch
eonpatapon
more...
JamesRamm
pyup-bot
alexfromvl
bumbleshet
BenSturmfels
johncurley
SamuelM333
emesik
radiosilence
tbarbugli
tfroehlich82
scaphilo
sebastian-code
waffle-iron
panosl
bashu
racitup
einarf
bmihelac
dhendo
strycore
ydaniv
cxong
davej
more...
angvp
bmentges
dfalk
friendka
EduardoMiravalls
bitdeli-chef
maguayo
mapeveri
cristianprieto
adaptivdesignnevimov
n3storm
ashwin31
chaitu210
funkybobattuchLacrymologypanosl
bashu
bmihelac
dhendo
strycore
ydaniv
davej
noxan
stelzzz
agusmakmunpanosl
bashu
bmihelac
dhendo
strycore
ydaniv
davej
noxan
stelzzz
funkybob
Documentation N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
ReviewsYes - reviews and review ratings are supportedUse existing Django packagesProvidable by standard django packages
WYSIWYG EditorDefault 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  yes TinyMCE can be activated easily; FeinCMS content blocks can be easily reused inside Plata (FeinCMS isn't required to run Plata) 
Via the wagtail admin.
  Through django grappelli or other admin systems.html markup in Product description..
Documented  http://django-oscar.readthedocs.org/en/latest/http://saleor.readthedocs.io/http://www.django-shop.orghttp://shuup.readthedocs.io/en/latest/  http://cartridge.jupo.org 
http://longclaw.readthedocs.io/en/latest/
Not yet, stable release is in the works. Documentation to follow shortly after.
Plugins  (addons)  Built around OrderProcessor and content plugins  Modularity is a key design pattern. Literally every functionality can be extended, replaced or disabled.
MultilingualYes https://www.transifex.com/projects/p/django-oscar/Static strings are translated with gettext.
Model strings are translated using django-parler.
Possible
SEOSitemaps for products and CMS pages.
The merchant can add arbitrary meta tags.
Possible 
SEO support for product pages from Wagtail
Tests
Shipping optionsExtremely flexible. Any part of the shipping calculation can be customised to suit your domain.Per-country shipping rules provided out of the box, custom options are easy to implement

Split deliveries for a single order
Costs and options for shipping are pluggable.
It is very easy to build plugins adding the customers logic.
Shipstation addon available with built in automation for drop shippingBase class to build upon, multiple delivery groups within one order  Flat rate provided plus hooks for implementing your own rulesVery flexible OOTB. Easy extendable via a plugin API.  Flat rate provided; other options can be implemented through a plugin system 
Basic support for multiple shipping options per country
cost of shipping configurable
Product TypesYes - A base product type is provided which can be subclassed and extended. Built-in support for digital product types which don't require shippingBase product with variants, attributes can be added to both the product and its variantsAny 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.
Any product types availableAbstract base class to build on  Single product model that handles 0-n variations with 0-n option types.Standard, Variants, Configurable Products  Only comes with example products; you have to write your own product model (third party packages with products are available) 
Incredibly flexible options for modelling your catalogue
  Builds upon polymorphism and allows for custom product models and subtypes. While maintaining the ability to integrate these subtypes with existing modules such as the variation module.Tags Section 
Products are grouped by tagging.
Also, any product has 1-N Variants
SearchYes - ships with Haystack configuration but can be easily replaced with custom implementationYes, using either PostgreSQL or ElasticsearchYes
using Elasticsearch in combination with Haystack, but can easily be replaced by any custom implementation
Haystack support comes in contrib  + livesearch  Does not belong inside shop software 
Uses Wagtails' search capability
  Fully fledged indexing system with a django style QuerySet search layer. Supporting either the django ORM as backend or other Non-relational databases.
PDF Invoice GenerationPossible but not in coreInvoices 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.
PossiblePossible  Provides an abstraction layer for report generation through different adapters, such as weasyprint or phantomjs.
Anonymous CheckoutYes - Can be disabled if not required  - can optionally be disabled
Possible  User registration is not required, but can be if desired. Provides a fully configurable checkout pipeline.
Tax calculationsPluggable tax calculationsVatlayer integration supports EU VAT.

Avalara planned for US.
Any kind of tax model can be applied using plugins.
  Provids a tax module with multiple tax subtypes. Can be easily extended.
Upsell supportYes - including automatic offer promptingPossible  Not yet
MultisitePossibleNo and never will
Continuous Integrationhttps://travis-ci.org/tangentlabs/django-oscarhttps://travis-ci.org/mirumee/saleorhttps://travis-ci.org/awesto/django-shop  https://travis-ci.org/shuup/shuup  https://travis-ci.org/stephenmcd/cartridgehttps://jenkins.shiningpanda.com/lfs/job/LFS/ 
https://travis-ci.org/JamesRamm/longclaw
Multi-Tenantpossible
Customer Accounts 
Targeted for 1.1 release
  Has a customer module with multiple sub modules for account views.
PyPi InstallableNot yet, stable release is in the works.
Continuous IntegrationYes - https://travis-ci.org/tangentlabs/django-oscarhttps://travis-ci.org/mirumee/saleorhttp://ci.django-shop.org/job/django-shop/  http://travis-ci.org/#!/stephenmcd/cartridgehttps://jenkins.shiningpanda.com/lfs/job/LFS/
Dynamic CategoriesYes - called "ranges"Possible
Simply categories (ext)
PossibleNo, YAGNI(yes) For selecting which order items a discount applies to
Django Version1.3+1.11, 2.01.9 and laterDjango>=1.9.0,<1.101.3Cartridge <= 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.1, 1.2, 1.31.4, 1.5>=1.81.8+1.31.1+
South SupportMigrations includedDjango migrationsDjango migrations  Full migrations includedFull automatically migration  Not possible because Plata allows configuring the product model  Fully supports Django migrations
Configurable Checkout StepsYes - The checkout can be easily customised to add, remove, alter or combine steps. It's not controlled by a single setting though.Saleor is meant to be forked so you can just edit the code

Default checkout will skip steps that don't make sense like shipping for non-shippable items
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 ownPossiblePossible through subclassing the Shop object  The checkout process is abstracted and a default implementation is provided.
Stock ControlPossiblePossible + transactional stock control (one transaction per stock change)  Through availability module. With support for backorders. Though custom sync functionality should be created through celery.
Price sorting/filteringThe catalog's list view is controlled via Django REST framework. Hence all filtering capabilities are available.  Also possible through generated product indexes.
App IntegrationAdmin can be used but a more sophisticated dashboard is provided.Custom dashboardUses the regular Django adminLFS doesn't use Django admin.Django Admin, possible with Django-Cms
Multiple currenciesPrices can be shown in any currency but are entered in store's native currencyNo and never will
Payment MethodsGateways: DataCash, PayPal, PaymentExpress

There is also an accounts extension that provides support for giftcards, loyalty schemes and customer budgets.
All supported by django-payments:

Authorize.net
Braintree
Coinbase
Cybersource
Dotpay
Google Wallet
PayPal
Sage Pay
Sofort
Stripe
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
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
 
Braintree, Stripe, Paypal supported in core.
Payment gateways are dynamic plugins so you can add your own support.
Paypal
Demo Sitehttp://latest.oscarcommerce.com/https://demo.getsaleor.com/local (in the example folder)Local only, look in examples/demo/  http://mezzanine.jupo.orghttp://demo.getlfs.comSeveral projects in the repository demonstrating various aspects of Plata.http://acquista.dolcericordo.it
Test coverage~83%~85%90% +  75%Enough  90% +82%
WishlistsPlannedPossible
Faceted search/filtering  Because of thorough indexing functionality, Sellmo is capable of querying facets even with a database backend.
List of SitesYes https://github.com/django-oscar/django-oscar#case-studies  http://cartridge.jupo.org/overview.html#sites-using-cartridgehttp://www.getlfs.com/live-shopshttp://acquista.dolcericordo.it
SalesYes - Highly sophisticated offers engine.Possible
Promotional Codes for Discounts  - by using special plugins
they can easily be programmed fulfilling the merchant's requirements
Possible
Search WeightPackageDescriptionLast PyPI release:Repo ForksStars
{{ 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