Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Корзина


KsuFadey

Recommended Posts

НУ, так ответ в студию, ждем

Мой вариант исполнения: Изображение

Сразу предупреждаю, я любитель, так что . . .

В - /catalog/view/theme/ваша тема/stylesheet/stylesheet.css

/* Корзина */
#header .div7 {
	float:right;
	width: 420px;
	height: 80px;
	margin-top: 30px;
	margin-left: 30px;
}
#header .div77 {
	position:releative;
	float:right;
	width: 90px;
	height: 90px;
	margin-left: 15px;	
	margin-top: 20px;
}
#cart_in_header {
	text-align: right;
}
/* Корзина конец */

В - /catalog/view/theme/ваша тема/template/common/header.tpl

/* Лепим до </head> */

<!-- Корзина -->
 <script type="text/javascript"><!--
 $(document).ready(function () {
 $('#add_to_cart').removeAttr('onclick');
 $('#add_to_cart').click(function () {
 $.ajax({
 type: 'post',
 url: 'index.php?route=module/cart/minicart',
 dataType: 'html',
 data: $('#product :input'),
 success: function (html) {
 $('#cart_in_header').html(html);
 },
 complete: function () {
 var image = $('#image').offset();
 var cart  = $('#cart_in_header').offset();
 $('#image').before('<img src="' + $('#image').attr('src') + '" id="temp" style="position: absolute; top: ' + image.top + 'px; left: ' + image.left + 'px;" />');
 params = {
 top : cart.top + 'px',
 left : cart.left + 'px',
 opacity : 0.0,
 width : $('#cart_in_header').width(),
 heigth : $('#cart_in_header').height()
 };
 $('#temp').animate(params, 'slow', false, function () {
 $('#temp').remove();
 });
 }
 });
 });
 });
 //--></script>
<!-- /Корзина конец -->

/* Это я у себя вставил перед <div id="header_panel"> */

<!-- Корзина -->
<div class="div77" id="basket" ><a href="http://www.umka-babyshop.ru/index.php?route=checkout/cart"><img src="catalog/view/theme/default2free/image/umka-cart.png" alt="Корзина" width="70" height="70" title="Посмотреть корзину" /></a></div>

<div class="div7" id="cart_in_header">
<?php
 $cart_number = $this->cart->countProducts();
 if ($cart_number == 1) {echo "1 товар в корзине";}
 else {echo $cart_number." товаров в корзине";}
 echo"<br />";
 echo "Сумма: ".$this->currency->format($this->cart->getTotal());
 ?>
 <br />
 <br />
 <a href="index.php?route=checkout/shipping" title="Оформить заказ" class="button"><span>Оформить</span></a>
</div>
<!-- /Корзина конец -->

В - /catalog/controller/module/cart.php


  /* Лепим после этого: */        

		$this->response->setOutput($output, $this->config->get('config_compression'));
   }

/* Корзина */
 public function minicart() {
 $this->language->load('module/cart');
 $this->load->model('tool/seo_url');
 if ($this->request->server['REQUEST_METHOD'] == 'POST') {
 if (isset($this->request->post['option'])) {
 $option = $this->request->post['option'];
 } else {
 $option = array();
 }
 $this->cart->add($this->request->post['product_id'], $this->request->post['quantity'], $option);
 unset($this->session->data['shipping_methods']);
 unset($this->session->data['shipping_method']);
 unset($this->session->data['payment_methods']);
 unset($this->session->data['payment_method']);
 }
 $cart_number = $this->cart->countProducts();
 if ($cart_number == 1) {$output = '1 товар в корзине <br />';
 } else {$output = $cart_number.' товаров в корзине <br />';}
 $output .= 'Сумма: '.$this->currency->format($this->cart->getTotal()).'<br /><br />';
 $output .= '<a href="index.php?route=checkout/shipping" class="button"><span>Оформить</span></a>';
 $this->response->setOutput($output, $this->config->get('config_compression'));
 }
/* Корзина конец */

P.S. Не знаю получится у Вас или нет, но у меня пока всё вроде работает. Изображение

Надіслати
Поділитися на інших сайтах


  • 1 month later...

Люди, спасите, помогите!

Ещё чуть-чуть и я чокнусь! :)

Было всё хорошо думаю, дай сделаю ещё лучше, ну и понеслось. . .

Методом "тыка" пере буровил уже вдоль и поперёк, но выхода так и не нашёл, одна надежда только на Вас!

Вопрос заключается в следующем:

шаг 1. Захожу на сайт (всё выглядит вот так):

Изображение

шаг 2. Добавляю товар (надпись ВАША КОРЗИНА - исчезла):

Изображение

шаг 3. Иду на главную (всё становиться на места):

Изображение

Если добавить ещё товар, шаг 2 снова повторяется.

В идеале хочу чтоб зашёл на сайт - было вот так:

Изображение

Добавил товар - стало так:

Изображение

В общем задача у меня такая, чтоб пустая корзина превратилась в полную, и надпись, не исчезала.

Мой - header.tpl, catalog/controller/module/cart.php и stylesheet.css над которыми я долблюсь:

header.tpl

<!--Корзина-->
<div class="div7" id="cart_in_header"><strong>ВАША КОРЗИНА</strong><br />
<?php
$cart_number = $this->cart->countProducts();
if ($cart_number == 1) {echo "1 товар";}
else {echo $cart_number." товаров";}
echo" | ";
echo "".$this->currency->format($this->cart->getTotal());
?></div>
<div class="right logo1" id="basket"><a href="http-~~-//www.umka-babyshop.ru/index.php?route=checkout/cart"><img src="/image/data/logo/cart2.png" alt="детская обувь белгород" width="60" height="60" title="Посмотреть покупки" /></a></div>
<!--/Корзина конец-->

catalog/controller/module/cart.php

/* Корзина */
public function minicart() {
$this->language->load('module/cart');
$this->load->model('tool/seo_url');
if ($this->request->server['REQUEST_METHOD'] == 'POST') {
if (isset($this->request->post['option'])) {
$option = $this->request->post['option'];
} else {
$option = array();
}
$this->cart->add($this->request->post['product_id'], $this->request->post['quantity'], $option);
unset($this->session->data['shipping_methods']);
unset($this->session->data['shipping_method']);
unset($this->session->data['payment_methods']);
unset($this->session->data['payment_method']);
}
$cart_number = $this->cart->countProducts();
if ($cart_number == 1) {$output = '1 товар';
} else {$output = $cart_number.' товаров';}
$output .= ' | '.$this->currency->format($this->cart->getTotal()).'';
$this->response->setOutput($output, $this->config->get('config_compression'));
}
/* Корзина конец */

stylesheet.css

/* Опыты */
#header .div7 {
	text-align:center;
	float: right;
	width: 140px;
	height: 15px;
	margin-top: 35px;
	padding-right: 15px; /* Расположение - горизонталь */
}
#header .div8 {
	text-align:center;
    float: right;
	width: 140px;
	height: 15px;
	margin-top: 35px;
	padding-right: 15px; /* Расположение - горизонталь */
}
#header .div9 {
	text-align:center;
	float: right;
	width: 140px;
	height: 15px;
	margin-top: 35px;
	padding-right: 15px; /* Расположение - горизонталь */
}
#cart_in_header {
	text-align: center;
}
/* Опыты конец */
/* опыт */
#header .logo1 img {
margin-top: 20px;
margin-right : 0px; /* Отступ лого слева */
margin-left: 0px;
margin-bottom : 0px;
}
#header .logo2 img {
margin-top: 20px;
margin-right : 0px; /* Отступ лого слева */
margin-left: 0px;
margin-bottom : 0px;
}
#header .logo3 img {
margin-top: 20px;
margin-right : 0px; /* Отступ лого слева */
margin-left: 0px;
margin-bottom : 0px;
}
/* опыт */

Мысли вслух: Надеюсь подробно описал о чём я мечтаю.

Надіслати
Поділитися на інших сайтах


  • 1 month later...

все просто. когда вы гуляете по страничкам - данные берутся из header.tpl

а когда добавляете товар, то он AJAX'ом обновляется и данные берутся из контроллера.

ищите строки

$cart_number = $this->cart->countProducts();
if ($cart_number == 1) {$output = '1 item in shopping cart <br />';
} else {$output = $cart_number.' items in shopping cart <br />';}
$output .= 'Total: '.$this->currency->format($this->cart->getTotal()).'<br />';
$output .= '<a href="index.php?route=checkout/cart">View Cart</a> |
<a href="index.php?route=checkout/shipping">Checkout</a>';

в catalog/controller/module/cart.php

и правьте себе на здоровье ;)

как вариант, перед вышеуказаным кодом можно вставить

echo"korzina <br />";

должно работать, на практике не проверял.

Надіслати
Поділитися на інших сайтах

все просто . . .

должно работать, на практике не проверял.

Не сомневаюсь, что всё просто, но видимо для тех кто в теме!

Для меня это сложнейшая проблема, над которой я уже бьюсь 34 дня без передыху.Изображение

Было б это в .tpl ещё б полбеды, глядишь и натыкал бы, но это, к моему большому сожалению, в .php, а это для меня тёмный лес, где даже метод "тыка" не катит.

Вот только не пойму как :

echo"korzina <br />";

-сможет пустую корзину превращать в полную?

Участок где я буровлю, уже больше месяца выглядит у меня так:

/* Корзина */
public function minicart() {
$this->language->load('module/cart');
$this->load->model('tool/seo_url');
if ($this->request->server['REQUEST_METHOD'] == 'POST') {
if (isset($this->request->post['option'])) {
$option = $this->request->post['option'];
} else {
$option = array();
}
$this->cart->add($this->request->post['product_id'],$this->request->post['quantity'], $option);
unset($this->session->data['shipping_methods']);
unset($this->session->data['shipping_method']);
unset($this->session->data['payment_methods']);
unset($this->session->data['payment_method']);
}
$cart_number = $this->cart->countProducts();
if ($cart_number == 1) {$output = '1 товар';
} else {$output = $cart_number.' товаров';}
$output .=' | '.$this->currency->format($this->cart->getTotal()).'';
$this->response->setOutput($output,$this->config->get('config_compression'));
}
/* Корзина конец */
Мысли вслух: Надеюсь когда-то ближе к пенсии я всё-таки научусь пустую корзину превращать по свистку в полную

Да чуть не забыл. Обязательно посетите эту страницу.Изображение
Надіслати
Поділитися на інших сайтах


  • 5 weeks later...

Мысли вслух: Надеюсь когда-то ближе к пенсии я всё-таки научусь пустую корзину превращать по свистку в полную

либо возвращать данные в JSON, либо делать доп.проверку в ajax-вызове на возвращаемый контент.

и то и другое делается без особых напрягов.

могу помочь.

Подскажите, как сделать чтоб добавление товара в корзину было с анимацией(товар летит в корзину)?

какая у вас версия движка и как у вас происходит добавление товара сейчас?

= = =

Opencart 149x / ocStore 017 - 022:

включено ли использование ajax для корзины в админке?

админка -> дополнения -> Модули -> Корзина :: Добавить в корзину (AJAX)
Надіслати
Поділитися на інших сайтах

ocStore 1.0.1

модуль корзины поставил с этой ссылки

В демке этой корзины у автора как раз происходит красивая анимация добавления в корзину, а у меня ничего не получается

пункта Ajax - корзина не нашел

Надіслати
Поділитися на інших сайтах


либо возвращать данные в JSON, либо делать доп.проверку в ajax-вызове на возвращаемый контент.

и то и другое делается без особых напрягов.

могу помочь.

По ходу мои эксперименты с дизайном прекратились, теперь жду, когда "закипит", и буду перелазить на окрепшего мустанга в лице ocStore v1.?.?, а лечить пациента который, уже, по сути, умер, руки не поднимаются. Сейчас экспериментирую с внешними факторами а глядишь к тому времени и появиться волшебное (разжёванное до нельзя) решение с минимум затраты времени на обновление "конюшни".

За предложенную помощь, огромное спасибо!

Мымли вслух: Проблема перестает интересовать нас, если она решена или если она оказалась нерешаемой.

Надіслати
Поділитися на інших сайтах


  • 3 weeks later...

Здравствуйте. Я сделала корзину, как описано на сайте http://craigmurray.me.uk/...opencart/, и у меня появилась такая проблема: не происходит корректного оформления заказа. Оформление заказа у меня прямо из корзины http://www.uralmama.com/upload/ При нажатии на кнопу вперед кидает на страницу account/login, хотя должна быть страница confirm. И даже если я для кнопок напрямую прописываю ссылку на confirm, то все равно перекидывает на login. Прошу знатоков подсказать, почему такое может происходить или сказать, куда смотреть. заранее спасибо

Версия магазина: ocStore 0.2.0

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.