Регистрация
Вход через соцсети
Восстановление пароля

Интернет-магазин: сортировка (вопрос)

Новый топик
19.06.2011, 16:31
Ответить | Цитировать
MipH
Спирин Дмитрий
MipH

Зарегистрирован:
2004-12-22
Сообщений: 252

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

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

Поэтому если есть в корзине товар с ID, например, 7777, а добавляешь товар с id 4444, то он в заказе станет первым.

Из-за этого наблюдается нереальный геморр с остальной частью функционала одного из проектов.

Кто что скажет?

bbzone@gmail.com | bbz.ru | miph.info | miph.ru
Вы можете обратиться ко мне, если необходима разработка функционала на NetCat
21.06.2011, 14:14
Ответить | Цитировать
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

По теории реляционных БД в идеале каждая табличка должна содержать поле с уникальным ИД. Отпиши свое пожелание сюда - будем лобировать!

Temet nosce...
03.06.2013, 21:49
Ответить | Цитировать
Андрей Сергеевич Радоманов

Зарегистрирован:
2013-06-03
Сообщений: 1

Сейчас столкнулся с той же проблемой. Решается так. В компоненте корзины в файле FormPrefix.html, прямо перед кодом вывода позиций добавляем код сортировки по любому полю (или набору полей):

#сортировка по полю "Priority"
foreach ($shop->CartContents as $key=>$row){
$sortarr[$key]=$row['Priority'];
};
array_multisort($sortarr, SORT_ASC, $shop->CartContents);

Все. Корзина выводится отсортированной по полю "Priority"
198 196 2013-06-03 21:49:51 11376
Описание проекта