Hi, I'm
Adam Brenecki
a developer from Adelaide, Australia.

Lorikeet

A simple, API-only, CMS-agnostic shopping cart for Django.
Source code Documentation

Note: Lorikeet is a work in progress. It is in use in production, but it's still not yet stable enough for third-party production use.

E-commerce apps are divided into two types: simple ones that work well so long as what you're selling is simple, and complex ones that try to be all things to all people by way of a maze of checkboxes and dropdowns.

Lorikeet isn't an e-commerce app; it's a shopping cart framework. With Lorikeet, you define models for line items (the things that go in your cart), delivery addresses and payment methods yourself. For complex shops, this means you can model exactly the functionality you need without fighting the system. For simple shops, this is a simple process that requires way less code than you'd expect, and gives you a system without unnecessary bloat, but with room to grow.

Lorikeet only cares about the cart itself; everything outside of that, including your navigation and product pages, is directly under your control, so you're free to use a simple ListView and DetailView, Wagtail, Mezzanine, Django CMS, or something totally bespoke. There's not a single line of HTML or CSS in Lorikeet's codebase either, so Lorikeet gives you total control over your visuals too.

Lorikeet line items, delivery addresses and payment methods are designed to be orthogonal, so you can package them as reusable apps and share them internally between sites in your company, or with the world as open-source packages. In fact, Lorikeet already includes an optional Stripe payment method plugin, totally separate from the rest of the codebase and written against the same public API as your own apps.

Because most modern payment providers require JavaScript anyway, Lorikeet is API-only. This lets you build a fast, frictionless shopping experience where users can add to and change their shopping carts without the entire page refreshing each time, and Lorikeet's API is designed to allow logged-in repeat users to check out in a single click.