finds.dev← search

// the find

awesto/django-shop

★ 3,317 · Python · BSD-3-Clause · updated Oct 2023

A Django based shop system

django-SHOP is a framework for building e-commerce sites on top of Django, designed to let you define your own product models rather than conforming to a fixed schema. It's aimed at Django developers who need a real shop — not a SaaS solution — and are willing to write code to get there. Tight integration with django-CMS is a first-class assumption, not optional.

The deferred model pattern (shop/deferred.py, shop/models/defaults/) is genuinely useful: you swap in your own concrete models without forking the library. The cart modifier system is well-designed — pluggable, ordered, easy to extend for taxes, discounts, and shipping in a way that doesn't turn into spaghetti. REST-first architecture means you get a JSON API for every view out of the box, which makes it possible to build a headless frontend without fighting the framework. Localization coverage is solid — 14 languages in shop/locale/ with real translations, not stubs.

Last commit was October 2023 and the Travis CI badge is the tell: this project has effectively stalled. Django 4.x and 5.x compatibility is uncertain, and there's no active maintenance signal. The django-CMS coupling is deep — if you don't want CMS, you'll be fighting the plugin system (shop/cascade/) throughout. The frontend is AngularJS 1.x (shop/static/shop/js/), which is end-of-life and means you're either inheriting a dead JS stack or doing a full rewrite. Getting started requires understanding deferred models, the modifier pool, and the CMS plugin system all at once — the learning curve is steep for something that bills itself as easy and fun.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →