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

Статус
В этой теме нельзя размещать новые ответы.

PAM3EC

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

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

Как так сделать, что бы письмо "Счет на оплату" отправлялось админу, а заказчику только "Номер заказа..." ?
 
По идее это стоит по умолчанию.
А раньше отправлялось как надо?
Попробуйте переустановить.
 
Заказчику на e-mail приходят 2 письма:
"Счет на оплату"
"Номер заказа..."

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

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

Так как Webasyst относительно новый движок магазина, то такое никто не делал.
Теоретически нужно поискать в коде движка функцию кторая отвечает за отправку емейла как пользователю так и администратору. Там есть переменная php для амина и для ппользователя. Вот нужно просто подменить их на ту комбенацыю котораю мы хотим увидить впри получении письма на мейл (поменять местами и тд.).
Емли ето былоб в SS Прем, то подсказал где именно, а так не юзаю асист, детально на примере не могу сказать што к чему.
 
Так как Webasyst относительно новый движок магазина, то такое никто не делал.
Теоретически нужно поискать в коде движка функцию кторая отвечает за отправку емейла как пользователю так и администратору. Там есть переменная php для амина и для ппользователя. Вот нужно просто подменить их на ту комбенацыю котораю мы хотим увидить впри получении письма на мейл (поменять местами и тд.).
Емли ето былоб в SS Прем, то подсказал где именно, а так не юзаю асист, детально на примере не могу сказать што к чему.
Ну скажи тогда плиз как для SS. Как файлы называются, в которых капать надо... А я по аналогии в Webasyst попробую сделать...
 
Ну скажи тогда плиз как для SS. Как файлы называются, в которых капать надо... А я по аналогии в Webasyst попробую сделать...

Играл с етим давно, потому все не припомню, да и толком у меня не было желания што то сделать, так бороздил просторами кода шопа)))

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

И админу фактически аналогично:
PHP:
function _sendOrderNotifycationToAdmin
В твоей ситуаци нужно провести аналогию и разницу етих функций - и изменить местами так как тибе нужно.
+ ето все нужно знайти и делать на веб асисте потому как асист и шоп скрипт премиум разные движки.
Думаю хоть чем то прояснил тибе путь к реализации.
 
Спасибо ;)
Нашёл в Webasyst order_functions.php
лежит по адресу:
Код:
published\SC\html\scripts\core_functions
Буду теперь копать...
Как раберусь, отпишусь :)
 
Чёто ничё у меня не получилось...:)

Вот для юзера:
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"])>0 && 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"]				= filesize( DIR_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( $email, translate('ordr_id')." ".$order['orderID_view'], $html, true);
}

Вот для админа:
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_mail( CONF_ORDERS_EMAIL, translate('ordr_id')." ".$order['orderID_view'],$html, true);

}

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

Вложения

  • order_functions.zip
    6,4 KB · Просмотры: 3
Нашёл в файле published\SC\html\scripts\modules\payment\invoice_jur.php код отвечающий за отправку юзеру.

PHP:
//отправить счет покупателю
ss_mail($order["customer_email"], "Счет на оплату", $invoice, 2);

как вместо customer_email туда вписать определённый email ?
 
Нашёл в файле published\SC\html\scripts\modules\payment\invoice_jur.php код отвечающий за отправку юзеру.

PHP:
//отправить счет покупателю
ss_mail($order["customer_email"], "Счет на оплату", $invoice, 2);

как вместо customer_email туда вписать определённый email ?

Можно вписать переменную пхп которая отвечает за админ емейл, тока нужно в коде посмотреть, а кода у меня нет.
И можно так вписать:
PHP:
//отправить счет покупателю 
ss_mail(здесь_емейл, "Счет на оплату", $invoice, 2);
или может еще нужно вписать так :
PHP:
//отправить счет покупателю 
ss_mail(здесь_емейл., "Счет на оплату", $invoice, 2);
В конце точка
 
Выдаёт ошибку в первом и втором случае... :(
Код:
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 KB · Просмотры: 4
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху