Отправка письма "Счет на оплату" администратору, а не заказчику? Webasyst

Тема в разделе "Shop-script", создана пользователем PAM3EC, 27 фев 2009.

Статус темы:
Закрыта.
  1. PAM3EC

    PAM3EC Создатель

    Регистр.:
    25 ноя 2008
    Сообщения:
    25
    Симпатии:
    1
    Заказчику на e-mail приходят 2 письма:
    "Счет на оплату"
    "Номер заказа..."

    А администратору только "Номер заказа..."

    Как так сделать, что бы письмо "Счет на оплату" отправлялось админу, а заказчику только "Номер заказа..." ?
     
  2. shkiper

    shkiper

    Регистр.:
    16 ноя 2008
    Сообщения:
    302
    Симпатии:
    17
    По идее это стоит по умолчанию.
    А раньше отправлялось как надо?
    Попробуйте переустановить.
     
  3. biznesoft

    biznesoft

    Регистр.:
    11 фев 2008
    Сообщения:
    510
    Симпатии:
    128
    Так как Webasyst относительно новый движок магазина, то такое никто не делал.
    Теоретически нужно поискать в коде движка функцию кторая отвечает за отправку емейла как пользователю так и администратору. Там есть переменная php для амина и для ппользователя. Вот нужно просто подменить их на ту комбенацыю котораю мы хотим увидить впри получении письма на мейл (поменять местами и тд.).
    Емли ето былоб в SS Прем, то подсказал где именно, а так не юзаю асист, детально на примере не могу сказать што к чему.
     
  4. PAM3EC

    PAM3EC Создатель

    Регистр.:
    25 ноя 2008
    Сообщения:
    25
    Симпатии:
    1
    Ну скажи тогда плиз как для SS. Как файлы называются, в которых капать надо... А я по аналогии в Webasyst попробую сделать...
     
  5. biznesoft

    biznesoft

    Регистр.:
    11 фев 2008
    Сообщения:
    510
    Симпатии:
    128
    Играл с етим давно, потому все не припомню, да и толком у меня не было желания што то сделать, так бороздил просторами кода шопа)))

    Пот в Shop-script Премиум есть \core_functions\order_functions.php - отвечает за формирования заказа и отправку на мейл.
    Там есть сами стори што отвечают за отправку на мейл, и перименная php как для админа так и для пользователя:
    есть функция отправки пользователю на мейл письма
    PHP:
    function _sendOrderNotifycationToCustomer
    сама перименная @ почт. ящика пользователя $email

    И админу фактически аналогично:
    PHP:
    function _sendOrderNotifycationToAdmin
    В твоей ситуаци нужно провести аналогию и разницу етих функций - и изменить местами так как тибе нужно.
    + ето все нужно знайти и делать на веб асисте потому как асист и шоп скрипт премиум разные движки.
    Думаю хоть чем то прояснил тибе путь к реализации.
     
    PAM3EC нравится это.
  6. PAM3EC

    PAM3EC Создатель

    Регистр.:
    25 ноя 2008
    Сообщения:
    25
    Симпатии:
    1
    Спасибо ;)
    Нашёл в Webasyst order_functions.php
    лежит по адресу:
    Код:
    published\SC\html\scripts\core_functions
    Буду теперь копать...
    Как раберусь, отпишусь :)
     
  7. PAM3EC

    PAM3EC Создатель

    Регистр.:
    25 ноя 2008
    Сообщения:
    25
    Симпатии:
    1
    Чёто ничё у меня не получилось...:)

    Вот для юзера:
    PHP:
    function _sendOrderNotifycationToCustomer$orderID, &$smarty_mail$email$login,
                     
    $payment_email_comments_text$shipping_email_comments_text$tax )
    {
        
    $order _getOrderById$orderID );
        
    $smarty_mail->assign('order_status_url',str_replace('{URL}',CONF_FULL_SHOP_URL.'index.php?ukey=order_status&orderID='.$orderID.'&code='.base64_encode($order['customer_email']),translate('lbl_order_status_history_url')));
        
    $smarty_mail->assign"customer_firstname"$order["customer_firstname"] );
        
    $smarty_mail->assign"order"$order );
        
    $smarty_mail->assign"discount"$order["order_discount"]>0?
                    (
    $order["currency_code"]." ".
                    
    RoundFloatValueStr($order["currency_value"]*$order["order_discount"])):'' );
        
    $shippinginfo $order["shipping_type"];
        if (
    strlen($order["shippingServiceInfo"])>0$shippinginfo .= " (".$order["shippingServiceInfo"].")";
        
    $smarty_mail->assign"shipping_type"$shippinginfo );
        
    $smarty_mail->assign"shipping_type"$order["shipping_type"] );
        
    $smarty_mail->assign"shipping_firstname"$order["shipping_firstname"] );
        
    $smarty_mail->assign"shipping_lastname"$order["shipping_lastname"] );
        
    $smarty_mail->assign"shipping_country"$order["shipping_country"] );
        
    $smarty_mail->assign"shipping_state"$order["shipping_state"] );
        
    $smarty_mail->assign"shipping_zip"$order["shipping_zip"] );
        
    $smarty_mail->assign"shipping_city"$order["shipping_city"] );
        
    $smarty_mail->assign"shipping_address"$order["shipping_address"] );
        
    $smarty_mail->assign"shipping_cost",
                
    $order["currency_code"]." ".
                    
    RoundFloatValueStr($order["currency_value"]*$order["shipping_cost"]) );

        
    $smarty_mail->assign"payment_type"$order["payment_type"] );
        
    $smarty_mail->assign"billing_firstname"$order["billing_firstname"] );
        
    $smarty_mail->assign"billing_lastname"$order["billing_lastname"] );
        
    $smarty_mail->assign"billing_country"$order["billing_country"] );
        
    $smarty_mail->assign"billing_state"$order["billing_state"] );
        
    $smarty_mail->assign"billing_zip"$order["billing_zip"] );
        
    $smarty_mail->assign"billing_city"$order["billing_city"] );
        
    $smarty_mail->assign"billing_address"$order["billing_address"] );
        
    $smarty_mail->assign"order_amount",
            
    $order["currency_code"]." ".
                
    RoundFloatValueStr($order["currency_value"]*$order["order_amount"]) );

        
    $smarty_mail->assign"payment_comments"$payment_email_comments_text );
        
    $smarty_mail->assign"shipping_comments"$shipping_email_comments_text );
        
    $smarty_mail->assign"order_total_tax"$order["currency_code"]." ".
                                    
    RoundFloatValueStr($order["currency_value"]*$tax) );

        
    //additional reg fields
        
    $addregfields GetRegFieldsValuesByOrderID$orderID );
        
    $smarty_mail->assign("customer_add_fields"$addregfields);

        
    $content ordGetOrderContent$orderID );
        for( 
    $i=0$i<count($content); $i++ )
        {
            
    $productID GetProductIdByItemId$content[$i]["itemID"] );
            if ( 
    $productID == null || trim($productID) == "" )
                continue;

            
    $sql "SELECT ".LanguagesManager::sql_prepareField('name')." AS name, product_code";
            
    $sql .= ", eproduct_filename, eproduct_available_days, eproduct_download_times";
            
    $sql .= " FROM ?#PRODUCTS_TABLE WHERE productID=?";
            
    $product db_phquery_fetch(DBRFETCH_ASSOC$sql$productID);
            
    $content[$i]["product_code"] = $product["product_code"];

            
    $variants    GetConfigurationByItemId$content[$i]["itemID"] );
            
    $options    GetStrOptions$variants );
            if ( 
    $options != "" ){
                
    $content[$i]["name"] = $product["name"]."(".$options.")";
            }else
            {
                
    $content[$i]["name"] = $product["name"];
            }
            
    $content[$i]["Price"] = $order["currency_code"]." ".(
            
    RoundFloatValueStr($order["currency_value"]*$content[$i]["Price"]) );

            if ( 
    strlen($product["eproduct_filename"])>&& file_exists("product_files/".$product["eproduct_filename"]) )
            {
                if (
    $login != null)
                    
    $customerID regGetIdByLogin$login );
                else
                    
    $customerID = -1;
                
    $content[$i]["eproduct_filename"]        = $product["eproduct_filename"];
                
    $content[$i]["eproduct_available_days"] = $product["eproduct_available_days"];
                
    $content[$i]["eproduct_download_times"] = $product["eproduct_download_times"];
                
    $content[$i]["file_size"]                = filesizeDIR_PRODUCTS_FILES."/".$product["eproduct_filename"] );
                
    $content[$i]["file_size_str"]            = getDisplayFileSize($content[$i]["file_size"], 'B');
                
    $content[$i]["getFileParam"]            =
                                            
    "orderID=".$order["orderID"]."&".
                                            
    "productID=".$productID."&".
                                            
    "customerID=".$customerID;
                
    //additional security for non authorized customers
                
    if ($customerID == -1)
                {
                    
    $content[$i]["getFileParam"] .= "&order_time=".base64_encode($order["order_time"]);
                }

                
    $content[$i]["getFileParam"] =
                    
    cryptFileParamCrypt$content[$i]["getFileParam"], null );
            }
        }
        
    /*@var $smarty_mail View */

        
    $smarty_mail->assign"content"$content );
        
    $html $smarty_mail->fetch"order_notification.txt" );
        
    $res ss_mail$emailtranslate('ordr_id')." ".$order['orderID_view'], $htmltrue);
    }
    Вот для админа:
    PHP:
    function _sendOrderNotifycationToAdmin$orderID, &$smarty_mail$tax )
    {
        
    $order _getOrderById$orderID );

        
    $smarty_mail->assign('order'$order);
        
    $smarty_mail->assign"customer_firstname"$order["customer_firstname"] );
        
    $smarty_mail->assign"customer_lastname"$order["customer_lastname"] );
        
    $smarty_mail->assign"customer_email"$order["customer_email"] );
        
    $smarty_mail->assign"customer_ip"$order["customer_ip"] );
        
    $smarty_mail->assign"order_time"format_datetime($order["order_time"]) );
        
    $smarty_mail->assign"customer_comments"$order["customers_comment"] );
        
    $smarty_mail->assign"discount"$order["currency_code"]." ".
                    
    RoundFloatValueStr($order["currency_value"]*$order["order_discount"]) );

        
    $shippinginfo $order["shipping_type"];
        if (
    strlen($order["shippingServiceInfo"])>0$shippinginfo .= " (".$order["shippingServiceInfo"].")";
        
    $smarty_mail->assign"shipping_type"$shippinginfo );

        
    $smarty_mail->assign"shipping_cost",
                
    $order["currency_code"]." ".
                    
    RoundFloatValueStr($order["currency_value"]*$order["shipping_cost"]) );
        
    $smarty_mail->assign"payment_type"$order["payment_type"] );

        
    $smarty_mail->assign"shipping_firstname"$order["shipping_firstname"] );
        
    $smarty_mail->assign"shipping_lastname"$order["shipping_lastname"] );
        
    $smarty_mail->assign"shipping_country"$order["shipping_country"] );
        
    $smarty_mail->assign"shipping_state"$order["shipping_state"] );
        
    $smarty_mail->assign"shipping_zip"$order["shipping_zip"] );
        
    $smarty_mail->assign"shipping_city"$order["shipping_city"] );
        
    $smarty_mail->assign"shipping_address"$order["shipping_address"] );

        
    $smarty_mail->assign"billing_firstname"$order["billing_firstname"] );
        
    $smarty_mail->assign"billing_lastname"$order["billing_lastname"] );
        
    $smarty_mail->assign"billing_country"$order["billing_country"] );
        
    $smarty_mail->assign"billing_state"$order["billing_state"] );
        
    $smarty_mail->assign"billing_zip"$order["billing_zip"] );
        
    $smarty_mail->assign"billing_city"$order["billing_city"] );
        
    $smarty_mail->assign"billing_address"$order["billing_address"] );

        
    $smarty_mail->assign"billing_address"$order["billing_address"] );
        
    $smarty_mail->assign"order_amount",
            
    $order["currency_code"]." ".
                
    RoundFloatValueStr($order["currency_value"]*$order["order_amount"]) );

        
    $smarty_mail->assign"total_tax"$order["currency_code"]." ".
                                    
    RoundFloatValueStr($order["currency_value"]*$tax) );

        
    //additional reg fields
        
    $addregfields GetRegFieldsValuesByOrderID$orderID );
        
    $smarty_mail->assign("customer_add_fields"$addregfields);

        
    //fetch order content from the database
        
    $content ordGetOrderContent$orderID );
        for( 
    $i=0$i<count($content); $i++ )
        {
            
    $productID GetProductIdByItemId$content[$i]["itemID"] );
            if ( 
    $productID == null || trim($productID) == "" )
                continue;
            
    $q db_query"select ".LanguagesManager::sql_prepareField('name')." AS name, product_code from ".PRODUCTS_TABLE." where productID=".$productID );
            
    $product db_fetch_row($q);
            
    $content[$i]["product_code"] = $product["product_code"];

            
    $variants    GetConfigurationByItemId$content[$i]["itemID"] );
            
    $options    GetStrOptions$variants );
            if ( 
    $options != "" )
                
    $content[$i]["name"] = $product["name"]."(".$options.")";
            else
                
    $content[$i]["name"] = $product["name"];
            
    $content[$i]["Price"] = $order["currency_code"]." ".(
                
    RoundFloatValueStr($order["currency_value"]*$content[$i]["Price"])  );
        }

        
    $smarty_mail->assign"content"$content );
        
    //check account settings
        
    if(sc_onWebasystServer()){    
            
    $session_id session_id();
            
    session_write_close();
        
            
    $messageClient = new WbsHttpMessageClient($db_key'wbs_msgserver.php');
            
    $messageClient->putData('action''ALLOW_VIEW_ORDER_DETAILS');
            
    //$messageClient->putData('language',(LanguagesManager::getCurrentLanguage()->iso2));
            
    $res=$messageClient->send();
            
    session_id($session_id);
            
    session_start();
        }else{
            
    $res false;
        }

        
    $mailTemplate='admin_order_notification.txt';
        if(
    $res&&$messageClient->getResult('success')!==true){
            
    $mailTemplate='admin_order_notification_blocked.txt';
            
    $max=$messageClient->getResult('max');
            
    $smarty_mail->assign('max_orders_per_month',$messageClient->getResult('max'));
        }
        

        
    $html $smarty_mail->fetch$mailTemplate);

        
    $res ss_mailCONF_ORDERS_EMAILtranslate('ordr_id')." ".$order['orderID_view'],$htmltrue);

    }
    Памагите плиз :ah:
     

    Вложения:

  8. PAM3EC

    PAM3EC Создатель

    Регистр.:
    25 ноя 2008
    Сообщения:
    25
    Симпатии:
    1
    Нашёл в файле published\SC\html\scripts\modules\payment\invoice_jur.php код отвечающий за отправку юзеру.

    PHP:
    //отправить счет покупателю
    ss_mail($order["customer_email"], "Счет на оплату"$invoice2);
    как вместо customer_email туда вписать определённый email ?
     
  9. biznesoft

    biznesoft

    Регистр.:
    11 фев 2008
    Сообщения:
    510
    Симпатии:
    128
    Можно вписать переменную пхп которая отвечает за админ емейл, тока нужно в коде посмотреть, а кода у меня нет.
    И можно так вписать:
    PHP:
    //отправить счет покупателю 
    ss_mail(здесь_емейл"Счет на оплату"$invoice2); 
    или может еще нужно вписать так :
    PHP:
    //отправить счет покупателю 
    ss_mail(здесь_емейл., "Счет на оплату"$invoice2); 
    В конце точка
     
    PAM3EC нравится это.
  10. PAM3EC

    PAM3EC Создатель

    Регистр.:
    25 ноя 2008
    Сообщения:
    25
    Симпатии:
    1
    Выдаёт ошибку в первом и втором случае... :(
    Код:
    Parse error: syntax error, unexpected '@' in /home/svo-mebel/svo-mebel.com/docs/shop/published/SC/html/scripts/modules/payment/invoice_jur.php on line 342
    Прикрепил сам файл...
     

    Вложения:

    • invoice_jur.rar
      Размер файла:
      5,9 КБ
      Просмотров:
      4
Статус темы:
Закрыта.