[HELP] Hiển thị giảm giá theo %

Thảo luận trong 'Hỗ trợ modules' đăng bởi aptx4869, 14/07/2016 11:21.

  • Furrionoup

    Furrionoup zvusafme2tructuGP szusafme3meidrzGP

    em dùng shop thì phần giảm giá theo giá tièn cho từng sản phẩm.Khi hiện ngoài trang chủ thì có giá đã giảm là bao nhiêu đó

    Vd: sản phẩm 2tr

    giảm giá 1tr

    thì ngoài trang chủ là -1.000.000

    có cách nào cho nó thành % ko ạ. Như trênn là 50% chẳng hạn

     
  • Không hỗ trợ nhưng nói qua. Dùng cách tính % trong toán học sẽ ra số giảm. rồi xuất ra tpl cái số giảm đó là ok. Chi tiết thì ai đó động vào code đi :D

     
  • Yamahayuv

    Yamahayuv zwusalmeltfqdxdGP zzusafme2ntkdkxGP

    Bạn xem hình để thực hiện nhé:

    1 tại quản lý giảm giá:

     

    Tại sản phẩm bạn chọn chương trình giảm giá bạn đã tạo

     

     

    demo sản phẩm đã được giảm giá:

     
  • Furrionoup

    Furrionoup zvusafme2tructuGP szusafme3meidrzGP

    ý em là giảm theo tiền nhưng xuất ra theo % bác Thắng à. Chứ giảm theo % nó lẻ ghê lắm

     
  • Bạn nói ký đi. Ví dụ giá 100k giảm 10k thì %  bạn nói là bao nhiêu, cấu hình như bác Thắng nói là đúng rồi mà?

     
  • Yamahayuv

    Yamahayuv zwusalmeltfqdxdGP zzusafme2ntkdkxGP

    Lại liên quan php rồi đấy

     

     
  • Ý bạn là cấu hình là giảm giá theo tiền nhưng hiển thị ra ngoài là % phải không. Cái này thì phải làm như a Tứ nói :)) 

     
  • Thế này là chuẩn nè

    $xtpl->assign( 'DISCOUNT', ( $discount/$price * 100 ) );

     

     
    Lần sửa cuối bởi một điều hành viên: 14/07/2016 11:58
    hoanglongvnpt thích điều này.
  • Làm tròn nữa a :D 

     
    Lần sửa cuối bởi một điều hành viên: 14/07/2016 11:59
    hoanglongvnpt thích điều này.
  • Furrionoup

    Furrionoup zvusafme2tructuGP szusafme3meidrzGP

    đó cái làm tròn em nhức đầu nãy h nè. Em nghĩ cái này nhiều người cần đây

     
  • Yamahayuv

    Yamahayuv zwusalmeltfqdxdGP zzusafme2ntkdkxGP

    Đặng Đình Tứ: Múc cho ấy đê....

     
    aptx4869 thích điều này.
  • Em thề là không động shops rồi frown

     
    aptx4869 thích điều này.
  • Có cần ae làm cái lễ giải lời thề ko a :)))

     
  • Yamahayuv

    Yamahayuv zwusalmeltfqdxdGP zzusafme2ntkdkxGP

    blush

     
  • Fortresssnl

    Fortresssnl xzusafmewnazxwpGP zvusafmegmqhc3dGP

    Mình mém chút là thề theo anh ấy rồi !

    Làm tròn lấy phần nguyên thôi. Chứ ai đời giảm giá 99.99%, nó kỳ lắm.

     
  • Furrionoup

    Furrionoup zvusafme2tructuGP szusafme3meidrzGP

    tức là bác vẫn chưa thề mà hoho

     
  • Fortresssnl

    Fortresssnl xzusafmewnazxwpGP zvusafmegmqhc3dGP

     

    Ok, để nghĩ phương án làm cho bạn :D

     
  • OksanaPoeli

    OksanaPoeli OksanaPoeliLO OksanaPoeliLO

    không biết đúng ý bạn không ?
    tức là bạn thiết lập giảm giá theo số tiền và ko theo %

    và ở site bạn muốn hiển thị thêm %

    nếu đúng như thế thì làm như sau :
    mở modules/shops/site.function.phpphp, tìm dòng 116 có function nv_get_price 

    thay thế toàn bộ bằng :

    function nv_get_price($pro_id, $currency_convert, $number = 1, $per_pro = false, $module = '')
    {
        global $db, $db_config, $site_mods, $module_data, $global_array_shops_cat, $pro_config, $money_config, $discounts_config;
    
        $return = array();
        $discount_percent = 0;
        $discount_unit = '';
        $discount = 0;
    
        $module_data = !empty($module) ? $site_mods[$module]['module_data'] : $module_data;
        $product = $db->query('SELECT listcatid, product_price, money_unit, price_config, discount_id FROM ' . $db_config['prefix'] . '_' . $module_data . '_rows WHERE id = ' . $pro_id)->fetch();
        $price = $product['product_price'];
    
        if (!$per_pro) {
            $price = $price * $number;
        }
    
        $r = $money_config[$product['money_unit']]['round'];
        $decimals = nv_get_decimals($currency_convert);
    
        if ($r > 1) {
            $price = round($price / $r) * $r;
        } else {
            $price = round($price, $decimals);
        }
    
        if ($global_array_shops_cat[$product['listcatid']]['typeprice'] == 2) {
            $_price_config = unserialize($product['price_config']);
            if (!empty($_price_config)) {
                foreach ($_price_config as $_p) {
                    if ($number <= $_p['number_to']) {
                        $price = $_p['price'] * (!$per_pro ? $number : 1);
                        break;
                    }
                }
            }
        } elseif ($global_array_shops_cat[$product['listcatid']]['typeprice'] == 1) {
            if (isset($discounts_config[$product['discount_id']])) {
                $_config = $discounts_config[$product['discount_id']];
                if ($_config['begin_time'] < NV_CURRENTTIME and ($_config['end_time'] > NV_CURRENTTIME or empty($_config['end_time']))) {
                    foreach ($_config['config'] as $_d) {
                        if ($_d['discount_from'] <= $number and $_d['discount_to'] >= $number) {
                            $discount_percent = $_d['discount_number'];
                            if ($_d['discount_unit'] == 'p') {
                                $discount_unit = '%';
                                $discount = ($price * ($discount_percent / 100));
                                $dis_pt = '';
                            } else {
                                $discount_unit = ' ' . $pro_config['money_unit'];
                                $discount = $discount_percent * $number;
                                $dis_pt = (($discount_percent *100) / $price);
                            }
                            break;
                        }
                    }
                }
            }
        }
    
        $price = nv_currency_conversion($price, $product['money_unit'], $currency_convert);
    
        $return['price'] = $price; // Giá sản phẩm chưa format
        $return['price_format'] = nv_number_format($price, $decimals); // Giá sản phẩm đã format
     $return['dis_pt'] = round($dis_pt,1);
        $return['discount'] = $discount;// Số tiền giảm giá sản phẩm chưa format
        $return['discount_format'] = nv_number_format($discount, $decimals); // Số tiền giảm giá sản phẩm đã format
        $return['discount_percent'] = $discount_unit == '%' ? $discount_percent : nv_number_format($discount_percent, $decimals);// Giảm giá theo phần trăm
        $return['discount_unit'] = $discount_unit;// Đơn vị giảm giá
    
        $return['sale'] = $price - $discount;// Giá bán thực tế của sản phẩm
        $return['sale_format'] = nv_number_format($return['sale'], $decimals);// Giá bán thực tế của sản phẩm đã format
        $return['unit'] = $currency_convert;
    
        return $return;
    }

    ở các file tpl thì bạn thêm : {PRICE.dis_pt} ở sau <!-- BEGIN: discounts -->

     
  • Wirelesskfu

    Wirelesskfu xvusaymepthkzlhGP zzusalmeftypz2bGP

    Vì cái câu thề mà nó bỏ rơi cái shop của tôi, nguyền rủa.

     
  • tội anh kaka

     

Chia sẻ trang này

Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây