• Объявления

    • dinox

      Закрытый раздел разработчиков   21.08.2017

      У нас на форуме существует закрытый раздел для разработчиков в котором мы обсуждаем нюансы работы на нашем форуме, в каталоге дополнений и другие моменты которые интересны в большинстве случаев только разработчикам. На данный момент существует лишь 2 условия для попадания:
      1. Наличие промодерированного дополнения в нашем каталоге  2. Отсуствие варезной деятельности 
      Если эти правила выполнены, пишите запрос @ArtemPitov на попадание в раздел разработчиков
Baco

Опции в корзине [Не решено]

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

Baco    395

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

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

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

итак, есть пациент: если добавить этот товар, можно с и без опций, то видно, что вывел их (опции) в мод 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] - всё время разный, а не обновляется...

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

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

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


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

А что такое $key

 

может нужно

public function update(&$key, $qty, $option = array())

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


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

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

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

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

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

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

 

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

 

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

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


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

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

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


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

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

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

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

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

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

Войти

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

Войти


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

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