2011-09-29 65 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