Mike Slinn

Customizing Django-Oscar for Selling a Custom-Built Product

Published 2021-02-23.
Time to read: 2 minutes.

This page is part of the ancientWarmth collection.

I am looking into using django-oscar to sell custom-made products.

Problem Statement

There is only one SKU, but it has 4 properties that customers can specify: chemicals, color, scent and weight.

  • Chemicals is a JSON object (a dictionary of name/value pairs), and we will need to use that to keep track of inventory of the chemicals.
  • Weight is an integer between 200 and 20000.
  • Scent and color each have a dozen values at present.

Customers will make up recipes and share them with each other. A recipe is a combination of the 4 properties. Product will be made to order, so we will only stock raw ingredients, not finished product.

I already have an HTML/JavaScript page that allows customers to choose values for the 4 product properties. Costing needs to be done via an Ajax call to an API that needs to be exposed by Django.

Currently, there is one fulfillment partner (me), but out of the box django-oscar only applies fulfillment partners to fully defined products.


  1. Is django-oscar capable of selling custom products such as I describe? This discussion of the strategy makes me think django-oscar can do it somehow.
  2. It does not seem like the default admin dashboard is suitable for defining custom products, so it will also need to be enhanced.
  3. I think the Catalogue and the Dashboard apps will need to be forked. Will I also need to fork Basket and Order and Partner also?
  4. How would I approach setting this type of store up? I have looked at the customization docs, but I have not tried to move forward yet, still trying to get a handle on things.

Tables / Models / Whatever

A product's recipe consists of ingredients, sourced from suppliers. The recipe might be associated with a user, or it might be global. Ingredients have costs, which are determined by what the supplier charged, shipping, customs, tax, a manufacturing processing cost estimate, and a certain amount of waste. Suppliers provide ingredients by accepting purchase orders, with expected delivery dates. Ingredients that are anticipated but not yet received are back orders.

Products are priced according to a cost-plus computation, which includes flat and variable fees and minimum order.

Products are built according to the factory schedule (Tuesdays and Fridays), and are queued first in, first out, but only after all ingredients are available. For now, we assume that we will be able to empty the queue every day of production.

When an order is accepted, the estimated ship date is computed based on available ingredients and back order dates, rounded to the next available production date.

* indicates a required field.

Please select the following to receive Mike Slinn’s newsletter:

You can unsubscribe at any time by clicking the link in the footer of emails.

Mike Slinn uses Mailchimp as his marketing platform. By clicking below to subscribe, you acknowledge that your information will be transferred to Mailchimp for processing. Learn more about Mailchimp’s privacy practices.