Когда-то было такое дело, что заказчик пожелал измерять товар в квадратных метрах, и обязательно десятичными дробями. Я тогда ковырялся ковырялся, искал в интернете, но так и не нашел как это сделать. Сейчас стал немного умнее, и при аналогичном пожелании без особого труда нашел решение. Выкладываю его для тех, кто так же, как я когда-то, мучается в поисках, и натыкается только на платные предложения или туманные рассуждения.
published/SC/html/scripts/classes/class.shoppingcart.php ======================================================== * @param int $quantity */ function _setItemQuantity(&$Item, $quantity){ $xnQuantity = &$Item->getFirstChildByName('quantity'); - $xnQuantity->setData(intval($quantity)); + $xnQuantity->setData($quantity); } ======================================================== published/SC/html/scripts/core_functions/cart_functions.php ======================================================== function cartAddToCart( $productID, $variants, $qty = 1 ){ if($qty === ''){$qty = 1;} - $qty = max(0,intval($qty)); + $qty = max(0,$qty); $productID = intval($productID); $product_data = GetProduct($productID); if(!$product_data['ordering_available'])return false; ======================================================== published/SC/html/scripts/core_functions/order_status_functions.php ======================================================== " where orderID=$orderID" ); while( $item = db_fetch_row($q) ) { - $Quantity = intval($item["Quantity"]); + $Quantity = $item["Quantity"]; $q1 = db_query( "select productID from ".SHOPPING_CART_ITEMS_TABLE. " where itemID=".$item["itemID"] ); $product = db_fetch_row( $q1 ); ======================================================== published/SC/html/scripts/modules/cart/scripts/shopping_cart.php ======================================================== foreach ($upd_data as $_itemID=>$_data){ - $cartEntry->setItemQuantity($_itemID, intval($_data['count'])); + $cartEntry->setItemQuantity($_itemID, $_data['count']); } $cartEntry->saveCurrentCart(); ========================================================
Так же вносим изменения в таблицы:
ALTER TABLE `SC_shopping_carts` CHANGE COLUMN `Quantity` `Quantity` DECIMAL(11,000) NULL DEFAULT NULL AFTER `itemID`; ALTER TABLE `SC_ordered_carts` CHANGE COLUMN `Quantity` `Quantity` DECIMAL(11,000) NULL DEFAULT NULL AFTER `Price`;
ссылка на оригинал статьи http://habrahabr.ru/post/161829/
Добавить комментарий