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

Baco

Користувачі
  • Публікації

    2 247
  • З нами

  • Відвідування

Повідомлення, опубліковані користувачем Baco

  1. ХЗ как у Вас, а если меня просят объяснить что делал, то я просто даю ссылки на файлы, которые "оперировал" и добавляю, что все правки подкомментированы, объяснять же за что они платили - не берусь и не отвечаю даже на такие вопросы, сразу называю сумму за работу, не нравиться - на форум или фриланс, правда минималка у меня для захода на ФТП - 15, но в большинстве случаев, в эту сумму и входит правка или доустановка чего то, если же заказчик начинает истерить (а я беру денюжку только после оплаты), то я тихонько код убираю, откатываю как было до меня и посылаю к более компетентному и "понимающему" специалисту.

  2. При success вы можете поставить любое условие, я делал на перезагрузку, так как лень было писать много кода на обновление и джейсон...

    Если вы например хотите, что бы просто в "шапке" миникорзины тотал_айтемс менялось, то вместо редиректа поставьте такой код:

    $('#cart-total').html(json['total']);
    

    ну и дальше уже зависит от фантазии...

  3. $product['href'] можете прописать под:


    'href'     => $this->url->link('product/product', 'product_id=' . $product['product_id'])
    

    а вот функция javascript для удаления по онклику:

    function removeCart(key) {
    	$.ajax({
    		url: 'index.php?route=checkout/cart',
    		type: 'get',
    		data: 'remove=' + key,
    		dataType: 'html',
    		success: function(json) {
    		
    		window.location='index.php?route=checkout/cart';// или Ваша страница для перезагрузки			
    		}
    	});
    }
    

    то есть вешаете какой то рисунок\кнопку\ссылку на событие: 

    <a onclick="removeCart('<?php echo $product['key']; ?>');" >

    Ну и про всяк случай, гляньте, есть ли по адресу контроллера checkout/cart : код обработки:

    if (isset($this->request->get['remove'])) {
    	$this->cart->remove($this->request->get['remove']);
    
  4.  

     

    Начал копаться в коде, выяснилось что элемент "button-cart" вызывает функцию add() в checkout/cart.php, но где перехватить значение цены в данном конкретном заказе я не понял.

    Нет, add передается в класс корзины по адресу system\library\cart.php, где в сессию передается значение ИД товара, кол-во и... если есть, опции.

    Цены вы можете указать в поле input которое передает value при клике (вызове функции addToCart).

  5. Если язык один и вы владелец магазина - то не влияет, если вы разработчик и создаете шаблон, то это правило "хорошего тона" прописывать переменные языка в соотв. файлы, а то уже знаю некоторых (PAV) любителей тыкать текст в TPL файлы.

  6. В общем решил, в класс корзины на обновление решил передавать уже ключ с\без опций, а на стадии контроллера произвёл все манипуляции, всё работает корректно, всем спасибо, вопрос решен самостоятельно.

  7. $key - ID товара в сессии корзины, суть в том, что передает то 3 разных ключа (товара в корзине) вместо одного:

    1. Просто товар без опций

    2. Товар с опцией 1

    3. Товар с опцией 2

    Вопрос: как обновить опции к товару в корзине ? Костыль по типу: remove $key, а потом add по новой со всеми параметрами - отпадает.

     

    P.S. Ссылаться на источник посредством амперсанта - не помогло.

     

    Вот описание метода, который я модифицирую.

  8. Доброго времени дамы и господа...

    Моё обращение, вернее консультирование в тупиковом вопросе:

    Опции в корзине...

    итак, есть пациент: если добавить этот товар, можно с и без опций, то видно, что вывел их (опции) в мод Simple + подключен на reload, в случае выбора той или иной опции + калькулирование цены добавил, но это не существенно...

    в общем: при выборе в корзине той или иной опции отсылается POST с массивом "несериализированных" данных в корзину на апдейт, сама же функция апдейта на текущий момент имеет вид:

    public function update($key, $qty, $option = array()) {
    	   		
          	$blink = explode(':', $key);
    			if (isset($blink[1]) && $option) {
    					$opt = unserialize(base64_decode($blink[1]));
    					foreach ($opt as $keyper => $value) {
    						if (!in_array($value, $option)) {							
    							$phrase = (int)$blink[0] . ':' . base64_encode(serialize($option));
    							unset($key);
    							$key = $phrase;			
    						}
    					}
    			} elseif(!isset($blink[1]) && $option) {
    				unset($key);
    				$key = (int)$blink[0] . ':' . base64_encode(serialize($option));//$key
    
    			}
    		
        	if ((int)$qty && ((int)$qty > 0)) {
          		$this->session->data['cart'][$key] = (int)$qty;
        	} else {
    	  		$this->remove($key);
    		} 
    		
    		$this->data = array();
      	}
    

    Вроде бы всё хорошо, но... при выборе опции, клонируются ключи, то есть ID товара:опции unset ключа не срабатывает, то есть $this->session->data['cart'][$key] - всё время разный, а не обновляется...

    Вопрос: может кто сталкивался или имеет трезвый взгляд со стороны или алгоритм может как то сменить... а то именно с обновлением корзины как раз то и остался момент, никак не решенный.

    Спасибо за внимание.

  9. Сделайте перечень всех необходимых вам ID товаров - массивом, а потом просто объявите его и сравните с массивом товаров из категории, если есть среди массива при переборе - показывать, если нет - то нет...

  10. и как раз эти данные, я предполагаю, вы укоротили на своем сайте ? а что на их место ставить надо ? ругается база что нечего в ячейки вставлять... или заглушки ставьте на те переменные, которые удалили или выкидывайте всё полностью из контролера и модели создания заказа, как это сделать - не просите, попробуйте сами поковыряться.

  11. Подскажу, но делать за вас не буду...

    после строки, которая начинается так:

    <?php foreach ($products as $product) { ?>
    

    добавляете условие:

    <?php if ($product['product_id'] == 'Ваш_ID_товара') { ?>
    

    а так же закрыть условие перед этой строкой:

    <?php } ?>
      </div>
      <div class="pagination"><?php echo $pagination; ?></div>
    

    добавить:

    <?php } ?>
    
×
×
  • Створити...

Important Information

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