finds.dev← search

// the find

stephenmcd/cartridge

★ 712 · Python · BSD-2-Clause · updated Feb 2024

Ecommerce for Mezzanine

Cartridge is a Django e-commerce plugin that bolts onto Mezzanine CMS to give you a working shop with products, variants, discount codes, stock control, and a pluggable checkout pipeline. It targets developers who want a starting point they can modify rather than a hosted SaaS, and who are already committed to the Mezzanine stack. Last meaningful activity was early 2024 and the project is effectively in maintenance mode.

The hook-based architecture for tax, shipping, and payment is genuinely well thought out — you swap in your own callables via settings rather than subclassing or patching. Denormalized order data means historical orders don't break when you later change product structures, which is a real-world e-commerce problem most toy projects ignore. The checkout pipeline is configurable at the step level, so you can collapse or expand the flow without rewriting views. i18n coverage across 20+ locales is solid and actually maintained.

Hard dependency on Mezzanine is the biggest adoption risk — Mezzanine itself is also in slow decline, and you're inheriting that trajectory. No async support anywhere: every view and payment call is synchronous, which becomes a problem at any real load. The bundled payment backends (Authorize.net, PayPal, Stripe) are all community-maintained third-party packages of varying freshness — don't assume they work with current API versions without testing. No webhook handling, no inventory reservation, and no concept of digital goods; you'll be writing all of that yourself, at which point you're questioning why you didn't start with something like django-oscar.

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 →