Kredov long

Вывод цен опций в письме подтверждения заказа

Тема в разделе "OpenCart", создана пользователем I.V.A.N, 10 авг 2013.

  1. I.V.A.N

    I.V.A.N

    Регистрация:
    2 апр 2013
    Сообщения:
    15
    Симпатии:
    1
    Здравствуйте!:smile:
    Третий день парюсь с проблемой вывода цены опции товара в письме подтверждения заказа...
    Вот решил написать на форум..
    Версия Opencart 1.5.1.3
    Сначала была идея в catalog/model/checkout/order.php там где формируется масив с данными об опциях
    просто дописать
    Код:
    'price'  => (float)$option['price'] ? $this->currency->format($this->tax->calculate($option['price'], 0, $this->config->get('config_tax'))) : false,
    что то типа токого...
    но не тут то было:frown: в таблице order_option как оказалось такого столбца вовсе нет...
    после долго и упорно пытался составить SQL запрос к таблице
    [​IMG]product_option_value
    но безуспешно... не удаётся выбрать из неё 1 строку..
    Подскажите как реализовать, пожалуйста..
    Буду благодарен за помощь..
     
  2. kur1977

    kur1977

    Регистрация:
    11 фев 2013
    Сообщения:
    123
    Симпатии:
    59
    замени там рядом
    PHP:
    $order_option_query $this->db->query("SELECT * FROM " DB_PREFIX "order_option WHERE order_id = '" . (int)$order_id "' AND order_product_id = '" . (int)$product['order_product_id'] . "'");
    на
    PHP:
    $order_option_query $this->db->query("SELECT po.*, pov.price FROM " DB_PREFIX "order_option po LEFT JOIN " DB_PREFIX "product_option_value pov ON (po.product_option_value_id = pov.product_option_value_id) WHERE po.order_id = '" . (int)$order_id "' AND po.order_product_id = '" . (int)$product['order_product_id'] . "'");
    Это давт тебе в выборке недостающее поле price
     
    I.V.A.N нравится это.
  3. I.V.A.N

    I.V.A.N

    Регистрация:
    2 апр 2013
    Сообщения:
    15
    Симпатии:
    1
    Спасибо ! Заработало! Буду пытаться разобраться что здесь написано:smile:

    А как сделать что бы админу в уведомление о заказе приходило точно такое же письмо, как покупателю?
     
  4. kur1977

    kur1977

    Регистрация:
    11 фев 2013
    Сообщения:
    123
    Симпатии:
    59
    catalog\model\checkout\order.php

    После
    PHP:
    if ($this->config->get('config_alert_mail')) {
    вставь
    PHP:
    $mail->setTo($this->config->get('config_email'));
    $mail->send();
    /* Раскомментировать, если нужно слать копию письма, отправленного покупателю, на дополнительные адреса, указанные в админке.
    $emails = explode(',', $this->config->get('config_alert_emails'));
     
    foreach ($emails as $email) {
    if ($email && preg_match('/^[^\@]+@.*\.[a-z]{2,6}$/i', $email)) {
    $mail->setTo($email);
    $mail->send();
    }
    }
    */
    После этого на мыло админа будет приходить обычное письмо плюс копия письма, отправленного покупателю.
     
    I.V.A.N нравится это.
  5. I.V.A.N

    I.V.A.N

    Регистрация:
    2 апр 2013
    Сообщения:
    15
    Симпатии:
    1
    Круто! Спасибо!
    Ещё такой вопрос... Можно ли сделать что бы цена 1 опции составляла 8% от общей стоимости заказа, но была не ниже 1200 руб..?