Воюем с корзиной
Всем хорош скрипт интернет магазина 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]&iProductAdd=$aData[iProduct]&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'] );
Теперь при добавлении товара в корзину на любой странице интернет магазина, клиента не будет сразу перебрасывать на страницу оформления заказа.
basket.txt, Страница с кодом в текстовом формате