Дробное количество товара в корзине Webasyst Shop-Script

от автора

Когда-то было такое дело, что заказчик пожелал измерять товар в квадратных метрах, и обязательно десятичными дробями. Я тогда ковырялся ковырялся, искал в интернете, но так и не нашел как это сделать. Сейчас стал немного умнее, и при аналогичном пожелании без особого труда нашел решение. Выкладываю его для тех, кто так же, как я когда-то, мучается в поисках, и натыкается только на платные предложения или туманные рассуждения.

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/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *