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

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


glide

Recommended Posts

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

Надіслати
Поділитися на інших сайтах


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

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


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

М-да.. Русскоязычное сообщество слабовато. Очень жаль, что подобной "помощью" есть большой риск отвернуть от проекта многих заинтересовавшихся.
да честно говоря ты сам ответил на свои вопросы: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. Или другой вариант. Должна быть возможность задать скидку для группы покупателей не только для конкретной позиции, но и еще индивидуально для каждой группы товаров. И, наверное, это будет правильнее, т.к., на разные категории (группы) товаров могут быть разные скидки.

Надіслати
Поділитися на інших сайтах


  • 3 weeks later...
  • 2 years later...

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

(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 } ?>
Это и есть вывод!!!

Вот и всё!!!

Надіслати
Поділитися на інших сайтах


  • 8 months later...

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

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

Надіслати
Поділитися на інших сайтах


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

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

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