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 options=option_group|get_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 %} <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.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 21e8de8c68308fe32ea106b3edf7e5953ab5bd9fde510cf5f5182b12738308e2 |
|
MD5 | 4d3ea1c6e5f71d14c562557a150e9ff1 |
|
BLAKE2b-256 | 0bcef3c5c8d72797e52daf78e71b5b834fea4af752ff1ba534256d88b0baf485 |