Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

mpn2005

Users
  
  • Posts

    3,222
  • Joined

  • Last visited

Everything posted by mpn2005

  1. Простите, но это просто ужасно. Можно обойтись одним implode. <?php $html = array(); foreach ($products as $product) { foreach ($product['option'] as $option) { $html[] = $option['model'] . '-' . $product['quantity']; } } echo implode(', ', $html); ?>
  2. Мой модуль добавляет только одно изображение к опции. Если надо больше, то посмотрите на модуль "изображения опций pro".
  3. Добрый день. Подойдёт. Только надо будет доработать мой модуль обновления цены, для смены изображения и артикула. P.S.: Я на эти выходные уезжаю. Поэтому смогу выделить время на следующей неделе.
  4. Я говорю, что из коробки не взлетит. И прилично пришлось переписать, что бы на виртуальном хостинге это работало. И только индексами и настройками не обойтись. Это на Ваше голословное заявляние, хоть 1000. В общем хватит оффтопить.
  5. Я как раз таки очень плотно с этим работал. И скажу Вам, что это не так всё весело, как кажется. Возьмите товаров с опциями и закиньте в корзину 100-300 штук. И штатный движок ляжет. Ну уж точно не потянет на виртуальном хостинге. Тут недавно проскакивала длинная тема по обсуждению этого вопроса.
  6. В общем тут много вопросов в реализации. И всё действительно зависит от множества факторов. Поэтому самое оптимальное вывести в корзине и глубже не лезть. Особенно если учесть всё нюансы упоминаемые в обсуждении. P.S.: Лишние запросы для такой сомнительной функции тоже не стоит добавлять в движок. Т.к. если будут кидать в корзину по 100 товаров, то тут и штатные запросы корзины придётся минимизировать. Но это касается магазинов с кучей мелких товаров.
  7. Не могу с этим согласиться. 1) Покупатель оформляет заказ. 2) Заказ создаётся с нулевым статусом. И покупатель перенаправляется в платёжную систему. 3) После успешной оплаты покупатель попадает на страницу завершения заказа. (тут сессия живая) 4) Платёжная система со своего сервера делает callback запрос для подтверждения оплаты. И при корректном key и всех данных, статус заказа меняется на оплаченный. Вот тут уже нет никакой сесии покупателя, это совсем отдельный запрос со своей сессией. И именно тут меняется статус заказа и отправляется письмо.
  8. Она то сохранится для покупателя. Но при приходе callback к сессии покупателя не будет доступа. А письмо уходит именно при приходе callback, если используется метод автоматической оплаты.
  9. В сессию не получится. От платёжки подтверждение идёт сосвем с другого адреса и будет другая сессия. Вообще согласен, задача весьма сомнительная.
  10. Да. Но есть ещё интервал ожидании оплаты. Теоретически может пройти некторое время до подтверждения заказа (пока проходит оплата). В этот момент могут поменятся цены акции, или пропасть акции. И на момент подтверждения данные будут не валидны. Поэтому всё же лучше сохранять копию данных, как это предусмотрено в движке.
  11. Точно. Запамятовал уже. Но более правильный вариант - это сохранить в таблице заказа акционную цену товара из корзины. Т.к. прямой запрос отрежет возможную совместимостть модулей влияющих на акции. Например модули - "Акции в процентах" и т.д.
  12. И нет смысла делать лиший запрос в catalog/model/checkout/order.php Т.к. там все данные достаются из корзины getProducts. И более правильный вариант - это реализовать на уровне корзины. И просто забирать данные из нужного поля.
  13. Обязательно. Т.к. ваше: 'special' => $this->currency->format($special + ($this->config->get('config_tax') ? $product['tax'] : 0), $order_info['currency_code'], $order_info['currency_value']), При отсутствии акции выведет '0 руб' Т.к. $special у вас будет = 0 И в шаблоне не отработает: <?php if (!$product['special']) { ?> Т.к. там не пустая строка '0 руб'
  14. Добрый день. Т.к. тема в разделе для разработчиков, опишу основной алогоритм. Реализация для корзины: 1) В либе корзины сохраняете цену товара до применения скидок и акций 2) В коде отдачи данных о товаре доавляете перменную old_price (название для примера). Если цена равна цене после обработки скидок и акций, то возвращаете false. 3) В контроллере корзины обрабатываете переменную из либы корзины. Если там не false, то готовите форматированную цену, иначе отаёте false 4) В шаблоне корзины, если не false, то выводите старую цену. 5) Profit. Реализация для писем: 1,2) Уже готово из предыдущего пункта. 3) Принимаем старую цену в контроллере письма. Если не false, то готовим строчное представление цены, иначе возвращаем false. 4) В шаблоне письма выводим старую цену. если она не false. 5) Profit.
  15. На закладке "Локлизация" в настройках магазина есть настройки модуля. Настройка называется - Акции на опции. при включении на опции будет сделана акция пропорционально акции на товар.
  16. Добрый день. Готового решения можете не найти. Если такие сложности с работой модулей на используемой темы. Могу сделать доработку для модуля обновления цены, но надо смотреть код темы. Скиньте пример карточки товара в личку. Т.к. по таким абстрактным вводным сложно что-то посоветовать.
  17. Товары сами по себе в корзине избыточны. Если переписать под задачу и минимизировать запросы ненужные, то что-то божеское можно получить. Без переписывания из коробки не потянет. Или сервер надо нехилый под это брать, что в принципе не правильно.
  18. Самое жестокое что делал - это нитки мулине. В корзине по несколько тысяч позиций. Переписывалась корзина почти полностью. И опции переписывал на урощённую логику. Т.к. со штатными запросами и кучей join это просто не летает нормально. В итоге всё пашет на виртуальном хостинге. И грузится страница довольно шустро. Делалось всё для 1.5 P.S: Время генерирования страницы товара 500ms. С количетвом опций >500 в карточке товара. Если всех позиций по 1 шт кинуть в корзину, то добавление порядка 5сек. Время генерирования корзины (симпла) с полным набором 5-6 сек.
  19. Если всё хорошо, и модуль не конфликтует ни с чем, то просто в карточке товара при выборе опции будет менятся основная цена товара. Как на демо: http://ocs2302.mpn-oc.org/test
  20. Отсутствую до 10.05.2017. По возвращении отвечу на все личные сообщения.
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.