2011-09-29 67 views
0

我使用Satchmo在电子商务网站上工作。但是,我的商店只需要很少的定制。Satchmo:指定订单的交货日期/发货日期

  1. 订购产品时,我应该能够指定一个交货日期(出货日期)。
  2. 产品每天可能只有20(max_num_delievries)次交货。如果特定产品的特定日期的交付次数超过'max_num_delievries',则用户在订购产品时应该无法选择该日期。

有人可以请这个帮助,并指导我如何使用Satchmo来实现这一目标吗?

在此先感谢..

回答

0

我会尝试这样的事:

1)创建一个本地应用程序(如DELIVERY_DATE)中包含 “DeliveryDate” 左右的典范。例如localsite/DELIVERY_DATE/models.py:

class DeliveryDate(models.Model): 
    product = models.ForeignKey(Product) 
    date = models.DateField() 
    order = models.ManyToManyField(Order) 

    class Meta: 
     unique_together = ("product", "date") 

2)最多20个现有订单... MHH,很好的问题,也许是最好的将是,做表格上的验证?重写清洁方法,并检查该交付日期与20项目已经......也许像localsite/DELIVERY_DATE/forms.py

class DeliveryDateForm(forms.ModelForm): 
    class Meta: 
     model = DeliveryDate 

    def clean(self): 
     super(DeliveryDateForm, self).clean() 
     ... check here the order_set count 

...但也许形式是不是最好的地方,相关做这个。

您也可能想隐藏并自动设置产品的初始值并自己订购,而用户只能选择日期。

3)关于satchmo ...我将使用信号在产品添加到购物车后产生反应(这里有一个信号用于这种情况),并添加一个监听器,将用户重定向到一个视图,可以选择该产品的日期。看看这里的信号“cart_add_view”的例子:http://www.facebook.com/note.php?note_id=101466134049

也许ajax在这里是个不错的选择。在页面中有一个隐藏的容器......将产品添加到购物车后显示(仅在产品尚未与此订单/产品关联的DeliveryDate时),并要求用户选择日期。

这整个东西将在听众身上:检查产品是否需要交货日期,如果是,发送ajax响应以弹出窗口,并将repsonse-context的形式放入表单中,产品和订单隐藏领域。

为了保存交货日期,您将需要另一个ajax视图。

那么这只是一个想法,我会如何尝试做到这一点;-)当然,它可能需要在这里和那里进行调整。但希望它可以帮助你进一步。

Regards, Andrea

+0

首先,感谢您的意见。我会在我的程序中检查这些输入,看看它是否有帮助。 – vnayak01