Create a page_processor for Product 
(http://mezzanine.jupo.org/docs/content-architecture.html#page-processors). 

On Saturday, November 22, 2014 3:42:09 PM UTC-7, henri wrote:
>
> Hallo Josh,
>
> Thanks a lot.
> This is a good starting point.
>
> One more question.
> Where do you put your form?
> It seems to me, that it shut go in shop/product.html, but how to inject it 
> there?
>
> Henri
>
>
> Am Freitag, 21. November 2014 22:35:00 UTC+1 schrieb Josh B:
>>
>> Sorry, was traveling and missed your message. What you will need to do is 
>> create either a view or a page processor (
>> http://mezzanine.jupo.org/docs/content-architecture.html#page-processors) 
>> to post your new form to. Code samples below.
>>
>> Here is my form:
>> <form method="post" id="add-cart" action="{{ 
>> item.product.get_absolute_url }}">
>>   {% csrf_token %}
>>   <input type="hidden" id="product_id" name="product_id" value="{{ 
>> item.product.id }}" />
>>   <input type="hidden" name="quantity" id="id_quantity" value="1">
>>   <input type="text"  class="donation" id="donation_amount" 
>> name="donation_amount" />
>>   <button type="submit" class="button small">Donate Now</button>
>> </form>    
>>
>> Form processing code:
>> from .utils import Donation
>>
>> if request.method == "POST" and form.is_valid():
>>       product = Product.objects.get(id=request.POST.get("product_id"))
>>       item = Donation(product, 
>> float(request.POST.get("donation_amount","0.0")) )
>>       request.cart.add_item(item, 1)
>>
>> Utils
>> class Donation(object):
>>     def __init__(self, product, unit_price, buyers_group):
>>         product_variation = product.variations.all()
>>         self.description = product.title
>>         self.unit_price = unit_price
>>         self.url = product.get_absolute_url()
>>         self.sku = product_variation[0].sku
>>         self.product = product
>>         self.image = product_variation[0].image
>>         self.buyers_group = buyers_group
>>
>>     def price(self):
>>       return self.unit_price 
>>
>>     def __unicode__(self):
>>         return self.description
>>
>> On Friday, November 21, 2014 2:20:29 PM UTC-7, henri wrote:
>>>
>>> Hallo,
>>>
>>> I still don't know really how to start.
>>> Is the implementation similar to what Josh Cartmell describes in his 
>>> Blog Collecting additional information on a per product basis in 
>>> Cartridge 
>>> <http://bitofpixels.com/blog/collecting-additional-information-on-a-per-product-basis-in-cartridge/>
>>> ?
>>>
>>> Henri
>>>
>>>
>>> Am Dienstag, 18. November 2014 19:22:01 UTC+1 schrieb henri:
>>>>
>>>> Hallo Josh,
>>>>
>>>> I also need the Donation option for real products, so I think your 
>>>> approach ist the right for my case.
>>>>
>>>> I must say, I'm not only new with Mezzanine/Cartrige but also with 
>>>> Django/Python.
>>>> Before I was mainly coding in PHP.
>>>>
>>>> So I tried to understand your code and find a way to implement it, but 
>>>> I think I'm not able to.
>>>> I think it is somehow connected with shop/views.py but I have no idea 
>>>> how.
>>>>
>>>> Maybe you can give me some hints,
>>>>
>>>> Henri
>>>>
>>>>
>>>>
>>>> Am Dienstag, 18. November 2014 00:03:54 UTC+1 schrieb Josh B:
>>>>>
>>>>> This approach has been solid for me and currently using it in a 
>>>>> production environment. For my use I needed real Donation products as 
>>>>> they 
>>>>> needed to expire or only sell a limited number. If you don't need that 
>>>>> functionality then you can use what Josh C posted.
>>>>>
>>>>> Josh
>>>>>
>>>>> On Monday, November 17, 2014 4:56:44 AM UTC-7, henri wrote:
>>>>>>
>>>>>> Hey Josh,
>>>>>>
>>>>>> I also would like to implement donation driven products.
>>>>>> Do you still stay with this approach or have you found a better 
>>>>>> solution?
>>>>>>
>>>>>> Henri 
>>>>>>
>>>>>>

-- 
You received this message because you are subscribed to the Google Groups 
"Mezzanine Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to