![](/img/trans.png)
[英]Spree, Ruby on Rails - Add to cart multiple variants of the same product
[英]Spree - Adding multiple variants to cart on the same page
我正在將Spree用於一個ecommerece網站,將要出售的每種產品都有大量顏色,並且大多數客戶都希望購買同一產品的不同顏色(例如,變體)。 我希望允許客戶在同一頁面上添加同一產品的多個變體,我目前有一個帶有單選按鈕的變體列表,該單選按鈕允許選擇要購買的變體和數量。 相反,我只想要一些默認為零的數量框,以便客戶可以將他們想要的數量簡單地添加到每個變量中,然后單擊“添加到購物車”。 看完訂單控制器后,我想到了這個
<% has_checked = false
@product.variants.active.each_with_index do |v,index|
next if v.option_values.empty? || (!v.in_stock && !Spree::Config[:show_zero_stock_products])
checked = !has_checked && (v.in_stock || Spree::Config[:allow_backorders])
has_checked = true if checked %>
<li>
<label for="<%= ['products', @product.id, v.id].join('_') %>">
<span class="variant-description">
<%= variant_options v %> <%= text_field_tag (@product.has_variants? ? :quantity : "variants[#{@product.master.id}]"),1, :class => "title", :size => 3 %>
</span>
<% if variant_price_diff v %>
<span class="price diff"><%= variant_price_diff v %></span>
<% end %>
</label>
</li>
<% end%>
從某種意義上說,它可以顯示我想要的東西,變量和數量框的列表,但是每當我添加數量並將其添加到購物車時,它默認默認為列表中的最后一項以及最后數量框中的數量。 我已經嘗試了一些方法,但是都沒有正確嘗試,有人知道我會怎么做嗎?
Neeeeeeeevermind,閱讀了order_populate的模型,沒有意識到它使用的是來自產品/變體的兩個不同的哈希模型,我試圖傳遞哈希產品,這導致了錯誤,因為它不希望產品哈希與哈希一起出現,而是使用變體哈希,使用代碼
<%= text_field_tag "variants[#{v.id}]",0, :class => "title", :size => 3, :disabled => !v.in_stock && !Spree::Config[:allow_backorders] %>
希望這對其他人有幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.