Esempio n. 1
0
 /**
  * @override
  * @throws Exception
  */
 protected function prepareData()
 {
     $saleDiscountId = null;
     $wasAdded = false;
     $xmlId = $this->arParams['DISCOUNT_XML_ID'];
     $saleDiscountValue = (double) $this->arParams['DISCOUNT_VALUE'];
     $saleDiscountUnit = (string) $this->arParams['DISCOUNT_UNIT'];
     $fieldsAdd = array('LID' => $this->getSiteId(), 'NAME' => Loc::getMessage("CVP_DISCOUNT_NAME"), 'ACTIVE' => 'Y', 'ACTIVE_FROM' => '', 'ACTIVE_TO' => '', 'PRIORITY' => 1, 'SORT' => 100, 'LAST_DISCOUNT' => 'Y', 'XML_ID' => $xmlId, 'USER_GROUPS' => array(2), 'ACTIONS' => serialize(array('CLASS_ID' => 'CondGroup', 'DATA' => array('All' => 'AND'), 'CHILDREN' => array(array('CLASS_ID' => 'ActSaleBsktGrp', 'DATA' => array('Type' => 'Discount', 'Value' => $saleDiscountValue, 'Unit' => $saleDiscountUnit, 'All' => 'AND'), 'CHILDREN' => array())))), 'CONDITIONS' => serialize(array('CLASS_ID' => 'CondGroup', 'DATA' => array('All' => 'AND', 'True' => 'True'), 'CHILDREN' => array())));
     if (strlen($xmlId) <= 0) {
         return;
     }
     $fields = array('XML_ID' => $xmlId, 'ACTIVE' => 'Y');
     $saleDiscountDb = CSaleDiscount::GetList(array('DATE_CREATE' => 'DESC'), $fields, false, false, array('ID', 'ACTIONS', 'CONDITIONS'));
     if ($saleDiscount = $saleDiscountDb->Fetch()) {
         if ($saleDiscount['ACTIONS'] == $fieldsAdd['ACTIONS'] && $saleDiscount['CONDITIONS'] == $fieldsAdd['CONDITIONS']) {
             $saleDiscountId = $saleDiscount['ID'];
         }
     }
     if (!$saleDiscountId) {
         $fieldsAdd['ACTIVE'] = 'N';
         $saleDiscountId = CSaleDiscount::Add($fieldsAdd);
         $wasAdded = true;
     }
     $this->arResult['COUPON'] = '';
     if ($saleDiscountId) {
         $coupon = \Bitrix\Sale\Internals\DiscountCouponTable::generateCoupon(true);
         //$activeFrom = new \Bitrix\Main\Type\DateTime;
         //$activeTo = clone $activeFrom;
         $addDb = \Bitrix\Sale\Internals\DiscountCouponTable::add(array('DISCOUNT_ID' => $saleDiscountId, 'COUPON' => $coupon, 'TYPE' => \Bitrix\Sale\Internals\DiscountCouponTable::TYPE_ONE_ORDER, 'MAX_USE' => 1, 'USER_ID' => 0, 'DESCRIPTION' => $this->arParams['COUPON_DESCRIPTION']));
         if ($addDb->isSuccess()) {
             $this->arResult['COUPON'] = $coupon;
             if ($wasAdded) {
                 CSaleDiscount::Update($saleDiscountId, array('ACTIVE' => 'Y'));
             }
         }
     }
 }
 if (isset($USER_GROUPS)) {
     $arFields["USER_GROUPS"] = $USER_GROUPS;
 } else {
     $arFields["USER_GROUPS"] = array();
 }
 if (empty($arErrorMess)) {
     if ($ID > 0) {
         if (!CSaleDiscount::Update($ID, $arFields)) {
             if ($ex = $APPLICATION->GetException()) {
                 $arErrorMess[] = $ex->GetString();
             } else {
                 $arErrorMess[] = str_replace('#ID#', $ID, GetMessage('BT_SALE_DISCOUNT_EDIT_ERR_UPDATE'));
             }
         }
     } else {
         $ID = CSaleDiscount::Add($arFields);
         $ID = intval($ID);
         if ($ID <= 0) {
             if ($ex = $APPLICATION->GetException()) {
                 $arErrorMess[] = $ex->GetString();
             } else {
                 $arErrorMess[] = GetMessage('BT_SALE_DISCOUNT_EDIT_ERR_ADD');
             }
         }
     }
 }
 if (empty($arErrorMess)) {
     if (strlen($apply) <= 0) {
         LocalRedirect("/bitrix/admin/sale_discount.php?lang=" . LANGUAGE_ID . GetFilterParams("filter_", false));
     } else {
         LocalRedirect("/bitrix/admin/sale_discount_edit.php?lang=" . LANGUAGE_ID . "&ID=" . $ID . '&' . $tabControl->ActiveTabParam());
Esempio n. 3
0
         unset($couponsResult);
         $additionalFields['COUPON'] = $couponsFields;
         $couponsAdd = true;
     }
 }
 if (empty($errors)) {
     if ($discountID > 0 && !$copy) {
         if (!CSaleDiscount::Update($discountID, $arFields)) {
             if ($ex = $APPLICATION->GetException()) {
                 $errors[] = $ex->GetString();
             } else {
                 $errors[] = str_replace('#ID#', $discountID, GetMessage('BT_SALE_DISCOUNT_EDIT_ERR_UPDATE'));
             }
         }
     } else {
         $discountID = (int) CSaleDiscount::Add($arFields);
         if ($discountID <= 0) {
             if ($ex = $APPLICATION->GetException()) {
                 $errors[] = $ex->GetString();
             } else {
                 $errors[] = GetMessage('BT_SALE_DISCOUNT_EDIT_ERR_ADD');
             }
         } else {
             if ($couponsAdd) {
                 $couponsFields['DISCOUNT_ID'] = $discountID;
                 $couponsResult = Internals\DiscountCouponTable::addPacket($couponsFields, $additionalFields['COUPON_COUNT']);
                 if (!$couponsResult->isSuccess()) {
                     $errors = $couponsResult->getErrorMessages();
                 }
             }
         }
Esempio n. 4
0
function __recalcSaleDiscount($user_id)
{
	if(!$user_id) return;	
	
	CModule::IncludeModule('sale');
	CModule::IncludeModule('highloadblock');
	
	$UserPrc = false;
	
	$hlblock   = Bitrix\Highloadblock\HighloadBlockTable::getList(array('filter'=>array('NAME' => 'UserDiscounts')))->fetch();
	$entity   = Bitrix\Highloadblock\HighloadBlockTable::compileEntity( $hlblock );
	$entity_data_class = $entity->getDataClass();
	$rsData = $entity_data_class::getList(array(
		"select" => array("*"),
		"order" => array("ID" => "ASC"),
		"filter" => array('UF_USER_ID' => $user_id)
	));
	if($arData = $rsData->Fetch())
	{
		$UserPrc = $arData['UF_DISCOUNT'];
	}
	if($UserPrc)
	{
		$bCreated = false;
		
		$dbSaleDiscounts = CSaleDiscount::GetList(
			array(),
			array(
				"ACTIVE" => "Y",
				//"XML_ID" => 'HL_DISCOUNT_'.$UserPrc,
			),
			false,
			false,
			array('ID','NAME',"XML_ID",'CONDITIONS')
		);
		while ($arSaleDiscount = $dbSaleDiscounts->Fetch())
		{
			$issetUsers = array();
			$CONDITIONS = unserialize($arSaleDiscount['CONDITIONS']);			
			foreach($CONDITIONS['CHILDREN'] as $arChildren)
			{
				if($arChildren['CLASS_ID'] == 'CondSaleOrderUserID')
				{
					$issetUsers[$arChildren['DATA']['value']] = $arChildren['DATA']['value'];
				}
			}
			if($arSaleDiscount['XML_ID'] == 'HL_DISCOUNT_'.$UserPrc)
			{
				$bCreated = true;
				if(!in_array($user_id, $issetUsers))
				{
					$CONDITIONS['CHILDREN'][] = Array(
                            'CLASS_ID' => 'CondSaleOrderUserID',
                            'DATA' => Array(
                                    'logic' => 'Equal',
                                    'value' => $user_id
								)
						);
					
					$arDiscountFields = array(
						'NAME' => $arSaleDiscount['NAME'],
						"ACTIVE" => 'Y',
						'CONDITIONS' => $CONDITIONS
					);
					CSaleDiscount::Update($arSaleDiscount['ID'], $arDiscountFields);
				}
			}
			else
			{
				if(in_array($user_id, $issetUsers))
				{
					
					$tmpCond = array();
					foreach($CONDITIONS['CHILDREN'] as $arChildren)
					{
						if(!($arChildren['CLASS_ID'] == 'CondSaleOrderUserID' && $arChildren['DATA']['value'] == $user_id))
						{
							$tmpCond[] = $arChildren;
						}
					}
					if(empty($tmpCond))
					{
						CSaleDiscount::Delete($arSaleDiscount['ID']);
					}
					else
					{
						$CONDITIONS['CHILDREN'] = $tmpCond;
						$arDiscountFields = array(
							'NAME' => $arSaleDiscount['NAME'],
							"ACTIVE" => 'Y',
							'CONDITIONS' => $CONDITIONS
						);
						CSaleDiscount::Update($arSaleDiscount['ID'], $arDiscountFields);
					}
				}
			}
		}
		
		
		if(!$bCreated)
		{
			$arDiscountFields = array(
				"LID" => 's1',
				"NAME" => 'Скидка пользователям - '.$UserPrc.'%',
				"ACTIVE_FROM" => '',
				"ACTIVE_TO" => '',
				"ACTIVE" => 'Y',
				"SORT" => 100,
				"PRIORITY" => 1,
				"LAST_DISCOUNT" => 'Y',
				"XML_ID" => 'HL_DISCOUNT_'.$UserPrc,
				'CONDITIONS' => Array(
			            'CLASS_ID' => 'CondGroup',
			            'DATA' => Array(
			                    'All' => 'OR',
			                    'True' => 'True'
						),
			            'CHILDREN' => Array(
							Array(
	                            'CLASS_ID' => 'CondSaleOrderUserID',
	                            'DATA' => Array(
	                                    'logic' => 'Equal',
	                                    'value' => $user_id
									)
							),
						)
					),
				'ACTIONS' => array(
					'CLASS_ID' => 'CondGroup',
					'DATA' => Array(
	                    'All' => 'AND',
					),
					'CHILDREN' => Array(
						Array(
                            'CLASS_ID' => 'ActSaleBsktGrp',
                            'DATA' => Array(
								'Type' => 'Discount',
								'Value' => $UserPrc,
								'Unit' => 'Perc',
								'All' => 'AND',
							),
							'CHILDREN' => Array()
						),
					)
				),
				'USER_GROUPS' => array(2),
			);			
			$DiscountID = CSaleDiscount::Add($arDiscountFields);
		}
	}
}
Esempio n. 5
0
    if ($bRus) {
        $arPaySystems = array(array("NAME" => GetMessage("SALE_WIZARD_PS_CASH"), "SORT" => 50, "DESCRIPTION" => GetMessage("SALE_WIZARD_PS_CASH_DESCR"), "CODE_TEMP" => "cash", "ACTION" => array(array("PERSON_TYPE_ID" => $arGeneralInfo["personType"]["fiz"], "NAME" => GetMessage("SALE_WIZARD_PS_CASH"), "ACTION_FILE" => "/bitrix/modules/sale/payment/cash", "RESULT_FILE" => "", "NEW_WINDOW" => "N", "PARAMS" => "", "HAVE_PAYMENT" => "Y", "HAVE_ACTION" => "N", "HAVE_RESULT" => "N", "HAVE_PREPAY" => "N", "HAVE_RESULT_RECEIVE" => "N"), array("PERSON_TYPE_ID" => $arGeneralInfo["personType"]["ur"], "NAME" => GetMessage("SALE_WIZARD_PS_CASH"), "ACTION_FILE" => "/bitrix/modules/sale/payment/cash", "RESULT_FILE" => "", "NEW_WINDOW" => "N", "PARAMS" => "", "HAVE_PAYMENT" => "Y", "HAVE_ACTION" => "N", "HAVE_RESULT" => "N", "HAVE_PREPAY" => "N", "HAVE_RESULT_RECEIVE" => "N"))), array("NAME" => GetMessage("SALE_WIZARD_PS_CC"), "SORT" => 60, "DESCRIPTION" => GetMessage("SALE_WIZARD_PS_CC"), "CODE_TEMP" => "card", "ACTION" => array(array("PERSON_TYPE_ID" => $arGeneralInfo["personType"]["fiz"], "NAME" => GetMessage("SALE_WIZARD_PS_CC"), "ACTION_FILE" => "/bitrix/modules/sale/payment/assist", "RESULT_FILE" => "/bitrix/modules/sale/payment/assist_res.php", "NEW_WINDOW" => "N", "PARAMS" => serialize(array("FIRST_NAME" => array("TYPE" => "USER", "VALUE" => "NAME"), "LAST_NAME" => array("TYPE" => "USER", "VALUE" => "LAST_NAME"), "EMAIL" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["EMAIL"]), "ADDRESS" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["ADDRESS"]))), "HAVE_PAYMENT" => "Y", "HAVE_ACTION" => "N", "HAVE_RESULT" => "Y", "HAVE_PREPAY" => "N", "HAVE_RESULT_RECEIVE" => "N"))), array("NAME" => GetMessage("SALE_WIZARD_PS_WM"), "SORT" => 70, "DESCRIPTION" => GetMessage("SALE_WIZARD_PS_WM_DESCR"), "CODE_TEMP" => "webmoney", "ACTION" => array(array("PERSON_TYPE_ID" => $arGeneralInfo["personType"]["fiz"], "NAME" => GetMessage("SALE_WIZARD_PS_WM"), "ACTION_FILE" => "/bitrix/modules/sale/payment/webmoney_web", "RESULT_FILE" => "", "NEW_WINDOW" => "Y", "PARAMS" => "", "HAVE_PAYMENT" => "Y", "HAVE_ACTION" => "N", "HAVE_RESULT" => "Y", "HAVE_PREPAY" => "N", "HAVE_RESULT_RECEIVE" => "N"))), array("NAME" => GetMessage("SALE_WIZARD_PS_PC"), "SORT" => 80, "DESCRIPTION" => "", "CODE_TEMP" => "paycash", "ACTION" => array(array("PERSON_TYPE_ID" => $arGeneralInfo["personType"]["fiz"], "NAME" => GetMessage("SALE_WIZARD_PS_PC"), "ACTION_FILE" => "/bitrix/modules/sale/payment/yandex", "RESULT_FILE" => "/bitrix/modules/sale/payment/assist_res.php", "NEW_WINDOW" => "N", "PARAMS" => serialize(array("ORDER_ID" => array("TYPE" => "ORDER", "VALUE" => "ID"), "USER_ID" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["CONTACT_PERSON"]), "ORDER_DATE" => array("TYPE" => "ORDER", "VALUE" => "DATE_INSERT"), "SHOULD_PAY" => array("TYPE" => "ORDER", "VALUE" => "PRICE"))), "HAVE_PAYMENT" => "Y", "HAVE_ACTION" => "N", "HAVE_RESULT" => "N", "HAVE_PREPAY" => "N", "HAVE_RESULT_RECEIVE" => "Y"))), array("NAME" => GetMessage("SALE_WIZARD_PS_SB"), "SORT" => 90, "DESCRIPTION" => GetMessage("SALE_WIZARD_PS_SB_DESCR"), "CODE_TEMP" => "sberbank", "ACTION" => array(array("PERSON_TYPE_ID" => $arGeneralInfo["personType"]["fiz"], "NAME" => GetMessage("SALE_WIZARD_PS_SB"), "ACTION_FILE" => "/bitrix/modules/sale/payment/sberbank_new", "RESULT_FILE" => "", "NEW_WINDOW" => "Y", "PARAMS" => serialize(array("COMPANY_NAME" => array("TYPE" => "", "VALUE" => GetMessage("SALE_WIZARD_PS_SB_CN")), "INN" => array("TYPE" => "", "VALUE" => GetMessage("SALE_WIZARD_PS_SB_INN")), "KPP" => array("TYPE" => "", "VALUE" => GetMessage("SALE_WIZARD_PS_SB_KPP")), "SETTLEMENT_ACCOUNT" => array("TYPE" => "", "VALUE" => GetMessage("SALE_WIZARD_PS_SB_NC")), "BANK_NAME" => array("TYPE" => "", "VALUE" => GetMessage("SALE_WIZARD_PS_SB_NB")), "BANK_BIC" => array("TYPE" => "", "VALUE" => GetMessage("SALE_WIZARD_PS_SB_BR")), "BANK_COR_ACCOUNT" => array("TYPE" => "", "VALUE" => GetMessage("SALE_WIZARD_PS_SB_NCB")), "ORDER_ID" => array("TYPE" => "ORDER", "VALUE" => "ID"), "DATE_INSERT" => array("TYPE" => "ORDER", "VALUE" => "DATE_INSERT_DATE"), "PAYER_CONTACT_PERSON" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["CONTACT_PERSON"]), "PAYER_ZIP_CODE" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["INDEX"]), "PAYER_COUNTRY" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["LOCATION"] . "_COUNTRY"), "PAYER_CITY" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["LOCATION"] . "_CITY"), "PAYER_ADDRESS_FACT" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["ADDRESS"]), "SHOULD_PAY" => array("TYPE" => "ORDER", "VALUE" => "PRICE"))), "HAVE_PAYMENT" => "Y", "HAVE_ACTION" => "N", "HAVE_RESULT" => "N", "HAVE_PREPAY" => "N", "HAVE_RESULT_RECEIVE" => "N"))), array("NAME" => GetMessage("SALE_WIZARD_PS_BILL"), "SORT" => 100, "DESCRIPTION" => "", "CODE_TEMP" => "bill", "ACTION" => array(array("PERSON_TYPE_ID" => $arGeneralInfo["personType"]["ur"], "NAME" => GetMessage("SALE_WIZARD_PS_BILL"), "ACTION_FILE" => "/bitrix/modules/sale/payment/bill", "RESULT_FILE" => "", "NEW_WINDOW" => "Y", "PARAMS" => serialize(array("DATE_INSERT" => array("TYPE" => "ORDER", "VALUE" => "DATE_INSERT_DATE"), "SELLER_NAME" => array("TYPE" => "", "VALUE" => GetMessage("SALE_WIZARD_PS_BILL_BITRIX")), "SELLER_ADDRESS" => array("TYPE" => "", "VALUE" => GetMessage("SALE_WIZARD_PS_BILL_ADDRESS")), "SELLER_PHONE" => array("TYPE" => "", "VALUE" => "+74012510564"), "SELLER_INN" => array("TYPE" => "", "VALUE" => GetMessage("SALE_WIZARD_PS_BILL_INN")), "SELLER_KPP" => array("TYPE" => "", "VALUE" => GetMessage("SALE_WIZARD_PS_BILL_KPP")), "SELLER_RS" => array("TYPE" => "", "VALUE" => GetMessage("SALE_WIZARD_PS_BILL_RS")), "SELLER_KS" => array("TYPE" => "", "VALUE" => GetMessage("SALE_WIZARD_PS_BILL_KS")), "SELLER_BIK" => array("TYPE" => "", "VALUE" => GetMessage("SALE_WIZARD_PS_BILL_BIK")), "BUYER_NAME" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["F_COMPANY_NAME"]), "BUYER_INN" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["F_INN"]), "BUYER_ADDRESS" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["F_ADDRESS_FULL"]), "BUYER_PHONE" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["F_PHONE"]), "BUYER_FAX" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["F_FAX"]), "BUYER_PAYER_NAME" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["F_NAME"]), "PATH_TO_STAMP" => array("TYPE" => "", "VALUE" => "/images/pechat.gif"))), "HAVE_PAYMENT" => "Y", "HAVE_ACTION" => "N", "HAVE_RESULT" => "N", "HAVE_PREPAY" => "N", "HAVE_RESULT_RECEIVE" => "N"))));
    } else {
        $arPaySystems = array(array("NAME" => "Cash", "SORT" => 50, "DESCRIPTION" => "You can pay in cash to our courier.", "CODE_TEMP" => "cash", "ACTION" => array(array("PERSON_TYPE_ID" => $arGeneralInfo["personType"]["fiz"], "NAME" => "Cash", "ACTION_FILE" => "/bitrix/modules/sale/payment/cash", "RESULT_FILE" => "", "NEW_WINDOW" => "N", "PARAMS" => "", "HAVE_PAYMENT" => "Y", "HAVE_ACTION" => "N", "HAVE_RESULT" => "N", "HAVE_PREPAY" => "N", "HAVE_RESULT_RECEIVE" => "N"), array("PERSON_TYPE_ID" => $arGeneralInfo["personType"]["ur"], "NAME" => "Cash", "ACTION_FILE" => "/bitrix/modules/sale/payment/cash", "RESULT_FILE" => "", "NEW_WINDOW" => "N", "PARAMS" => "", "HAVE_PAYMENT" => "Y", "HAVE_ACTION" => "N", "HAVE_RESULT" => "N", "HAVE_PREPAY" => "N", "HAVE_RESULT_RECEIVE" => "N"))), array("NAME" => "Authorize.Net", "SORT" => 60, "DESCRIPTION" => "", "CODE_TEMP" => "authorizenet", "ACTION" => array(array("PERSON_TYPE_ID" => $arGeneralInfo["personType"]["fiz"], "NAME" => "Authorize.Net", "ACTION_FILE" => "/bitrix/modules/sale/payment/authorizenet", "NEW_WINDOW" => "N", "PARAMS" => serialize(array("PS_LOGIN" => array("TYPE" => "", "VALUE" => "Login ID"), "PS_TRANSACTION_KEY" => array("TYPE" => "", "VALUE" => "Transaction key"), "HASH_VALUE" => array("TYPE" => "", "VALUE" => "Hash value"), "TEST_TRANSACTION" => array("TYPE" => "", "VALUE" => "Test transaction"), "FIRST_NAME" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["CONTACT_PERSON"]), "LAST_NAME" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["CONTACT_PERSON"]), "ADDRESS" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["ADDRESS"]), "CITY" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["F_LOCATION"] . "_CITY"), "ZIP" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["INDEX"]), "COUNTRY" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["F_LOCATION"] . "_COUNTRY"), "EMAIL" => array("TYPE" => "USER", "VALUE" => "EMAIL"), "SHIP_FIRST_NAME" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["CONTACT_PERSON"]), "SHIP_LAST_NAME" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["CONTACT_PERSON"]), "SHIP_ADDRESS" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["ADDRESS"]), "SHIP_CITY" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["F_LOCATION"] . "_CITY"), "SHIP_ZIP" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["INDEX"]), "SHIP_COUNTRY" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["F_LOCATION"] . "_COUNTRY"), "SHOULD_PAY" => array("TYPE" => "ORDER", "VALUE" => "PRICE"))), "HAVE_PAYMENT" => "Y", "HAVE_ACTION" => "Y", "HAVE_RESULT" => "N", "HAVE_PREPAY" => "Y", "HAVE_RESULT_RECEIVE" => "N"))), array("NAME" => "Payflow Pro", "SORT" => 70, "DESCRIPTION" => "", "CODE_TEMP" => "payflow", "ACTION" => array(array("PERSON_TYPE_ID" => $arGeneralInfo["personType"]["fiz"], "NAME" => "Payflow Pro", "ACTION_FILE" => "/bitrix/modules/sale/payment/payflow_pro", "NEW_WINDOW" => "N", "PARAMS" => serialize(array("PAYFLOW_URL" => array("TYPE" => "", "VALUE" => "test-payflow.verisign.com"), "PAYFLOW_PORT" => array("TYPE" => "", "VALUE" => 443), "PAYFLOW_USER" => array("TYPE" => "", "VALUE" => "User code"), "PAYFLOW_PASSWORD" => array("TYPE" => "", "VALUE" => "Password"), "PAYFLOW_PARTNER" => array("TYPE" => "", "VALUE" => "Partner"), "PAYFLOW_EXE_PATH" => array("TYPE" => "", "VALUE" => "/verisign/win32/bin/pfpro.exe"), "PAYFLOW_CERT_PATH" => array("TYPE" => "", "VALUE" => "/verisign/win32/certs/"), "NOC" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["CONTACT_PERSON"]), "ADDRESS" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["ADDRESS"]), "ZIP" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["INDEX"]), "SHOULD_PAY" => array("TYPE" => "ORDER", "VALUE" => "PRICE"))), "HAVE_PAYMENT" => "Y", "HAVE_ACTION" => "Y", "HAVE_RESULT" => "N", "HAVE_PREPAY" => "Y", "HAVE_RESULT_RECEIVE" => "N"), array("PERSON_TYPE_ID" => $arGeneralInfo["personType"]["ur"], "NAME" => "Payflow Pro", "ACTION_FILE" => "/bitrix/modules/sale/payment/payflow_pro", "NEW_WINDOW" => "N", "PARAMS" => serialize(array("PAYFLOW_URL" => array("TYPE" => "", "VALUE" => "test-payflow.verisign.com"), "PAYFLOW_PORT" => array("TYPE" => "", "VALUE" => 443), "PAYFLOW_USER" => array("TYPE" => "", "VALUE" => "User code"), "PAYFLOW_PASSWORD" => array("TYPE" => "", "VALUE" => "Password"), "PAYFLOW_PARTNER" => array("TYPE" => "", "VALUE" => "Partner"), "PAYFLOW_EXE_PATH" => array("TYPE" => "", "VALUE" => "/verisign/win32/bin/pfpro.exe"), "PAYFLOW_CERT_PATH" => array("TYPE" => "", "VALUE" => "/verisign/win32/certs/"), "NOC" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["F_COMPANY_NAME"]), "ADDRESS" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["F_ADDRESS_FULL"]), "SHOULD_PAY" => array("TYPE" => "ORDER", "VALUE" => "PRICE"))), "HAVE_PAYMENT" => "Y", "HAVE_ACTION" => "Y", "HAVE_RESULT" => "N", "HAVE_PREPAY" => "Y", "HAVE_RESULT_RECEIVE" => "N"))), array("NAME" => "WorldPay", "SORT" => 80, "DESCRIPTION" => "", "CODE_TEMP" => "worldpay", "ACTION" => array(array("PERSON_TYPE_ID" => $arGeneralInfo["personType"]["fiz"], "NAME" => "WorldPay", "ACTION_FILE" => "/bitrix/modules/sale/payment/worldpay", "NEW_WINDOW" => "N", "PARAMS" => serialize(array("TEST_TRANSACTION" => array("TYPE" => "", "VALUE" => 101), "SHOP_ID" => array("TYPE" => "", "VALUE" => "WorldPay ID"), "PAYER_NAME" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["CONTACT_PERSON"]), "PHONE" => array("TYPE" => "USER", "VALUE" => "PERSONAL_MOBILE"), "EMAIL" => array("TYPE" => "USER", "VALUE" => "EMAIL"), "ADDRESS" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["ADDRESS"]), "ZIP" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["INDEX"]), "COUNTRY" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["F_LOCATION"] . "_COUNTRY"), "CALLBACK_PASSWORD" => array("TYPE" => "", "VALUE" => ""), "SHOULD_PAY" => array("TYPE" => "ORDER", "VALUE" => "PRICE"))), "HAVE_PAYMENT" => "Y", "HAVE_ACTION" => "N", "HAVE_RESULT" => "Y", "HAVE_PREPAY" => "N", "HAVE_RESULT_RECEIVE" => "N"), array("PERSON_TYPE_ID" => $arGeneralInfo["personType"]["ur"], "NAME" => "WorldPay", "ACTION_FILE" => "/bitrix/modules/sale/payment/worldpay", "NEW_WINDOW" => "N", "PARAMS" => serialize(array("TEST_TRANSACTION" => array("TYPE" => "", "VALUE" => 101), "SHOP_ID" => array("TYPE" => "", "VALUE" => "WorldPay ID"), "PAYER_NAME" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["F_NAME"]), "PHONE" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["F_PHONE"]), "EMAIL" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["F_EMAIL"]), "ADDRESS" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["F_ADDRESS_FULL"]), "COUNTRY" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["F_LOCATION"] . "_COUNTRY"), "CALLBACK_PASSWORD" => array("TYPE" => "", "VALUE" => ""), "SHOULD_PAY" => array("TYPE" => "ORDER", "VALUE" => "PRICE"))), "HAVE_PAYMENT" => "Y", "HAVE_ACTION" => "N", "HAVE_RESULT" => "Y", "HAVE_PREPAY" => "N", "HAVE_RESULT_RECEIVE" => "N"))), array("NAME" => "PayPal", "SORT" => 90, "DESCRIPTION" => "", "CODE_TEMP" => "paypal", "ACTION" => array(array("PERSON_TYPE_ID" => $arGeneralInfo["personType"]["fiz"], "NAME" => "PayPal", "ACTION_FILE" => "/bitrix/modules/sale/payment/paypal", "NEW_WINDOW" => "Y", "PARAMS" => serialize(array("TEST_TRANSACTION" => array("TYPE" => "", "VALUE" => 101), "SHOP_ID" => array("TYPE" => "", "VALUE" => "WorldPay ID"), "PAYER_NAME" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["CONTACT_PERSON"]), "PHONE" => array("TYPE" => "USER", "VALUE" => "PERSONAL_MOBILE"), "EMAIL" => array("TYPE" => "USER", "VALUE" => "EMAIL"), "ADDRESS" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["ADDRESS"]), "ZIP" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["INDEX"]), "COUNTRY" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCode"]["F_LOCATION"] . "_COUNTRY"), "CALLBACK_PASSWORD" => array("TYPE" => "", "VALUE" => ""), "SHOULD_PAY" => array("TYPE" => "ORDER", "VALUE" => "PRICE"))), "HAVE_PAYMENT" => "Y", "HAVE_ACTION" => "N", "HAVE_RESULT" => "N", "HAVE_PREPAY" => "N", "HAVE_RESULT_RECEIVE" => "Y"))), array("NAME" => "Betalink", "SORT" => 90, "DESCRIPTION" => "", "CODE_TEMP" => "betalink", "ACTION" => array(array("PERSON_TYPE_ID" => $arGeneralInfo["personType"]["fiz"], "NAME" => "betalink", "ACTION_FILE" => "/bitrix/modules/sale/payment/betalink", "NEW_WINDOW" => "Y", "PARAMS" => serialize(array("TEST_TRANSACTION" => array("TYPE" => "", "VALUE" => "Test transaction"), "SHOP_CODE" => array("TYPE" => "", "VALUE" => "Shop code"), "SHOULD_PAY" => array("TYPE" => "ORDER", "VALUE" => "PRICE"))), "HAVE_PAYMENT" => "Y", "HAVE_ACTION" => "N", "HAVE_RESULT" => "N", "HAVE_PREPAY" => "N", "HAVE_RESULT_RECEIVE" => "N"))));
    }
    foreach ($arPaySystems as $val) {
        $id = CSalePaySystem::Add(array("LID" => $siteID, "CURRENCY" => $bRus ? "RUB" : "USD", "NAME" => $val["NAME"], "ACTIVE" => "Y", "SORT" => $val["SORT"], "DESCRIPTION" => $val["DESCRIPTION"]));
        foreach ($val["ACTION"] as $action) {
            $action["PAY_SYSTEM_ID"] = $id;
            CSalePaySystemAction::Add($action);
        }
    }
    //discounts
    CSaleDiscount::Add(array("LID" => $siteID, "PRICE_FROM" => 800, "PRICE_TO" => 1500, "CURRENCY" => $bRus ? "RUB" : "USD", "DISCOUNT_VALUE" => 20, "DISCOUNT_TYPE" => "P", "ACTIVE" => "Y", "SORT" => 200, "ACTIVE_FROM" => "", "ACTIVE_TO" => ""));
    CSaleDiscount::Add(array("LID" => $siteID, "PRICE_FROM" => 500, "PRICE_TO" => 800, "CURRENCY" => $bRus ? "RUB" : "USD", "DISCOUNT_VALUE" => 15, "DISCOUNT_TYPE" => "P", "ACTIVE" => "Y", "SORT" => 100, "ACTIVE_FROM" => "", "ACTIVE_TO" => ""));
    CSaleDiscount::Add(array("LID" => $siteID, "PRICE_FROM" => 1500, "PRICE_TO" => 0, "CURRENCY" => $bRus ? "RUB" : "USD", "DISCOUNT_VALUE" => 25, "DISCOUNT_TYPE" => "P", "ACTIVE" => "Y", "SORT" => 300, "ACTIVE_FROM" => "", "ACTIVE_TO" => ""));
    if ($bRus) {
        //1C export
        $val = serialize(array("AGENT_NAME" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCodeID"]["CONTACT_PERSON"]), "FULL_NAME" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCodeID"]["CONTACT_PERSON"]), "SURNAME" => array("TYPE" => "USER", "VALUE" => "LAST_NAME"), "NAME" => array("TYPE" => "USER", "VALUE" => "NAME"), "ADDRESS_FULL" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCodeID"]["ADDRESS"]), "INDEX" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCodeID"]["INDEX"]), "COUNTRY" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCodeID"]["LOCATION"] . "_COUNTRY"), "CITY" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCodeID"]["LOCATION"] . "_CITY"), "STREET" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCodeID"]["STREET"]), "EMAIL" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCodeID"]["EMAIL"]), "CONTACT_PERSON" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCodeID"]["CONTACT_PERSON"]), "IS_FIZ" => "Y"));
        CSaleExport::Add(array("PERSON_TYPE_ID" => $arGeneralInfo["personType"]["fiz"], "VARS" => $val));
        $val = serialize(array("AGENT_NAME" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCodeID"]["F_COMPANY_NAME"]), "FULL_NAME" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCodeID"]["F_COMPANY_NAME"]), "ADDRESS_FULL" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCodeID"]["F_ADDRESS_FULL"]), "COUNTRY" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCodeID"]["F_LOCATION"] . "_COUNTRY"), "CITY" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCodeID"]["F_LOCATION"] . "_CITY"), "STREET" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCodeID"]["F_ADDRESS_FULL"]), "INN" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCodeID"]["F_INN"]), "KPP" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCodeID"]["F_KPP"]), "PHONE" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCodeID"]["F_PHONE"]), "EMAIL" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCodeID"]["F_EMAIL"]), "CONTACT_PERSON" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCodeID"]["F_NAME"]), "F_ADDRESS_FULL" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCodeID"]["F_ADDRESS"]), "F_COUNTRY" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCodeID"]["F_LOCATION"] . "_COUNTRY"), "F_CITY" => array("TYPE" => "PROPERTY", "VALUE" => $arGeneralInfo["propCodeID"]["F_LOCATION"] . "_CITY"), "IS_FIZ" => "N"));
        CSaleExport::Add(array("PERSON_TYPE_ID" => $arGeneralInfo["personType"]["ur"], "VARS" => $val));
    }
    $affiliatePlan = CSaleAffiliatePlan::Add(array("SITE_ID" => $siteID, "NAME" => GetMessage("SALE_WIZARD_AFFILIATE_PLAN"), "ACTIVE" => "Y", "BASE_RATE" => 5, "BASE_RATE_TYPE" => "P", "MIN_PAY" => 0, "MIN_PAY_VALUE" => 1));
    CSaleAffiliate::Add(array("SITE_ID" => $siteID, "USER_ID" => 1, "PLAN_ID" => $affiliatePlan, "ACTIVE" => "Y", "DATE_CREATE" => ConvertTimeStamp(), "AFF_SITE" => "www.bitrixsoft.com", "AFF_DESCRIPTION" => GetMessage("SALE_WIZARD_AFFILIATE"), "FIX_PLAN" => "N"));
}
DemoSiteUtil::AddMenuItem("/personal/.left.menu.php", array(GetMessage("SALE_WIZARD_MENU_ORDERS"), "/personal/order/", array(), array(), ""));
DemoSiteUtil::AddMenuItem("/personal/.left.menu.php", array(GetMessage("SALE_WIZARD_MENU_CART"), "/personal/cart/", array(), array(), ""));
DemoSiteUtil::AddMenuItem("/personal/.left.menu.php", array(GetMessage("SALE_WIZARD_MENU_REGULAR_PAYMENT"), "/personal/regular-payment/", array(), array(), ""));
DemoSiteUtil::AddMenuItem("/personal/.left.menu.php", array(GetMessage("SALE_WIZARD_MENU_PROFILES"), "/personal/customer-profiles/", array(), array(), ""));
DemoSiteUtil::AddMenuItem("/personal/.left.menu.php", array(GetMessage("SALE_WIZARD_MENU_ACCOUNTS"), "/personal/account/", array(), array(), ""));