skip to content
KAD::Wiki
User Tools
Log In
Site Tools
Search
Tools
Show page
Old revisions
Log In
>
You are here:
Приветствие
»
Для сотрудников
»
Разработка
»
HostCMS
»
Статьи (по модулям)
»
Интернет-магазин
»
Корзина
»
Наценка на товары
»
additionalfields.php
private:koding:hostcms:modules:shop:cart:markup:additionalfields.php
Media Files
<code php><?php defined('HOSTCMS') || exit('HostCMS: access denied.'); /** * Наблюдатель для работы с наценкой товара. */ class Shop_Order_Item_Observer_AdditionalFields { /** * Метод обратного вызова для кастомного поля shop_order_item.markup * * @param Shop_Order_Item_Model $oShopOrderItem * @param array $aArgs * @return string */ static public function onCallmarkup(Shop_Order_Item_Model $oShopOrderItem, array $aArgs) { $markup = self::_getMarkup($oShopOrderItem); if ($markup) { return $markup . ' ' . $oShopOrderItem->Shop_Order->Shop->Shop_Currency->name; } else { return '—'; } } /** * Метод обратного вызова для кастомного поля shop_order_item.price_without_markup * * @param Shop_Order_Item_Model $oShopOrderItem * @param array $aArgs * @return string */ static public function onCallprice_without_markup(Shop_Order_Item_Model $oShopOrderItem, array $aArgs) { return $oShopOrderItem->price - self::_getMarkup($oShopOrderItem); } /** * Добавляет наценку товара в заказе * * @param Shop_Order_Item_Model $oShopOrderItem * @param array $aArgs * @return void */ static public function onBeforeRedeclaredGetXml(Shop_Order_Item_Model $oShopOrderItem, array $aArgs) { $oShopOrderItem ->addEntity( Core::factory('Core_Xml_Entity') ->name('markup') ->value(self::_getMarkup($oShopOrderItem)) ); } /** * Возвращает наценку для товара в заказе * * @param Shop_Order_Item_Model $oShopOrderItem * @return number */ static protected function _getMarkup(Shop_Order_Item_Model $oShopOrderItem) { if (!$oShopOrderItem->shop_item_id) { return 0; } $oShopOrder = $oShopOrderItem->Shop_Order; $oShopOrderPropertyList = Core_Entity::factory('Shop_Order_Property_List', $oShopOrder->Shop->id); $oProperty = $oShopOrderPropertyList->Properties->getByTagName('markups'); if (!$oProperty) { return 0; } $aoPropertyValues = $oShopOrder->getPropertyValues(TRUE, array($oProperty->id)); if (!count($aoPropertyValues)) { return 0; } $aMakups = @json_decode($aoPropertyValues[0]->value, TRUE); if (isset($aMakups[$oShopOrderItem->shop_item_id])) { return $aMakups[$oShopOrderItem->shop_item_id]; } return 0; } }</code> <wrap lo>Страницу создал Максим Засорин 23.01.17 в 14:43</wrap>
Save
Preview
Cancel
Edit summary
private/koding/hostcms/modules/shop/cart/markup/additionalfields.php.txt
· Last modified: 27.06.17 в 16:04 by
maximzasorin_gmail.com
Page Tools
Show page
Old revisions
Export to PDF
Rename Page
Back to top