Вход • Регистрация

добавление параметров в отправку администратору при заказе

  • 01 декабря 2015 г.
  • Приветствую, хочу добавить что бы при заказе товара в корзине, на эмеил администратора рядом с каждым товаром добавился пункт "Штрихкод". у меня у каждого товара есть доп характеристика - Штрихкод. производиться синхронизация программы с сайтом и все штрих коды выгружаются напрямую туда.

    Я нашёл в cart.action.php

    Код
    //send mail admin
    $subject = str_replace(array('%title', '%url', '%id', '%message'),
    array(TITLE, BASE_URL, $order_id, strip_tags($this->message_admin_param)),
    $this->diafan->configmodules('subject_admin', 'shop')
    );

    $message = str_replace(
    array('%title',
    '%url',
    '%id',
    '%message',
    '%order',
    '%payment',
    '%fio'
    ),
    array(
    TITLE,
    BASE_URL,
    $order_id,
    $this->message_admin_param,
    $cart,
    $payment_name,
    $user_fio
    ),
    $this->diafan->configmodules('message_admin', 'shop'));

    send_mail(
    $this->diafan->configmodules("emailconfadmin", 'shop') ? $this->diafan->configmodules("email_admin", 'shop') : EMAIL_CONFIG,
    $subject,
    $message,
    $this->diafan->configmodules("emailconf", 'shop') ? $this->diafan->configmodules("email", 'shop') : ''
    );

    if(in_array("subscribtion", $this->diafan->installed_modules))
    {
    if(! empty($user_phone))
    {
    $phone = preg_replace('/[^0-9]+/', '', $user_phone);
    if(! DB::query_result("SELECT id FROM {subscribtion_phones} WHERE phone='%s' AND trash='0'", $user_phone))
    {
    DB::query("INSERT INTO {subscribtion_phones} (phone, name, created, act) VALUES ('%s', '%h', %d, '1')", $user_phone, $user_fio, time());
    }
    }
    }



    но как сюда добавить одно поле из доп характеристики, я не разобрался - так как я даже не смог понять механизм привязки доп характеристики к товару, помогите доработать данный механизм.
    • 01 декабря 2015 г.
    • там $order_id есть, по-моему из таблицы заказов можно узнать id товаров и потом дальше доп характеристики к этому товару
      • 01 декабря 2015 г.
      • можете поточнее описать механизм получения одной доп характеристики
  • 02 декабря 2015 г.
  • Надо сперва сделать, чтоб параметры попали в cart.view.table.php

    идем в cart.model.php

    там вставляем после вот этого:

    Код
    foreach ($array as $param => $c)
    {
    $query = array();
    $params = unserialize($param);


    вот это:

    Код


    /*----------------------------------------Вывод характеристик------------------------------------*/

    $parcart = (DB::query("SELECT a.[value], a.param_id, a.element_id, pr.[name], pr.id, pr.type FROM {shop_param_element} AS a LEFT JOIN {shop_param} AS pr ON a.param_id=pr.id WHERE a.element_id=%d", $row["id"]));
    $pari = 0;
    while ($rowparcart = DB::fetch_array($parcart)){
    if($rowparcart["type"] != "multiple" && $rowparcart["type"] != "select"){
    $this->result["rows"][$k]["parcart"][$pari] = array(
    "name" => $this->result["rows"][$k]["parcart"][$pari]['name'] = $rowparcart['name'],
    "value" => $this->result["rows"][$k]["parcart"][$pari]['value'] = $rowparcart['value']
    );
    }
    else{
    $vals = DB::query("SELECT [name] FROM {shop_param_select} WHERE id=%s", $rowparcart['value']);
    $valsar = DB::fetch_array($vals);
    $this->result["rows"][$k]["parcart"][$pari] = array(
    "name" => $this->result["rows"][$k]["parcart"][$pari]['name'] = $rowparcart['name'],
    "value" => $this->result["rows"][$k]["parcart"][$pari]['value'] = $valsar['name']
    );
    }
    $pari++;
    }

    /*----------------------------------------Вывод характеристик------------------------------------*/


    и в cart.view.table.php вставляем

    Код
    echo $row["parcart"][3]["name"].' - '.$row["parcart"][3]["value"];
    • 02 декабря 2015 г.
    • Спасибо, ваш способ вывел то что нужно в таблицу товара, как теперь сделать что бы он отправился в email сообщение?
  • 02 декабря 2015 г.
  • вот что разрабы пишут:

    Код
    Для письма таблица товаров формируется функцией form_table() в файле modules/cart/cart.action.php. В ней и нужно добавлять запрос штрихода из таблицы {shop_param_element} для каждого товара. Шаблон таблицы modules/cart/view/cart.view.table_mail.php. Возможно, также cart.view.table.php (для необновленных версий). Если Вам нужно, чтобы штрихкод попадал только в письмо администратору, но не в письмо пользователю, то добавить нужно отдельный шаблон и указать его в функции send_mails (cart.actions.php):


    $res = $this->diafan->_shop->order_get($order_id);

    // таблица заказа для пользователя
    $cart = $this->diafan->_tpl->get('table_mail', 'cart', $res);

    // таблица заказа для администратора
    $cart_admin = $this->diafan->_tpl->get('table_mail_admin', 'cart', $res);
    ...
    //send mail admin
    $subject = str_replace(array('%title', '%url', '%id', '%message'),
    array(TITLE, BASE_URL, $order_id, strip_tags($this->message_admin_param)),
    $this->diafan->configmodules('subject_admin', 'shop')
    );

    $message = str_replace(
    array('%title',
    '%url',
    '%id',
    '%message',
    '%order',
    '%payment',
    '%fio'
    ),
    array(
    TITLE,
    BASE_URL,
    $order_id,
    $this->message_admin_param,
    $cart_admin,
    $payment_name,
    $user_fio
    ),


    поможете понять о чем они доносили?)
  • 04 декабря 2015 г. , редакция: 04 декабря 2015 г.
  • Люди, так и не смог разобраться до конца, помогите, прошу

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум