A simple to use product variations module for django SHOP
Project description
This app’s purpose is to provide a way to quickly create product variations for most simple cases.
It considers variations as a {label: value} entry in the cart modifiers, so it is perfect for things like differently priced colors, or build-your-own computers for example.
Installation
This requires django SHOP to work (https://github.com/chrisglass/django-shop)
Add the app to your INSTALLED_APPS in your settings.py
Add shop_simplevariations.cart_modifier.ProductOptionsModifier to your SHOP_CART_MODIFIERS setting.
Add (r’^shop/cart/’, include(simplevariations_urls)), to your urls.py just before (r’^shop/’, include(shop_urls)),
Your urls.py should look like this:
from django.conf.urls.defaults import * from django.contrib import admin from shop import urls as shop_urls from shop_simplevariations import urls as simplevariations_urls admin.autodiscover() urlpatterns = patterns('', (r'^admin/', include(admin.site.urls)), (r'^shop/cart/', include(simplevariations_urls)), (r'^shop/', include(shop_urls)), )
Usage
Create an Option group in the admin view
Bind it to a product
Add options and the corresponding price to the group.
When a CartItemOption object is linked to a CartItem, the option’s value will be added to the CartItem’s price and a corresponding extra field willbe added to the Cart/Order.
Override django-shop’s product_detail.html template and add selection elements so that your users can select variations.
The product_detail.html template
The simple product_detail.html that ships with the shop doesn’t take variations into consideration.
Therefore you need to override the template. django-shop-simplevariations ships with two templatetags that help creating drop down lists so that a customer can actually chose variation.
First make sure to load the simplevariation templatetags:
{% load simplevariation_tags %} <h1>Product detail:</h1> ...
Next create the drop down lists of OptionsGroups and Options:
<form method="post" action="{% url cart %}">{% csrf_token %} {% with option_groups=object|get_option_groups %} {% if option_groups %} <div> <h2>Variations:</h2> {% for option_group in option_groups %} <label for="add_item_option_group_{{ option_group.id }}">{{ option_group.name }}</label> {% with option_group|get_options as options %} <select name="add_item_option_group_{{ option_group.id }}"> {% for option in options %} <option value="{{ option.id }}">{{ option.name }}</option> {% endfor %} </select> {% endwith %} {% endfor %} </div> {% endif %} {% endwith %} {% with text_options=object.text_options.all %} {% if text_options %} <div> <h2>Text options:</h2> {% for text_option in text_options %} <label for="add_item_text_option_{{ text_option.id }}">{{ text_option.name }}</label> <input type="text" name="add_item_text_option_{{ text_option.id }}" value=""/> {% endfor %} </div> {% endif %} {% endwith %} <input type="hidden" name="add_item_id" value="{{object.id}}"> <input type="hidden" name="add_item_quantity" value="1"> <input type="submit" value="Add to cart"> </form>
Contributing
Feel free to fork this project on github, send pull requests… development discussion happends on the django SHOP mailing list (django-shop@googlegroups.com)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for django-shop-simplevariations-0.0.4.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | f252568f451e3818ad7ccd66b03c8d7b3295e4078e21ab0f6e08275f7c2c3c89 |
|
MD5 | b41adfe4fa69791f66d01bc94957050c |
|
BLAKE2b-256 | deaf358122c3bdb006cc599845d43d6519a42f7ef15b7c17ccfd488090402196 |