Товар успешно добавлен в корзину!
Блог Кодинг Портфолио Я

Добавление доп. наценки для платежной системы

Кодинг HostCMS Интернет-магазин

Для некоторых платежных систем, например, Яндекс.Деньги или Вебмани, требуется дополнительная наценка при оформлении заказа. Делается это следующим образом.

1. В обработчик платежной системы добавляем функцию:
	public function addMargin()
	{
		$itemName = "Наценка за платежную систему 3%";
		$perc_margin = 3;

		$oShop_Order = $this->_shopOrder;

		if (!is_null($oShop_Order))
		{
			$aShop_Order_Items = $oShop_Order->Shop_Order_Items->findAll();

			$oShop_Cart_Controller = Shop_Cart_Controller::instance();

			$sum = 0;
			foreach ($aShop_Order_Items as $oShop_Order_Item)
			{

				if ($oShop_Order_Item->name == $itemName)
				{
					$oShop_Order_Item->delete();
				} else
				{
					$sum += $oShop_Order_Item->price;
				}

			}

			$perc = $sum / 100 * $perc_margin;

			$oOrderItem = Core_Entity::factory('shop_order_item');
			$oOrderItem->name = "Наценка за платежную систему 3%";
			$oOrderItem->type = 0;
			$oOrderItem->quantity = 1;
			$oOrderItem->price = $perc;
			$oShop_Order->add($oOrderItem);

		}
	}

2. В начало getNotification() добавляем строку

$this->addMargin();

 например 

	public function getNotification()
	{
		$this->addMargin();

		$this->xsl(
			Core_Entity::factory('Xsl')->getByName('ОплатаПриПолучении')
		);
		return parent::getNotification();
	}

 3. Готово!

Теперь при выборе оплаты с помощью нашей платежной системы, будет добавлен товар с названием " Наценка за платежную систему 3%" и ценой равной 3% от заказа 

Пример http://arenasale.ru/

 


09.09.2013, 2215 просмотров.

Комментарии

меняем
 $sum += $oShop_Order_Item->price;
на
 $sum += $oShop_Order_Item->price + ($oShop_Order_Item->price * $oShop_Order_Item->rate / 100);

Алекс 07.11.2013 22:16:06 ответить #

Имя
E-mail
Комментарий
Воспользовался примером, Спасибо! Только он подходит для цен без НДС и наценку делать только на сумму без НДС.

Алекс 02.11.2013 12:56:18 ответить #

Имя
E-mail
Комментарий
Пожалуйста! Буду благодарен, если поделитесь решением для цен с НДС.

KAD 05.11.2013 15:42:30 ответить #

Имя
E-mail
Комментарий

Добавить комментарий

Имя
E-mail
Комментарий