您好,我在 Codeigniter 中有一个购物车,运行良好。我试图寻找折扣/优惠券处理,但找不到。
这是我的购物车代码:
public function addToCart($id){
$this->load->model('products_model');
$products = $this->products_model->getItemDetail($id);
foreach ($products as $product) {
$insert = array(
'id' => $product->id,
'name' => $product->name,
'qty' => '1',
'price' => $product->item_eur,
'image' => $product->image,
'options' => array(
'info' => $product->cart_description,
'qty_description' => $product->qty_description
)
);
$this->cart->insert($insert);
}
$last = end($this->cart->contents());
echo $last['rowid'];
}
我想从数据库中读取优惠券代码并将折扣作为购物车中的商品插入:
public function addCoupon(){
$this->load->model('products_model');
$res = $this->products_model->getCoupon($_POST['value']);
if($res){
foreach($res as $result){
$coupon = array(
'id' => $result->id,
'name' => $result->name,
'qty' => '1',
'price' => $result->discount,
'options' => array(
'info' => 'coupon',
'qty_description' => ''
)
);
$this->cart->insert($coupon);
}
echo '1';
}else{
$this->lang->load('products');
echo $this->lang->line('cart_notok');
}
}
数据库在哪里
[name:type] (example)
id:int (1)
name: varchar ('Discount of 20€')
code: varchar ('AFD1234')
discount: decimal (-20)
[编辑]
型号:
public function getCoupon($code){
$results = $this->db->get_where('coupons', array('code' => $code));
return $results->result();
}
该商品会添加到购物车,但如果
'price' => $result->discount
设置为 -20
或百分比,则会设置为 +20 欧元而不是 -20 欧元。
有什么办法可以做到这一点吗?
如果这是折扣,怎么可能是负数呢。用 -
添加值是一件愚蠢的事情