用了好一陣子的OpenCart,也修改了一些設定,讓它更符合國人使用,而最近好友小朱爸給了梅干一些小建議,除了上回跳出警訊框外,再來就是產品數量的部分,由於OpenCart在數量購買的部分,每按一次加到購物車就會一直向上累加,比方庫存量只有5筆,卻會無上限的累加上去,當要結帳時才發現數量超出的問題,所以梅干就花了點時間作點修改,並且在好友男丁的相助也順利的完成,現在就與各位來作分享。
product.tpl:
Step1
找到原來的數量位置後,將它先註解起來,並把下方的語法貼上。
路徑:catalog\view\theme\佈景名稱\template\product\product.tpl
修改程式碼:
修改程式碼:
<select name="quantity" id="quantity">
<?php for($i=1; $i<=$stock; $i++){ ?>
<option value="<?php echo $i?>" <?php if($i==1){ echo "selected="selected"";} ?>><?php echo $i?></option>
<?php }?>
</select>
<?php for($i=1; $i<=$stock; $i++){ ?>
<option value="<?php echo $i?>" <?php if($i==1){ echo "selected="selected"";} ?>><?php echo $i?></option>
<?php }?>
</select>
cart.php:
Step1
找到$qty後,將部分原始碼註解起來。
路徑:system\library\cart.php
修改程式碼:
修改程式碼:
public function add($product_id, $qty = 1, $options = array()) {
if (!$options) {
$key = $product_id;
} else {
$key = $product_id . ‘:’ . implode(‘.’, $options);
}
if (!$options) {
$key = $product_id;
} else {
$key = $product_id . ‘:’ . implode(‘.’, $options);
}
if ((int)$qty && ((int)$qty > 0)) {
//if (!isset($this->session->data[‘cart’][$key])) {
$this->session->data[‘cart’][$key] = (int)$qty;
//} else {
// $this->session->data[‘cart’][$key] += (int)$qty;
//}
}
$this->setMinQty();
}
這樣就大功告成啦!當選擇購買數量時,除了會依照庫存量作為總數外,選完加入購物車時,只會加一次,若選擇二筆時,數就會變成2,不會像之前先選了1再換成2時,就會累加變成3,如此一來就更加的方便,也不用擔心數量超出的問題。