Специальные цены

#
Re: Специальные цены
iulyus,Цитата:
specialprices(TRUE|FALSE) показывать специальные цены для выбранных товаров, по умолчанию FALSE

Версия системы актуальная. Не добавляет в XML специальные цены для товара. Пока не ясно поведение метода specialprices(TRUE|FALSE)
Нужен Хук как выше написанное https://www.hostcms.ru/forums/2/8157/#51316
Тут если Цена товара в разной валюте то нужен конвертор.
// Оптовая цена
        $oShop_Item_Price = $object->Shop_Item_Prices->getByShop_price_id(1);

        if (!is_null($oShop_Item_Price) and $oShop_Item_Price->value > 0)
        {
            $fCurrencyCoefficient = $object->Shop_Currency->id > 0 && $object->Shop->Shop_Currency->id > 0
                ? Shop_Controller::instance()->getCurrencyCoefficientInShopCurrency(
                    $object->Shop_Currency, $object->Shop->Shop_Currency
                )
                : 0;

            $object->addXmlTag('wholesale', ($object->Shop_Currency->format($oShop_Item_Price->value * $fCurrencyCoefficient)));
        }


Также нужно учесть, если пользователь сайта авторизован, он относится к этой группе скидок то не добавлять в XML тег wholesale
Проверка авторизации
if (Core_Entity::factory('Siteuser')->getCurrent())

Далее как определить что пользователь относится к этой группе скидок как оптовый покупатель и не выводить оптовую цену на сайте XML тег wholesale?
E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
Модератор
#
Re: Специальные цены
Seri,
вы приводите ссылку на специальные цены, а в коде пишите про цены для групп клиентов, это совершенно разные вещи.
Цитата:
Специальные цены используются для указания цен, действительных при приобретении определенного количества товара.
Цена может быть указана как в виде фиксированного значения в валюте товара, так и в виде процента от базовой цены товара. Указание нулевой цены не допускается.


Тема изначально была неверно названа, пример вывод цен для групп клиентов (пользователей) доступен в хуках "Вывод в XML товара цен для групп пользователей"
#
Re: Специальные цены
class Shop_Item_Observer
{
    static public function onBeforeGetXml($object, $args)
    {
        $fWholeSale = 0;

        $oShop_Item_Price = $object->Shop_Item_Prices->getByShop_price_id(1);

        if (!is_null($oShop_Item_Price) and $oShop_Item_Price->value > 0)
        {
            $fCurrencyCoefficient = $object->Shop_Currency->id > 0 && $object->Shop->Shop_Currency->id > 0
                ? Shop_Controller::instance()->getCurrencyCoefficientInShopCurrency(
                    $object->Shop_Currency, $object->Shop->Shop_Currency
                )
                : 0;

            $fWholeSale = $object->Shop_Currency->format($oShop_Item_Price->value * $fCurrencyCoefficient);
        }

        $oSiteuser = Core_Entity::factory('Siteuser')->getCurrent();

        if ($oSiteuser)
        {
            $aSiteuser_Groups = $oSiteuser->Siteuser_Groups->findAll();

            // Пользователь может привязаться на несколько групп
            foreach ($aSiteuser_Groups as $oSiteuser_Group)
            {
                // Если не оптовый клиент
                if ($oSiteuser_Group->id != 2)
                {
                    if ($fWholeSale) $object->addXmlTag('wholesale', $fWholeSale);
                }
            }
        }
        else
        {
            if ($fWholeSale) $object->addXmlTag('wholesale', $fWholeSale);
        }
    }
}
E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
#
Re: Специальные цены
НДС не добавился, решилось так:
static public function onBeforeGetXml($object, $args)
    {
        $fWholeSale = 0;
        $oShop_Item_Price = $object->Shop_Item_Prices->getByShop_price_id(1);

        if (!is_null($oShop_Item_Price) and $oShop_Item_Price->value > 0)
        {
            $fCurrencyCoefficient = $object->Shop_Currency->id > 0 && $object->Shop->Shop_Currency->id > 0
                ? Shop_Controller::instance()->getCurrencyCoefficientInShopCurrency(
                    $object->Shop_Currency, $object->Shop->Shop_Currency
                )
                : 0;

            $oShop_Item_Controller = new Shop_Item_Controller();
            $aPrices = $oShop_Item_Controller->calculatePriceInItemCurrency($oShop_Item_Price->value, $object);

            $fWholeSale = $aPrices['price_discount'] * $fCurrencyCoefficient;
        }

        $oSiteuser = Core_Entity::factory('Siteuser')->getCurrent();

        if ($oSiteuser)
        {
            $aSiteuser_Groups = $oSiteuser->Siteuser_Groups->findAll();

            // Пользователь может привязаться на несколько групп
            foreach ($aSiteuser_Groups as $oSiteuser_Group)
            {
                // Если не оптовый клиент
                if ($oSiteuser_Group->id != 2)
                {
                    if ($fWholeSale) $object->addXmlTag('wholesale', $fWholeSale);
                }
            }
        }
        else
        {
            if ($fWholeSale) $object->addXmlTag('wholesale', $fWholeSale);
        }
    }
E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
Авторизация