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

mimme

Новичок
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

Информация о mimme

  • Звание
    Пользователь
  1. Чтобы поменять письмо, я закомментил дефолтную функцию edit и сделал свою. Ключевые моменты - это докидывание данных в $data и создание нового twig шаблона. Мне надо было, чтобы в письмах была таблица с заказом, так что надо передать в шаблон языковые строки: $language->load('mail/order_add'); И данные по товарам в заказе (копируется из функции выше): $order_products = $this->model_checkout_order->getOrderProducts($order_info['order_id']); // Products $data['products'] = array(); foreach ($order_products as $order_product) { ... } Создаём копию catalog/view/theme/<MYTHEME>/template/mail/order_add.twig с новым названием, например catalog/view/theme/<MYTHEME>/template/mail/order_status_change.twig И меняем в новой функции edit строку $mail->setText($this->load->view('mail/order_edit', $data)); на $mail->setHtml($this->load->view('mail/order_status_change', $data)); Это надо, чтобы письмо было не plain text, а красивенький-гламурненький HTML. Смотрим переменные в /catalog/view/theme/myshop/template/mail/order_edit.twig или в функции edit переменной $data и правим новый шаблон order_status_change. Мне надо было только таблицу с товарами, так что я копировал только про товары. Если надо ещё что-то, то в шаблон надо передать данные.
  2. Нашёл. Контроллер который за это отвечает catalog/controller/mail/order.php функция edit. Соответственно, шаблон живёт в catalog/view/theme/<THEMENAME>/template/mail/order_edit.twig.
  3. Колоночка справа с версиями опенкарта говорит, что сие для второй версии, не для третьей. Или оно работает, но все это скрывают?
  4. Приветствую! Не подскажите, есть ли какие-то готовые решения для изменения шаблона письма об изменении статуса. Или подскажите, где эти письма формируются в коде. Хочу добавить таблицу с заказом в письмо при смене статуса. Гуглятся хелпы (и модули) для второй версии, но в трёшке, видно, что-то поменялось и не очень понятно как оно работает.
  5. Нашёл сам. В /catalog/controller/checkout/confirm.php в цикле foreach ($product['option'] as $option) { if ($option['name'] == $delivery_field){ $delivery_charge = round($option['price']); $option['value'] = round($option['price']).' EURO'; } if ($option['name'] == $service_field){ $service_charge = round($option['price']); $option['value'] = round($option['price']).'%'; } if ($option['name'] == $price_field){ $euro_price = $option['value']; } $option_data[] = array( 'product_option_id' => $option['product_option_id'], 'product_option_value_id' => $option['product_option_value_id'], 'option_id' => $option['option_id'], 'option_value_id' => $option['option_value_id'], 'name' => $option['name'], 'value' => $option['value'], 'type' => $option['type'], ); }
  6. Здравствуйте! Подскажите, пожалуйста, где происходит сохранение заказа. Я хочу вывести $option['price'] в письме из магазина, но до туда (/catalog/controller/mail/order.php) уже не доходит цена. Если я при сохранении сделаю, $option['price'] = $option['value'], то данные будут доступны.
  7. Возможно, будет кому интересно. /system/library/cart/cart.php содержит класс корзины. Там, в том числе, обрабатываются опции if ($option_query->row['type'] == 'select' || $option_query->row['type'] == 'radio') { ... } elseif ($option_query->row['type'] == 'checkbox' && is_array($value)) { ... } elseif ($option_query->row['type'] == 'text' || $option_query->row['type'] == 'textarea' || $option_query->row['type'] == 'file' || $option_query->row['type'] == 'date' || $option_query->row['type'] == 'datetime' || $option_query->row['type'] == 'time') { ... } Для задания цены вручную можно задать опцию Цена с типом текст и засунуть обработчик в последнюю секцию примерно так: if ($option_query->row['name'] == 'Цена'){ if (intval($value) > 1){ $option_price = intval($value); } else { $option_price = 0; } } PS: Вопрос к знатокам. Есть ли где описания внутренних переменных и обработчиков?
  8. Опции пока работают хорошо. Если в card.php добавить проверку на text поле, то можно получить хороший результат. $option_price = $value;
  9. Комментарий к заказу топорно и хочется, чтобы часть цифирок красиво считалась на фронтенде. Про опции - это интересно. Можно сделать "универсальный товар" с возможностью вводить данные вручную. Не очень понятно с ценой. Можно ли её сделать редактируемой. Спасибо за ответы. Пойду пробовать опции.
  10. Приветствую! Есть ли возможность расширить функционал корзины таблицей куда пользователь сможет вводить товары "вручную"? Есть сайт, который что-то продаёт, но хочет ещё осуществлять доставку с других магазинов. Тогда пользователь вводит название магазина, название товара и отправляет свой заказ через общую форму. Может быть есть готовые решения?
×

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

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