Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Engineer

Пользователи
  • Публикаций

    69
  • Зарегистрирован

  • Посещение

Все публикации пользователя Engineer

  1. Engineer

    Вопросы по корзине.

    Новый форум - это нечто. Полностью сожрало разметку. Попробую повторить. Правильно поняли, что "что-то не так" $json['total'] - это не число товаров в корзине, а уже отформатированная строка ответа " Икс товаров на Игрек тугриков". Число товаров в корзине - это $this->cart->countProducts(), код который вам нужен должен выглядеть где-то так Например: if($this->cart->countProducts() == 0) $json['total'] = ... if($this->cart->countProducts() == 1) $json['total'] = ... Обратите внимание, сравнение в php не = (как у вас в коде - это присвоить значение), а == $data['text_items'] - это, тащем-та, тот самый шаблон, вида "%s товаров - %s денег". Он вообще не для правки в коде :) На вашем месте я бы вообще определил в языковом файле language/(язык)/checkout/cart.php несколько текстов для разных вариантов вида: $_['text_items1'] = "%s товаров - %s денежных единиц. Немного подкреплюсь" и использовал бы их.if($this->cart->countProducts() == 1) $json['total'] = sprintf($this->language->get('text_items1'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total)); Что делает код: если число товаров в корзине равно единице, то в заполняет места в шаблоне (первый аргумент функции sprintf, до первой запятой) для подстановки ( %s ) параметрами. Первый - от первой до второй запятой в функции sprintf (второй аргумент) считает число товаров и купонов, второй - после второй запятой (третий аргумент), сумма. Если не нужен вывод числа товаров, суммы - правите шаблоны и убираете из sprintf ненужные параметры.
  2. Engineer

    Вопросы по корзине.

    Правильно поняли, что "что-то не так" $json['total'] - это не число товаров в корзине, а уже отформатированная строка ответа " Икс товаров на Игрек тугриков". Число товаров в корзине - это $this->cart->countProducts(), код который вам нужен должен выглядеть где-то так. if($this->cart->countProducts() == 0) $json['total'] = ... if($this->cart->countProducts() == 1) $json['total'] = ... Обратите внимание, сравнение в php не = (как у вас в коде - это присвоить значение), а == $data['text_items'] - это, тащем-та, тот самый шаблон, вида "%s товаров - %s денег". Он вообще не для правки в коде :) На вашем месте я бы вообще определил в языковом файле language/(язык)/checkout/cart.php несколько текстов для разных вариантов: $_['text_items1'] = "%s товаров - %s денежных единиц. Немного подкреплюсь" и использовал бы их. Например:if($this->cart->countProducts() == 1) $json['total'] = sprintf($this->language->get('text_items1'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total)); Что делает этот код: если число товаров в корзине равно единице, то в заполняет места в шаблоне (первый аргумент функции sprintf, до первой запятой) для подстановки ( %s ) параметрами. Первый - от первой до второй запятой в функции sprintf (второй аргумент) считает число товаров и купонов, второй - после второй запятой (третий аргумент), сумма. Если не нужен вывод числа товаров, суммы - правите шаблоны и убираете из sprintf ненужные параметры.
  3. Engineer

    Вопросы по корзине.

    Блин, парни, откуда такая любовь удалять гланды через задний проход? Чуть теории. Манипуляции с содержимым виджета корзины происходят с помощью функций add и remove контроллера catalog/controller/checkout/cart.php. Если "не сложилось", например попытались добавить товар без обязательной опции, в ответе будет json['redirect'] на страницу товара. Если все хорошо, в ответе json будет поле total, которое скрипт на странице подхватывает и вставляет как текст в виджет корзины. $json['total'] = .... это оно. По умолчанию, "из коробки" вывод формируется в виде "{количество} товаров - {сумма}", независимо от количества товаров и суммы, даже нулевого. Если хочется, чтобы в зависимости от количества выводились разные надписи, то вместо коробочного единого текста делаете if или switch по $this->cart->countProducts() (это функция подсчета числа товаров в корзине) и там уже по вариантам количества ( ноль, не ноль, другие цифры) делаете свой вывод. В итоге вместо дефолтного присваивания у вас будет конструкция вида: Если А $json['total'] = ... Если B $json['total'] = .... и т.д. Можно добавить в языковый файл корзины разных текстов и их использовать для таких случаев. Вышеизложенное для опенкарта из коробки. Если стоит тема и что-то правит по-своему, надо разбирать ее и править по тому же принципу
  4. Не должно быть критично. А вообще, для опорных цифр, ориентиров, сделайте копию магазина, соберите все товары в одну категорию и в файле catalog/model/catalog/product.php сделайте маленькую правку: 1. найдите функцию getProducts 2. и строчку в ней, где задаются лимиты на вывод закомментируйте ее и вместо нее пробуйте $sql .= " LIMIT 0,100" 200,300...1000, 5000, 10000 и т.п. Открывайте ту категорию, куда все собрали, и смотрите, как быстро выводит. Тк скзать, научным тыком определите, когда ваш магазин на вашем хостинге в ваших условиях начнет захлебываться.
  5. Скорее всего этим вы просто убьете магазин. В опенкарте есть одна особенность реализации получения списка товаров : после предварительного запроса для получения списка товаров подходящих по условиям(категория и т.д.) для каждого(!) товара из этого списка потом вызывается функция с отдельным sql-запросом к БД. Из-за этого стандартные 20-50 товаров на странице еще не так болезненно, но если в категории сотни товаров и вы захотите получить все сразу, то получите бешеную нагрузку на сервер сзади и тормоза на выходе спереди. Если товаров еще больше, то "стремительным домкратом" растут шансы на то, что вывода вообще не будет. Сервер просто убьет по таймауту php скрипт, пока тот дожидается ответа от БД. Если же вывод всех товаров так критичен, что просто жить без этого никак, надо в первую очередь переписывать модель( и возможно оптимизировать под вас). Все остальное - внешняя возможность выбора "все товары", использование ее по умолчанию, передача этого нового параметра внутрь для исполнения - только вершина айсберга.
  6. Скорее всего у блока вылетевшего в шапку в стиле position: absolute, а у его родителя-контейнера не выставлен position: relative. Вот его и позиционирует по координатам не внутри родителя, а на странице
  7. Стукните в ЛС, если еще актуально.
  8. 1. Хотелось бы взглянуть на сайт (ссылку). 2. Какая тема/шаблон использованы. 3. Чем пользовались для стикеров (модуль, что-то свое)
  9. Вывод задается в шаблоне: catalog/view/theme/default/template/product/category.tpl Если тема не дефолтная, соответственно меняется путь. Там ищете $description - переменная в которой описание категории, будет выглядеть как-то так. Смысл фрагмента: если есть картинка для категории $thumb или описание $description - вывести их. Смотрите по разметке, куда его вам хочется перенести - переносите код туда, и вуаля!
  10. У меня знакомая из РФ, из Е-бурга влетела на Гепатит С. Пренеприятнейшая дрянь. Ну и по ходу лечения начала узнавать цены. Софосбувир(кажется) стоил чуть ли не на порядок дороже ( раз в 6-7) чем дженерик из Индии. Та же формула, то же действующее вещество, просто без раскрутки, рекламы, бренда, лейбла и т.п. Дженериком, ну нонейм, торгуют чуть ли не из под полы, всячески стопорят лицензирование, разрешения. Вот на этой накрутке в 6-7 раз и можно проводить семинары для врачей, приплачивать дилерские аптекам и прочее. Нужен только лох, который будет за все это платить. А тему принудительного лицензирования, как в Индии, когда изобретателю платят фиксированный процент от сбыта и делают у себя, почему и выходит в разы дешевле, прикрыли, что в России, что в Украине - "снижает инвестиционную привлекательность". Такие дела.
  11. Да. Я правда не на сайтах обращал внимание на это, а в самих аптеках. В рецепте одно, но всегда могут предложить такое же лекарство, с таким же действующим веществом, но от другого производителя под другим названием и с другой ценой. В общем, кто-то (и я полагаю этот кто-то - заказчик) должен предоставить список аналогов, из которого можно сделать таблицу и следить за ее наполнением. Тогда и поиск можно делать умно и быстро.
  12. Как мне кажется, если нет формализации критериев и процедуры, как подбирать аналоги, сфинкс не поможет. А если она есть, то это решается добавлением пары полей/таблиц с продуманной индексацией, подпиливанием поиска и аж шуршит все.
  13. А какие еще опции используются для штор(товара)? Цвет, что-то с материалом, или размер высота х ширина единственная? И размеры полотен исходных материала общие, или для разных материалов могут отличаться? Ну например, в одном случае 1,5м, в другом два, и от этого будет меняться формула расчета цены?
  14. Скачать / Купить дополнение Improved cache Для работы модуля требуется vqmod, копируем файл в каталог xml и машем крылышками. Стандартное время жизни кэша данных в опенкарт - 1 час. Данное дополнение немного хакает ядро, позволяя программистам и разработчикам установить большее время жизни для данных. Как использовать после установки? Например, в файле моделей для производителей ищем строчку $this->cache->set('manufacturer.' . (int)$this->config->get('config_store_id'), $manufacturer_data); и правим на $this->cache->set('manufacturer.' . (int)$this->config->get('config_store_id'), $manufacturer_data, 24); передавая дополнительный параметр 24, теперь данные будут жить 24 часа. Для других моделей, использующих кэш, аналогично. Изменение обратно совместимо, для вызовов, которые не используют данную возможность, не передают новый параметр, в ядре подставляется значение по умолчанию "1", и данные будут жить стандартный час (3600 секунд) Версии 1.5.5* 1.5.6.* Добавил Engineer Добавлено 31.03.2014 Категория Кэширование, сжатие, ускорение  
  15. Если имеете вечером время, стукните в скайп ( в профиле) - обсудим. Но, конечно, хотелось бы четче сформулировать ТЗ, поля "и т.д." в таблице не создашь :oops:
  16. Не поля, а ссылку и контейнер(див), которые становятся новым заголовком и содержимым вкладки соответственно. Что выведете в контейнер, то и будет во вкладке.
  17. Артикул товара в заказе в непиленой базе не сохраняется. Вам надо : 1. Добавить поле для артикула в таблицу [oc_]order_product, 2. Сохранять его туда (поправить функцию addOrder в catalog/model/checkout/order.php ) 3. Поправить то место, где ее вызывают (если не подводит память catalog/controller/checkout/confirm.php или что-то вроде того), чтобы дать в п.2. этот sku 4. Вернуться к файлу модели из п.2. и посмотреть функцию confirm (там идет отправка писем), чтобы скомпоновать письмо по вкусу со sku ))
  18. Ищите в шаблоне слова tabs htabs и будет счастье )
×
×
  • Создать...

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

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