Контакты
(095) 567-43-05
(097) 837-80-82
Заказать сайт, Киев

Быстрый заказ
Пожалуйста, укажите имя и свой номер телефона, чтобы мы могли связаться с Вами

Opencart (OcStore) | Дробное количество товаров | Decimal quantity

$1

Быстрый заказ

Пожалуйста, укажите имя и свой номер телефона, чтобы мы могли связаться с Вами


First replace ALL occurences -> replacements in given PHP files:

 

system/library/cart.php

     (int)$qty -> (float)$qty
admin/model/catalog/product.php
     (int)$data['quantity'] -> (float)$data['quantity']
     (int)$product_option_value['quantity'] -> (float)$product_option_value['quantity']
     (int)$product_discount['quantity'] -> (float)$product_discount['quantity']
admin/model/sale/order.php
     (int)$order_product['quantity'] -> (float)$order_product['quantity']
     (int)($download['remaining'] * $product['quantity'] 
          -> (float)($download['remaining'] * (float)$product['quantity']
     (int)$return_product['quantity'] -> (float)$return_product['quantity']
     (int)$product['quantity'] -> (float)$product['quantity']
catalog/model/checkout/order.php
     (int)$product['quantity'] -> (float)$product['quantity']
     (int)($download['remaining'] * $product['quantity'] 
          -> (float)($download['remaining'] * (float)$product['quantity']
     (int)$order_product['quantity'] -> (float)$order_product['quantity']

and then execute following SQL (e.g. from within phpmyadmin):

ALTER TABLE `product` CHANGE `quantity` `quantity` DECIMAL( 6, 2 ) NOT NULL ;
ALTER TABLE `product` CHANGE `minimum` `minimum` DECIMAL( 6, 2 ) NOT NULL ;
ALTER TABLE `order_product` CHANGE `quantity` `quantity` DECIMAL( 6, 2 ) NOT NULL ;

 в конец файла дописываем скрипт jQuery

 <script type="text/javascript" ><!--
$(document).ready(function() {
var step =  parseFloat($('input[name="minimum"]').val());
$('.minus').click(function () {
var $input = $(this).parent().find('#input-quantity');
var count = parseFloat($input.val()) - step;
count = count < step ? step : count;
$input.val(Math.round(count * 10) / 10);
$input.change();
return false;
});
$('.plus').click(function () {
var $input = $(this).parent().find('#input-quantity');
$input.val( Math.round ((parseFloat($input.val()) + step) * 10 ) / 10 );
$input.change();
return false;
});
});
//--></script>

Примерные стили для кнопок

#button-cart {
    width: 140px;
}
#input-quantity {
    display: inline-block;
    margin: 0 8px;
    text-align: center;
    vertical-align: middle;
    width: 84px;
}
.qty {

    background-repeat: no-repeat;
    background-size: contain;
    border: 1px solid #ccc;
    border-radius: 15px;
    display: inline-block;
    height: 33px;
    vertical-align: middle;
    width: 45px;
}
.qty:hover {
cursor: pointer;
}
.qty.minus {
    background-image: url("/image/catalog/pics/minus.gif");
}
.qty.plus {
    background-image: url("/image/catalog/pics/plus.gif");
}