django-shop-simplevariations 0.0.4
A simple to use product variations module for django SHOP
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)
| File | Type | Py Version | Uploaded on | Size | # downloads |
|---|---|---|---|---|---|
| django-shop-simplevariations-0.0.4.tar.gz (md5) | Source | 2011-09-27 | 12KB | 369 | |
- Author: Christopher Glass
- Home Page: http://www.django-shop.org/
- License: BSD License
- Platform: OS Independent
- Package Index Owner: chrisglass
- DOAP record: django-shop-simplevariations-0.0.4.xml
