2012-11-15 57 views
1

我想讓這個工作一段時間了。Opencart:我如何使用不同的選項兩次添加相同的產品?

我的產品是隱形眼鏡,當您想訂購時,您需要填寫一些選項,例如半徑,厚度,屈光度等等兩次(左眼和右眼)。

我希望當我按下添加到購物車,在購物車中添加兩次相同的產品(第一個選項爲左眼,第二個選項爲右眼)。

這在Opencart中可能嗎?

回答

1

基本上,您希望(對於某些產品)在屏幕上兩次顯示所有產品信息和選項,並且當您單擊添加到購物車時將這兩個組添加到購物車,以便它們顯示爲單獨的產品。

在某些條件下重複選項是相當平凡的。

不幸的是,OpenCart的Add To Cart只需要一組產品數據。據預計,在四個地方:

  • jQuery的腳本,通過Ajax
  • ,實際上從阿賈克斯提交
  • ,從一個標準的表單提交增加了產品的日常增加了產品的例行提交你的選擇
  • 說「成功!!你添加Bongo隱形眼鏡到您的購物車!」的例程!

即使在那時,在添加產品的代碼中,假設有一組產品選項。

有相當多的代碼可能需要改變 - 而且你通常不希望被弄亂的東西。

但有一種方法。

讓我們假設你不想混淆index.php?route = checkout/cart/add,並希望將代碼保留在product.tpl模板和JavaScript中。

您首先需要做的事情是將產品輸入(包括隱藏的輸入)封裝在帶有唯一類的div中,例如.lens-left,並使用該類名替代.product-info的每個實例在該行:

data: $('.product-info input[type=\'text\'], .product-info input[type=\'hidden\'], .product-info input[type=\'radio\']:checked, .product-info input[type=\'checkbox\']:checked, .product-info select, .product-info textarea'), 

接下來,寫一些JS是在相關產品的網頁射擊負荷:

  1. 將帶有類鏡頭權和副本鏡頭左側的內容的新的div進去。
  2. 將購物車按鈕綁定到第二個Ajax調用,該調用是標準調用的精確副本,但使用第二組的類名稱。

點擊添加到購物車將第一個產品添加到購物車,然後將第二個產品添加到購物車。按順序執行而不是在一起意味着您一次只傳遞一組數據。使用JS添加第二組意味着沒有JS的用戶不會看到它。

這可以通過使加載JS進一步改善,而是添加一個按鈕,說:「我的左右眼需要不同的鏡頭」,然後將所有其他的東西。

+0

很好,它的工作。感謝您花時間解釋 – lopiar

相關問題