Когда-то было такое дело, что заказчик пожелал измерять товар в квадратных метрах, и обязательно десятичными дробями. Я тогда ковырялся ковырялся, искал в интернете, но так и не нашел как это сделать. Сейчас стал немного умнее, и при аналогичном пожелании без особого труда нашел решение. Выкладываю его для тех, кто так же, как я когда-то, мучается в поисках, и натыкается только на платные предложения или туманные рассуждения.
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`;
Автор: xilix