|
0 / 6 / 0
Регистрация: 10.04.2016
Сообщений: 66
|
|
Логика для корзины интернет-магазина24.04.2016, 02:40. Показов 3399. Ответов 22
Доброго времени суток, уважаемые знатоки. Подскажите пожалуйста, как по вашему лучше реализовать идею? Есть ИМ, где необходимо, чтобы товар имел свойства, такие как размеры, тип управления и т.п. Т.е. есть материал со стоимостью погонного метра и свойства изделия, которые будет выбирать пользователь. Вот пример: Рулонная штора, цена за погонный метр 4000 р, id в базе 25, клиент выбрал свойства : Ширина: 504 мм, Высота:1297 мм, Управление: слева, Высота управления: 1296 мм. В типовых ИМ корзина реализована таки образом, при нажатии кнопки купить = создается сессия и в сессию летит массив (id=>amount) т.е. идентификатором выступает id. У меня же товар с любым отличным свойством = по сути новый товар, поэтому если изменился хоть один из параметров, например высоту поменяли на 1400 мм, то в корзину должен улететь еще один товар. Что в данном случае использовать в качестве уникального идентификатора? Я думаю использовать хэширование для всех свойств, т.е. переводить в md5 и использовать его в качестве ключа для пары (md5 ключ=> amount). Как вы думаете на счет этого? Или тупо лепить стринг из свойств в качестве ключа? Слишком длинно выходит... Главное что далее будет сравнение = если добавили в корзину товар с таким же идентификатором, значит идет увеличение колличества (amount), если же идентификатор другой = добавляем новый товар.
0
|
|
| 24.04.2016, 02:40 | |
|
Ответы с готовыми решениями:
22
Пример корзины магазина Парсер для интернет магазина Корзина для интернет магазина |
|
Заблокирован
|
|
| 24.04.2016, 03:43 | |
|
посмотри плагин для wordpress называется yocommerce на wordpress.org/plugins
там очень мало исходного кода, но как раз то что тебе нужно.
0
|
|
|
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
|
||
| 24.04.2016, 11:50 | ||
|
тоже самое и со свойствами, вдруг название поменяется или само св-во
0
|
||
|
0 / 6 / 0
Регистрация: 10.04.2016
Сообщений: 66
|
|
| 24.04.2016, 13:05 [ТС] | |
|
полудух, Цены будут меняться только на материал, данные о котором лежат в mysql бд, и при изменении цены на материал, будет меняться цена на изделяе, т.к. из выбранных параметров реализуется коэффициент, который умножается на цену погонного метра и полуачется цена изделия.
0
|
|
| 24.04.2016, 13:06 | |
|
0
|
|
|
0 / 6 / 0
Регистрация: 10.04.2016
Сообщений: 66
|
|
| 24.04.2016, 13:12 [ТС] | |
|
Jewbacabra, Да это действительно так, тем более, сессия с товарами в корзине хранится только до момента оформления заказа, а уж после заказа - вообще ничего не должно меняться.
Добавлено через 4 минуты poss, Посмотрел там исходники, а именно yocommerce_widget_class и ничего схожего с моим тз не увидел.
0
|
|
|
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
|
||
| 24.04.2016, 13:23 | ||
|
в нормальных магазинах цена в корзине меняется от курса $, например, чуть ли не в тот же день
0
|
||
| 24.04.2016, 13:30 | ||
|
Не по теме:
0
|
||
|
0 / 6 / 0
Регистрация: 10.04.2016
Сообщений: 66
|
|
| 24.04.2016, 13:33 [ТС] | |
|
полудух, Естественно, что при изменении курса доллара, это приведет у изменению цены в рублях и к изменению цены изделия, есть класс currency, который за все отвечает, и даже если вы положили в корзину, а потом поменялся курс, то при следующем обновлении корзины или при следующем этапе оформления- цена поменяется,.т.к. Total price+= item_price*amount*currency.
0
|
|
|
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
|
|||
| 24.04.2016, 13:35 | |||
|
в законе штата прописано про цены в корзине? ![]() а что у них там насчёт времени? я могу наложить в корзину и вернуться через год, а если там что-то изменилось, магазин накроют? ![]() Добавлено через 1 минуту цена сама по себе обычно я к тому, что всё должно быть актуально
0
|
|||
|
0 / 6 / 0
Регистрация: 10.04.2016
Сообщений: 66
|
|
| 24.04.2016, 13:35 [ТС] | |
|
полудух, Для этого есть время сессии, никто ее год не будет хранить.
0
|
|
|
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
|
|
| 24.04.2016, 13:36 | |
|
0
|
|
| 24.04.2016, 13:39 | |||
|
Не по теме:
Еще если ты добавил товар в корзину и не купил в течении некоторого времени - тебе еще и скидку предложат.
0
|
|||
|
67 / 60 / 25
Регистрация: 05.05.2009
Сообщений: 131
|
||||||
| 24.04.2016, 13:41 | ||||||
|
Не обязательно делать md5, можно просто составить ключ из значений параметров в определённом порядке.
Если параметров нет, то ключом будет просто id материала или товара. Например так:
0
|
||||||
|
0 / 6 / 0
Регистрация: 10.04.2016
Сообщений: 66
|
|
| 24.04.2016, 13:45 [ТС] | |
|
полудух, я хорошо читаю, вы сказали, что будет, если я наложу в корзину товара и вернусь через год, а ничего не будет, вы не увидите вашей корзины, т.к. товары в корзине храниться в сессии, session_start() и выставляете время жизни сессии, час или 10 часов или до закрытия браузера, никто на сервере не будет хранить сессию год. На моём сайте реализовано сохранение сессии, до закрытии браузера. И даже если вы день не закрывали браузер, а потом решил оформить заказ, то при добавлении заказа из корзины(сессии) в БД, идет проверка курса доллара.
Добавлено через 3 минуты Darevill, ну собственно, об этом я и спрашивал...т.е. формируем обычный стринг, в строгом порядке... И при сравнении ключей-если они совпали-увеличиваем amount, в противном случае создаем новый товар.
0
|
|
| 24.04.2016, 13:46 | |
|
0
|
|
|
0 / 6 / 0
Регистрация: 10.04.2016
Сообщений: 66
|
|
| 24.04.2016, 13:51 [ТС] | |
|
полудух, возможно вы тоже своей невнимательно сть кого-то раздрожаете, я вам выше написал ответ на ваш выпад по поводу хранения сессии в год, прочитайте и попробуйте аргументированно ответить.
0
|
|
|
67 / 60 / 25
Регистрация: 05.05.2009
Сообщений: 131
|
|
| 24.04.2016, 13:52 | |
Сообщение было отмечено santaatnas как решение
Решение
Логично - у вас не штучный товар, потому ключи в виде id не подойдут, нужно по сути формировать товар на лету исходя из потребностей клиента и в качестве ключа придётся использовать перечисление этих потребностей.
Если вдруг клиент решил поменять размеры - это значит, что ему надо сформировать другой товар, а предыдущий из корзины удалить. Либо вообще не давать возможности редактировать товар в корзине (только количество), а если надо другую конфигурацию - пусть клиент составит её заново, а старую удалит.
1
|
|
|
0 / 6 / 0
Регистрация: 10.04.2016
Сообщений: 66
|
|
| 24.04.2016, 14:06 [ТС] | |
|
Darevill, спасибо вам за идею.
Добавлено через 9 минут полудух, слился, накалякал отрицательный отзыв и не может его даже аргументировать, странные люди нынче пошли, ну да ладно, вы мне в предыдущем посте помагали, за что вам огромное спасибо. Поставлю вам еще плюсик при возможности.
0
|
|
|
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
|
||
| 24.04.2016, 14:09 | ||
|
и обычно людям насрать на ваши переживания и чем раньше, тем лучше но сначала, научитесь читать уже.
0
|
||
| 24.04.2016, 14:09 | |
|
Помогаю со студенческими работами здесь
20
Поиск для интернет-магазина Написание ПП для интернет магазина Создание админки для интернет-магазина Нужна корзина для интернет-магазина, на заказ Нужен партнёр для разработки интернет-магазина Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|