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

Где хранится корзина?+разработка

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

Доброго времени суток.Возник вопрос. В каком виде и где хранится товар, добавляемый в корзину?Перелопатил все таблицы - не нашел. Заметил только что меняется значение поля cart в таблице oc_customer, ито не всегда.И еще, господа, не подскажете ли, - где можно найти хорошую литературу по OpenCard, где в доступной форме объяснялась бы структура движка? Если я правильно поимаю, model - отвечает за получение данных из базы, controller - это логика, а view - это вывод сгенерированной страницы? Каков алгоритм рендеринга страниц? index.php создает все модели (запросы к базе), затем запускается необходимый контроллер (взятый из URL), а контроллер подтягивает нужный шаблон из view? Как бы это все понять?Чувствуется, что движок грамотный - очень хотелось бы освоить.Спасибо.

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


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

Читай внимательно форум - это уже объясняли !!!

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


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

Читай внимательно форум - это уже объясняли !!!

А конкретные ссылки? p.s: Отправлять на поиск этот вопрос не решить :evil:
  • +1 1

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


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

Читай внимательно форум - это уже объясняли !!!

Благодарю за совет. Очень полезно. Еще бы знать, как правильно сформулировать поисковый запрос!

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


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

Читай внимательно форум - это уже объясняли !!!

М-да.. Русскоязычное сообщество слабовато. Очень жаль, что подобной "помощью" есть большой риск отвернуть от проекта многих заинтересовавшихся.
  • +1 1

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


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

Читай внимательно форум - это уже объясняли !!!

М-да.. Русскоязычное сообщество слабовато. Очень жаль, что подобной "помощью" есть большой риск отвернуть от проекта многих заинтересовавшихся.
да честно говоря ты сам ответил на свои вопросы:1) корзина регистрированных пользователей храниться в DB_PREFIX_customer, поле cart. Хранится в виде массива. В файле ..systemlibrarycart.php можно даже понаблюдать как оно оттуда добывается (функция getProducts). Корзина не зарегистрированных, не уверен, но скорее всего храниться в сессии, так же ввиде массива.2) Движок, если не ошибаюсь, у них свой, основан на модели Model-View-Controller (в гугле про нее можно почитать более подробно, она довольно популярна). Ну а разбираться в движке Opencart разве что по строчное изучение кода, начиная с index.php =)ну а если нужен движок, то почитай про фреймворк cakePHP.

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


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

корзина регистрированных пользователей храниться в DB_PREFIX_customer, поле cart.

Мониторю базу. Добавляю товар в корзину и обновляю эту таблицу . НИЧЕГО! Делаю переход на другую страницу в магазине, - появляются данные в поле cart. Какой-то не понятный механизм сохранения данных.

ну а если нужен движок, то почитай про фреймворк cakePHP

Читал о MVC, CakePHP. Суть понятна. Не ясны детали. Относительно OpenCart - очень хотелось бы найти описание назначения методов, применяемых в движке. Путь слепого котенка в черной комнате - очень долог. Для того чтобы ориентироваться в движке, нужно полностью изучить и осознать весь код. И процесс этот отнюдь не быстрый :evil:

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


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

при добавлении в корзину (при помощи AJAX) данные сначала записываются в сессию и при первом же переходе на другую страницу отправляются в базу данных.

ну весь код осознавать совсем не обязательно, все самое интересное происходит в папке ../catalog/ ,

где все красиво по полочкам разложено)

например надо тебе что то изменить в отображении страницы http://.../index.php?route=product/category

соответственно

..catalogcontrollerproductcategory.php - тут основная логика, в том числе подключение 2х следующих файлов

..catalogmodelcatalogcategory.php - тут функции (запросы к БД)

..catalogviewthemedefaulttemplateproductcategory.tpl - сам шаблон

ну еще есть языковой файл, но там все просто)

за пределами каталога впринципе ничего интересного нет)

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


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

Вот это уже что-то.Спасибо. Направление для дальнейшего копания теперь ясно.

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


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

Чтобы не создавать новыую тему, напишу сюда.В сборке с сайта есть группа покупателей "Оптовики". Так и не нашел нигде инструмента для задания цен для этой группы покупателей. Т.е., конечно, есть спец. поля в редакторе товара "Скидки" и "Специальное", но!во-первых, добавить можно только абсолютную цену. Просто процент уменьшения стоимости нельзя (я не нашел).во-2-х, Это что, если у меня каталог, предположим, на 2000 позиций, я что, вручную буду пересчитывать цены на все позиции????? как-то, хлопотно это...Т.е, на мой взгляд, было бы удобно (и, наверное, логично) добавить процент снижения цены прямо в разделе редактирования групп покупателей. Т.е., название группы, скидка в %. Ведь для чего еще нужны группы, как не для получения специальных условий?Но может все это есть? Я просто не внимательно изучал возможности скрипта!?ps. Или другой вариант. Должна быть возможность задать скидку для группы покупателей не только для конкретной позиции, но и еще индивидуально для каждой группы товаров. И, наверное, это будет правильнее, т.к., на разные категории (группы) товаров могут быть разные скидки.

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


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

Никто не знает? Или это не реализовано?

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


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

По теме скажу как формируется корзина и как можно её править

(1 файл)нам понадобиться файл catalog/view/theme/[ваша тема]/template/checkout/cart.tpl

(2 файл)нам понадобиться файл catalog/controller/checkout/cart.php

(3 файл)нам понадобиться файл system/library/cart.php

Все продукты, которые, выбрал незарегистрированный пользователь, хранятся в сессии. Точно так же и зарегистрированные!!!

Я расскажу как оно их выводит.

(2 файл) cart.php мы находим строку

$products = $this->cart->getProducts();

У меня находится на 187 строке. getProducts() выводит товары, которые у нас записанны в куки. Эта функция находиться в (3 файл). У меня на строке 18!

Там есть строка

foreach ($this->session->data['cart'] as $key => $quantity) {
Этот цикл, берёт из кука cart(этот кук записан массивом) id товаров и создаёт массив в котором состоит дополнительная информация по товару!!!

в (1 файл) есть такой код


<?php foreach ($products as $product) { ?>
            <tr>
              <td><?php if ($product['thumb']) { ?>
                <a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" /></a>
                <?php } ?></td>
              <td><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a>
                <?php if (!$product['stock']) { ?>
                <span class="stock">***</span>
                <?php } ?>
                <div>
                  <?php foreach ($product['option'] as $option) { ?>
                  - <small><?php echo $option['name']; ?>: <?php echo $option['value']; ?></small><br />
                  <?php } ?>
                </div>
                <?php if ($product['reward']) { ?>
                <small><?php echo $product['reward']; ?></small>
                <?php } ?></td>
              <td ><?php echo $product['model']; ?></td>
              <td><input type="text" name="quantity[<?php echo $product['key']; ?>]" value="<?php echo $product['quantity']; ?>" size="1" />
                 
                <input type="image" src="catalog/view/theme/default/image/update.png" alt="<?php echo $button_update; ?>" title="<?php echo $button_update; ?>" />
                 <a href="<?php echo $product['remove']; ?>"><img src="catalog/view/theme/default/image/remove.png" alt="<?php echo $button_remove; ?>" title="<?php echo $button_remove; ?>" /></a></td>
              <td><?php echo $product['price']; ?></td>
              <td><?php echo $product['total']; ?></td>
            </tr>
            <?php } ?>
Это и есть вывод!!!

Вот и всё!!!

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


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

Что меняется когда пользователь нажимает "Я зарегистрирован"?

 Иногда у пользователя при этом в корзине кроме свежедобавленных товаров появляются товары с предыдущего успешнооформленного заказа :ugeek:

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


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

Что меняется когда пользователь нажимает "Я зарегистрирован"?

Их корзина хранится в базе. При логине она восстанавливается оттуда.

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


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

Получается, что у некоторых (не у всех) после заказа не очищается записи в бд? Или как эти товары восстанавливаются?

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


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

Я думаю, это из разряда "показалось". Если научите, как воспроизводить ситуацию - тогда можно говорить об ошибке и исследовать, почему так происходит.

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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