Hi Josh, thx for your reply!

Sorry for the confusion. What (and how) I'm trying to do is to calculate 
the shipping by location with the shipping_detail_country (works good) from 
the order_form AND the product custom shipping class and fields that I 
injected in the product model and the admin.

I git cloned the cartridge.shop 0.9.5 to have it locally as an app under 
the name cucashop (that way I can modify the models and stuff I need; I'm 
happy with the version and won't need an update)

Added a custom shipping model:

In *cucashop.models.py *

class ProductShipping(models.Model):


    COUNTRIES = (
    ('CA', _('Canada')),
    ('US', _('United States of America')),


    Country = models.CharField(choices=COUNTRIES, max_length=100)
    Cost = fields.MoneyField(_("Cost of 1 item"))
    with_another_item = fields.MoneyField(_("extra cost with another item"))


    product = models.ForeignKey("Product", related_name="shipping")


    def __unicode__(self):
        return self.Country

In *cucashop.admin.py*

################
#  SHIPPING  #
################


class ProductShippingAdmin(TabularDynamicInlineAdmin):
    model = ProductShipping


##############
#  PRODUCTS  #
##############

...


class ProductAdmin(DisplayableAdmin):

    ...

    inlines = (ProductImageAdmin, ProductShippingAdmin, 
ProductVariationAdmin)


Basically trying to add customs shipping fields by product in the admin. 
This works great.


Now the *problem*:

How can I have access to the product instance and this new shipping class 
in my custom *checkout.py* custom_billship_handler from the cart?

That way if I have a user buying a product and selecting "Canada" in the 
shipping form, I can calculate or show the cost for that product with this 
location.

If that helps I also posted the code here

https://bitbucket.org/buddweeze/test-shipping-cartridge/overview

Many thanks, let me know if this makes more sense or if a better approach 
could be suggested.


On Thursday, October 2, 2014 7:31:42 AM UTC-7, Josh Cartmell wrote:
>
> Hey Mat, could you go into more detail about what you mean by "location + 
> category".  I'm not sure what you are trying to do so it's hard to make a 
> recommendation =)
>
> On Wed, Oct 1, 2014 at 12:11 PM, Mat Caissy <mats...@gmail.com 
> <javascript:>> wrote:
>
>> Hey everyone,
>>
>> After browsing on the forum, I successfully setup a custom 
>> billship_hander depending on the country from the order_form
>>
>> SHOP_HANDLER_BILLING_SHIPPING = "myapp.checkout.custom_billship_handler"
>>
>> def custom_billship_handler(request, order_form):
>>
>>     if order_form is not None:
>>         if not request.session.get("free_shipping"):
>>             settings.use_editable()
>>
>>
>>             if order_form.cleaned_data["shipping_detail_country"] == 
>> "Canada":
>>                 set_shipping(request, "CanadaPost Regular", 5.00)
>>
>>
>>             elif order_form.cleaned_data["shipping_detail_country"] == 
>> "US":
>>                 set_shipping(request, "CanadaPost US Regular", 7.90)
>>
>>
>>             else:
>>                 set_shipping(request, _("Flat rate shipping"), settings.
>> SHOP_DEFAULT_SHIPPING_VALUE)
>>
>>
>>
>> But now, is there a way to filter my shipping by location + category, or 
>> product type as defined in my child_categories ?
>>
>> I've been trying with the cart and order instance, but it doesn't work:
>>
>> #cart = Cart.objects.from_request(request)
>> #cart_test = request.cart.has_items()
>> #order = Order.objects.from_request(request)
>>
>> Any tips is appreciated! Thanks 
>>
>> -- 
>> 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 mezzanine-use...@googlegroups.com <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
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 mezzanine-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to