Новости

07.04.2011

Теперь при добавлении товара в скрипте интернет магазина не будет открыватся страница с корзиной.

подробнее...

04.03.2011

Глобальное исправление косяков, перекачайте скрипты.
Положил предварительную версию Quick.Cart

подробнее...

В этом боксе №1 можно что-то написать
A A A

Воюем с корзиной

Всем хорош скрипт интернет магазина Quick.Cart но и он не без недостатков.
Большое неудобство клиентам вашего интернет магазина может доставить тот факт что при добавлении товара скрипт сразу перекидывает его на страницу корзины.
И клиенту если он хочет продолжить выбор товара ,особенно в той категории где он находился это не очень удобно.
Значит этот недостаток  нам в скрипте надо исправить.

В файле actions_client/p.php вставить перед,


require_once 'actions_client/p_orders.php';


функцию отправки данных из формы и передачи данных из сессии


if (isset ($_POST['inBasket'])) {

$oOrder->addToBasket( $_POST['product'], 1 );
$oProduct =& Products::getInstance( );
$_SESSION['fOrderSummary'.LANGUAGE] += $oProduct->aProducts[$_POST['product']]['fPrice'];
$_SESSION['iOrderQuantity'.LANGUAGE] = $_SESSION['iOrderQuantity'.LANGUAGE] + 1;
}


В файле templates/pages_default.tpl ссылку с передачей данных в ссесию


<!-- BEGIN PRODUCTS_BASKET -->

<div class="basket"><a href="$aData[sBasketPage]&amp;iProductAdd=$aData[iProduct]&amp;iQuantity=1" rel="nofollow">$lang[Basket_add]</a></div>
<!-- END PRODUCTS_BASKET -->


Заменить, на форму со скриптом, для отмены скролирования страницы.


<!-- BEGIN PRODUCTS_BASKET -->

<script type="text/javascript">
window.onload = function(){
if(window.name != "")
document.documentElement.scrollTop = window.name;
window.name = 0;
}
</script>
<div class="basket">
<form method="post">
<input type="hidden" name="product" value="$aData[iProduct]" />
<input type="submit" class="inBasket" name="inBasket" value="$lang[Basket_add]" onclick="window.name = document.documentElement.scrollTop;"/>
</form>
</div>
<!-- END PRODUCTS_BASKET -->


А для того чтобы сделать тоже самое в полном описании товара надо передать данные из сессии и заменить функцию отправки заголовка для перезагрузки страницы.


В файле actions_client/p_orders.php заменить


$oOrder->addToBasket( $iProductAdd, $iQuantity );

header( 'Location: '.$_SERVER['PHP_SELF'].$oProduct->aProducts[$iProductAdd]['sLinkName'] );


на:


$oOrder->addToBasket( $iProductAdd, $iQuantity );

$oProduct =& Products::getInstance( );
$_SESSION['fOrderSummary'.LANGUAGE] += $oProduct->aProducts[$_POST['product']]['fPrice'];
$_SESSION['iOrderQuantity'.LANGUAGE] = $_SESSION['iOrderQuantity'.LANGUAGE] + 1;
header( 'Location: '.$_SERVER['PHP_SELF'].$oProduct->aProducts[$iProductAdd]['sLinkName'] );



Теперь при добавлении товара в корзину на любой странице интернет магазина, клиента не будет сразу перебрасывать на страницу оформления заказа.

  • icobasket.txt, Страница с кодом в текстовом формате

Комментарии