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

Нужна помощь с модулем корзины

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

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

$('#button-cart').bind('click', function() {
$.ajax({
  url: 'index.php?route=checkout/cart/add',
  type: 'post',
  data: $('.product-info input[type='text'], .product-info input[type='hidden'], .product-info input[type='radio']:checked, .product-info input[type='checkbox']:checked, .product-info select, .product-info textarea'),
  dataType: 'json',
  success: function(json) {
   $('.success, .warning, .attention, information, .error').remove();
  
   if (json['error']) {
	if (json['error']['option']) {
	 for (i in json['error']['option']) {
	  $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>');
	 }
	}
   }
  
   if (json['success']) {
	$('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
	
	$('.success').fadeIn('slow');
	$('#cart-total').html(json['total']);
  
	$('html, body').animate({ scrollTop: 0 }, 'slow');
   }
  }
});
});
я новичек еще в opencard, и не совсем представляю куда уходит инфа, пжлста просвятите, тут я так понял данные отдаются классу cart и методу add, если есть мануал по роутигну было бы круто, или на api ,чет не нашел

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


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

Вам нужно смотреть в контроллере catalogcontrollercheckoutcart.php метод add...

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


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

да я в него заглядывал, там общую цену ставит 0

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


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

Предоставьте код метода add.

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


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

вот

public function add() {
  $this->language->load('checkout/cart');
 
  $json = array();
 
  if (isset($this->request->post['product_id'])) {
   $product_id = $this->request->post['product_id'];
  } else {
   $product_id = 0;
  }
 
  $this->load->model('catalog/product');
	 
  $product_info = $this->model_catalog_product->getProduct($product_id);
 
  if ($product_info) {  
   if (isset($this->request->post['quantity'])) {
    $quantity = $this->request->post['quantity'];
   } else {
    $quantity = 1;
   }
			 
   if (isset($this->request->post['option'])) {
    $option = array_filter($this->request->post['option']);
   } else {
    $option = array();
   }
  
   $product_options = $this->model_catalog_product->getProductOptions($this->request->post['product_id']);
   //var_dump($product_options);
   foreach ($product_options as $product_option) {
    if ($product_option['required'] && empty($option[$product_option['product_option_id']])) {
	 $json['error']['option'][$product_option['product_option_id']] = sprintf($this->language->get('error_required'), $product_option['name']);
									   
    }
   }
  
   if (!$json) {
    $this->cart->add($this->request->post['product_id'], $quantity, $option);
    $json['success'] = sprintf($this->language->get('text_success'), $this->url->link('product/product', 'product_id=' . $this->request->post['product_id']), $product_info['name'], $this->url->link('checkout/cart'));
   
    unset($this->session->data['shipping_method']);
    unset($this->session->data['shipping_methods']);
    unset($this->session->data['payment_method']);
    unset($this->session->data['payment_methods']);
   
    // Totals
    $this->load->model('setting/extension');
   
    $total_data = array();	
    $total = 0;
    $taxes = $this->cart->getTaxes();
   
    // Display prices
    if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
	 $sort_order = array();
	
	 $results = $this->model_setting_extension->getExtensions('total');
	
	 foreach ($results as $key => $value) {
	  $sort_order[$key] = $this->config->get($value['code'] . '_sort_order');
	 }
	
	 array_multisort($sort_order, SORT_ASC, $results);
	
	 foreach ($results as $result) {
	  if ($this->config->get($result['code'] . '_status')) {
	   $this->load->model('total/' . $result['code']);
   
	   $this->{'model_total_' . $result['code']}->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);  
	 }
    }
    $json['total'] = sprintf($this->language->get('text_items'),  $this->currency->format($total),$this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0));
   } else {
    $json['redirect'] = str_replace('&', '&', $this->url->link('product/product', 'product_id=' . $this->request->post['product_id']));
   }
  }
 
  $this->response->setOutput(json_encode($json)); 
}

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


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

В контроллере всё в порядке, скорее всего проблема в модели...

Проверьте эти места:

catalogmodeltotalsub_total.php метод getTotal()

systemlibrarycart.php метод getSubTotal().

Изменено пользователем korsox

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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