Перейти к содержанию
torion

Обновление корзины

Рекомендуемые сообщения

Всем привет.

Такой вопрос. При включенном "Добавить в корзину (AJAX):" в корзине ничего не появляется пока не обновишь страницу.

Где и что в коде надо пошуровать?? чтобы сразу в корзине появлялся товар.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а какие изменения вносились?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да только шаблон залил, всё работало, потом вопросы с сео решали, и что-то там ещё, долго разбирался ))) что куда и зачем. Просто скажите что отвечает за корзину, а точнее какие файлы и строки должны быть чтобы при добавления товара он сразу появлялся в корзине и не нужно было обновлять страницу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

controller/module/cart.php

view/../template/module/cart.tpl

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

это у меня в

controller/module/cart.php

<?php

class ControllerModuleCart extends Controller {

protected function index() {

$this->language->load('module/cart');

$this->load->model('tool/seo_url');

$this->data['heading_title'] = $this->language->get('heading_title');

$this->data['text_subtotal'] = $this->language->get('text_subtotal');

$this->data['text_empty'] = $this->language->get('text_empty');

$this->data['text_remove'] = $this->language->get('text_remove');

$this->data['text_confirm'] = $this->language->get('text_confirm');

$this->data['text_view'] = $this->language->get('text_view');

$this->data['text_checkout'] = $this->language->get('text_checkout');

$this->data['view'] = HTTP_SERVER . 'index.php?route=checkout/cart';

$this->data['checkout'] = HTTPS_SERVER . 'index.php?route=checkout/guest_step_1';

$this->data['products'] = array();

foreach ($this->cart->getProducts() as $result) {

$option_data = array();

foreach ($result['option'] as $option) {

$option_data[] = array(

'name' => $option['name'],

'value' => $option['value']

);

}

$this->data['products'][] = array(

'key' => $result['key'],

'name' => $result['name'],

'option' => $option_data,

'quantity' => $result['quantity'],

'stock' => $result['stock'],

'price' => $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))),

'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&product_id=' . $result['product_id']),

);

}

if (!$this->config->get('config_customer_price')) {

$this->data['display_price'] = TRUE;

} elseif ($this->customer->isLogged()) {

$this->data['display_price'] = TRUE;

} else {

$this->data['display_price'] = FALSE;

}

$total_data = array();

$total = 0;

$taxes = $this->cart->getTaxes();

$this->load->model('checkout/extension');

$sort_order = array();

$results = $this->model_checkout_extension->getExtensions('total');

foreach ($results as $key => $value) {

$sort_order[$key] = $this->config->get($value['key'] . '_sort_order');

}

array_multisort($sort_order, SORT_ASC, $results);

foreach ($results as $result) {

$this->load->model('total/' . $result['key']);

$this->{'model_total_' . $result['key']}->getTotal($total_data, $total, $taxes);

}

$sort_order = array();

foreach ($total_data as $key => $value) {

$sort_order[$key] = $value['sort_order'];

}

array_multisort($sort_order, SORT_ASC, $total_data);

$this->data['totals'] = $total_data;

$this->data['ajax'] = $this->config->get('cart_ajax');

$this->id = 'cart';

if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/cart.tpl')) {

$this->template = $this->config->get('config_template') . '/template/module/cart.tpl';

} else {

$this->template = 'default/template/module/cart.tpl';

}

$this->render();

}

public function callback() {

$this->language->load('module/cart');

$this->load->model('tool/seo_url');

unset($this->session->data['shipping_methods']);

unset($this->session->data['shipping_method']);

unset($this->session->data['payment_methods']);

unset($this->session->data['payment_method']);

if ($this->request->server['REQUEST_METHOD'] == 'POST') {

if (isset($this->request->post['remove'])) {

$result = explode('_', $this->request->post['remove']);

$this->cart->remove(trim($result[1]));

} else {

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);

}

}

$output = '<table cellpadding="2" cellspacing="0" style="width: 100%;">';

if ($this->cart->getProducts()) {

foreach ($this->cart->getProducts() as $product) {

$output .= '<tr>';

$output .= '<td width="1" valign="top" align="left"><span class="cart_remove" id="remove_ ' . $product['key'] . '" /> </span></td><td width="1" valign="top" align="right">' . $product['quantity'] . ' x </td>';

$output .= '<td align="left" valign="top"><a href="' . $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&product_id=' . $product['product_id']) . '">' . $product['name'] . '</a>';

$output .= '<div>';

foreach ($product['option'] as $option) {

$output .= ' - <small style="color: #999;">' . $option['name'] . ' ' . $option['value'] . '</small><br />';

}

$output .= '</div></td>';

$output .= '</tr>';

}

$output .= '</table>';

$output .= '<br />';

$total = 0;

$taxes = $this->cart->getTaxes();

$this->load->model('checkout/extension');

$sort_order = array();

$view = HTTP_SERVER . 'index.php?route=checkout/cart';

$checkout = HTTPS_SERVER . 'index.php?route=checkout/shipping';

$results = $this->model_checkout_extension->getExtensions('total');

foreach ($results as $key => $value) {

$sort_order[$key] = $this->config->get($value['key'] . '_sort_order');

}

array_multisort($sort_order, SORT_ASC, $results);

foreach ($results as $result) {

$this->load->model('total/' . $result['key']);

$this->{'model_total_' . $result['key']}->getTotal($total_data, $total, $taxes);

}

$sort_order = array();

foreach ($total_data as $key => $value) {

$sort_order[$key] = $value['sort_order'];

}

array_multisort($sort_order, SORT_ASC, $total_data);

$output .= '<table cellpadding="0" cellspacing="0" align="right" style="display:inline-block;">';

foreach ($total_data as $total) {

$output .= '<tr>';

$output .= '<td align="right"><span class="cart_module_total"><b>' . $total['title'] . '</b></span></td>';

$output .= '<td align="right"><span class="cart_module_total">' . $total['text'] . '</span></td>';

$output .= '</tr>';

}

$output .= '</table>';

$output .= '<div style="padding-top:5px;text-align:center;clear:both;"><a href="' . $view . '">' . $this->language->get('text_view') . '</a> | <a href="' . $checkout . '">' . $this->language->get('text_checkout') . '</a></div>';

} else {

$output .= '<div style="text-align: center;">' . $this->language->get('text_empty') . '</div>';

}

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

}

}

?>

где тут что не так???

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это в

view/../template/module/cart.tpl

<div id="module_cart" class="box">

<div class="top"><img src="catalog/view/theme/default/image/basket.png" alt="" /><div style="margin-left: 10px; margin-top: 5px; font-size: 18px; color: green;"><?php echo $heading_title; ?></div></div>

<div class="middles">

<?php if ($products) { ?>

<br />

<?php if ($display_price) { ?>

<table cellpadding="0" cellspacing="0" align="right" style="display:inline-block;">

<?php foreach ($totals as $total) { ?>

<tr>

<td align="right"><span class="cart_module_total"><b><?php echo $total['title']; ?></b></span>

<span class="cart_module_total"><?php echo $total['text']; ?></span></td>

</tr>

<?php } ?>

</table>

<?php } ?>

<div style="padding-top:5px;text-align:center;clear:both;"><a href="<?php echo $view; ?>"><?php echo $text_view; ?></a> | <a href="<?php echo $checkout; ?>"><?php echo $text_checkout; ?></a></div>

<?php } else { ?>

<div style="text-align: center;"><?php echo $text_empty; ?></div>

<?php } ?>

</div>

<div class="bottom"> </div>

</div>

<?php if ($ajax) { ?>

<script type="text/javascript" src="catalog/view/javascript/jquery/ajax_add.js"></script>

<?php } ?>

<script type="text/javascript"><!--

function getUrlParam(name) {

var name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");

var regexS = "[\\?&]"+name+"=([^]*)";

var regex = new RegExp(regexS);

var results = regex.exec(window.location.href);

if (results == null)

return "";

else

return results[1];

}

$(document).ready(function () {

$('.cart_remove').live('click', function () {

if (!confirm('<?php echo $text_confirm; ?>')) {

return false;

}

$(this).removeClass('cart_remove').addClass('cart_remove_loading');

$.ajax({

type: 'post',

url: 'index.php?route=module/cart/callback',

dataType: 'html',

data: 'remove=' + this.id,

success: function (html) {

$('#module_cart .middles').html(html);

if (getUrlParam('route').indexOf('checkout') != -1) {

window.location.reload();

}

}

});

});

});

//--></script>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

лучше бы ссылку на проект дал

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

за рекламу не примут????

babyim.ru

сейчас "Добавить в корзину (AJAX):" отключен, чтобы люди лишних движений нее делали.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

они то может и не сделают, а вот мне пришлось

файл http://babyim.ru/catalog/view/javascript/jquery/ajax_add.js

$('#module_cart .middle').html(html);
замени на

$('#module_cart .middles').html(html);
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какой ВЫ хороший человек))))

СПАСИБО!!!!

Всё заработало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.