Добавление доп. наценки для платежной системы
Кодинг
→
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, 2677 просмотров.
Комментарии
Добавить комментарий