[ОТВЕТИТЬ]
Опции темы
25.08.2014 15:13  
vdm
Постучаться чтоль в вашу компанию кулибиных.
Битрикс я вообще не видел, php в основном "по гуглу", так что...

Просмотрел тему, вопросы:
- ты добавил скидку, аналогичную "под заказ 5%", с фиксированной суммой и без указания склада?
- переделал в pricegd - result_modifier.php вывод скидки с пустым складом на "Новая цена:" ?
- нужно этой скидочной ценой заменить основную, которая на желтом фоне?
- зачеркнутая старая цена и сумма скидки (серым цветом) вроде не нужны?
- непонятно, вот выведешь тут цену с данной конкретной скидкой, а где еще она (цена) используется. Например при добавлении товара в корзину - с какой ценой он туда попадет, с базовой?

В общем неясен мне смысл замены основной цены в одном месте, "на экране". Вывести ее как ты хочешь конечно можно, а дальше...
 
25.08.2014 15:49  
aldemko
- ты добавил скидку, аналогичную "под заказ 5%", с фиксированной суммой и без указания склада? -да
- переделал в pricegd - result_modifier.php вывод скидки с пустым складом на "Новая цена:" ? -да (если НОВОЙ ЦЕНЫ нет оставить прежнюю цену)
- нужно этой скидочной ценой заменить основную, которая на желтом фоне? - да
- зачеркнутая старая цена и сумма скидки (серым цветом) вроде не нужны? - да
- непонятно, вот выведешь тут цену с данной конкретной скидкой, а где еще она (цена) используется. Например при добавлении товара в корзину - с какой ценой он туда попадет, с базовой? -

корзины, как вы заметили нет
есть только стоимость доставки
да в данный момент нужно, просто заменить цену на екране
 
25.08.2014 15:53  
vdm
Ну выложи текущий pricegd, чего там поменял.
 
25.08.2014 15:56  
aldemko
вот
(особо ничего не менял, просто нашел не используемый склад, не склада - вот и решил воспользоватся на быструю руку, так сказать, если работа со стандартной скидкой требует намного больше времени в данный момент, чем есть для решения задачи)
pricegd:
[php]<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();

//echo $arResult['DISCOUNTS']['col'];
/*echo "<pre>";
print_r ($arResult['DISCOUNTS']);
echo "</pre>";*/

$osn_price = $arResult['DISCOUNTS']['price_osn'][''] + 0;//это ноль прибавлен доля того, чтобы из 5000.00 стало 5000 (убрали .00)

if ($arResult['DISCOUNTS']['price_osn'][''] != "")
{
echo '<div class="item_current_price" id="">Цена: '.$osn_price.' руб.</div><br />'; - Это выводит цену
}
else
{
echo '<div class="item_current_price" id="">Цена: по запросу</div><br />';
}

for($i = 0; $i < $arResult['DISCOUNTS']['col']; $i++)//погнали скидки выводить
{
if ($arResult['DISCOUNTS']['dnk_s'][$i] == $arResult['DISCOUNTS']['dnk_out'][$i] && $arResult['DISCOUNTS']['price_osn'][''] != "")
{
$type_s_out = "";
if ($arResult['DISCOUNTS']['type_s'][$i] == "Процент")
{
$type_s_out = $arResult['DISCOUNTS']['val_s'][$i]."%";
}

if ($arResult['DISCOUNTS']['sklad_s'][$i] == "Под заказ")
{
echo "<span style='font-weight:bold; color:#00A80D; font-size: 15px;'>&nbsp;&nbsp;Под заказ, цена со скидкой : <span style='font-weight:bold; font-size: 16px; color: #FA8C00;'>".$arResult['DISCOUNTS']['skid'][$i]." руб.</span></span><br />";
}

if ($arResult['DISCOUNTS']['sklad_s'][$i] == "Владивосток")
{
echo "<span style='font-weight:bold; color:#00A80D; font-size: 15px;'>&nbsp;&nbsp;Цена со скидкой <span style='font-size: 16px;' >".$type_s_out."</span> во Владивостоке: <span style='font-weight:bold; font-size: 16px; color: #FA8C00;'>".$arResult['DISCOUNTS']['skid'][$i]." руб.</span></span><br />";
}

if ($arResult['DISCOUNTS']['sklad_s'][$i] == "Москва")
{
echo "<span style='font-weight:bold; color:#00A80D; font-size: 15px;'>&nbsp;&nbsp;Цена со скидкой <span style='font-size: 16px;' >".$type_s_out."</span> в Москве: <span style='font-weight:bold; font-size: 16px; color: #FA8C00;'>".$arResult['DISCOUNTS']['skid'][$i]." руб.</span></span><br />";
}

if ($arResult['DISCOUNTS']['sklad_s'][$i] == "") - это выводит НОВАЯ ЦЕНА
{
echo "<span style='font-weight:bold; color:#00A80D; font-size: 15px;'>&nbsp;&nbsp;НОВАЯ ЦЕНА: <span style='font-size: 16px;' >".$type_s_out."</span> <span style='font-weight:bold; font-size: 16px; color: #FA8C00;'>".$arResult['DISCOUNTS']['skid'][$i]." руб.</span></span><br />";
}

if ($arResult['DISCOUNTS']['comment'][$i] != "")
{
echo "<span style='font-style: italic; color:#000; font-size: 12px;'>&nbsp;&nbsp;&nbsp;".$arResult['DISCOUNTS']['comment'][$i]."</span><br />";
}


}

}

?>[/php]



вот результат
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 21 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащийся здесь.
 
25.08.2014 16:57  
vdm
Тупо просматриваются скидки и если есть с пустым складом - цену берет оттуда. Соответственно дальше вывод этой цены закомментирован. Для красоты вроде можно покороче, без цикла, но дай бог заработает и так.

pricegd - template.php:

SQL код:
<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();

//echo $arResult['DISCOUNTS']['col'];
/*echo "<pre>";
print_r ($arResult['DISCOUNTS']);
echo "</pre>";*/

$osn_price $arResult['DISCOUNTS']['price_osn'][''] + 0;//это ноль прибавлен доля того, чтобы из 5000.00 стало 5000 (убрали .00)

if ($arResult['DISCOUNTS']['price_osn'][''] != "")
{
    for(
$i 0$i $arResult['DISCOUNTS']['col']; $i++)
    { 
        if (
$arResult['DISCOUNTS']['dnk_s'][$i] == $arResult['DISCOUNTS']['dnk_out'][$i])
        {
            if (
$arResult['DISCOUNTS']['sklad_s'][$i] == "")
            {
                
$osn_price $arResult['DISCOUNTS']['skid'][$i];
                break;
            }
        }
    }

    echo 
'<div class="item_current_price" id="">Цена: '.$osn_price.' руб.</div><br />';
}
else
{
    echo 
'<div class="item_current_price" id="">Цена: по запросу</div><br />';
}

for(
$i 0$i $arResult['DISCOUNTS']['col']; $i++)//погнали скидки выводить 

    if (
$arResult['DISCOUNTS']['dnk_s'][$i] == $arResult['DISCOUNTS']['dnk_out'][$i] && $arResult['DISCOUNTS']['price_osn'][''] != "")
    {
$type_s_out "";
        if (
$arResult['DISCOUNTS']['type_s'][$i] == "Процент")
        {
            
$type_s_out $arResult['DISCOUNTS']['val_s'][$i]."%";
        }

        if (
$arResult['DISCOUNTS']['sklad_s'][$i] == "Под заказ")
        {
            echo 
"<span style='font-weight:bold; color:#00A80D; font-size: 15px;'>&nbsp;&nbsp;Под заказ, цена со скидкой <span style='font-size: 16px;' >".$type_s_out."</span>: <span style='font-weight:bold; font-size: 16px; color: #FA8C00;'>".$arResult['DISCOUNTS']['skid'][$i]." руб.</span></span><br />";
        }

        if (
$arResult['DISCOUNTS']['sklad_s'][$i] == "Владивосток")
        {
            echo 
"<span style='font-weight:bold; color:#00A80D; font-size: 15px;'>&nbsp;&nbsp;Цена со скидкой <span style='font-size: 16px;' >".$type_s_out."</span> во Владивостоке: <span style='font-weight:bold; font-size: 16px; color: #FA8C00;'>".$arResult['DISCOUNTS']['skid'][$i]." руб.</span></span><br />";
        }

        if (
$arResult['DISCOUNTS']['sklad_s'][$i] == "Москва")
        {
            echo 
"<span style='font-weight:bold; color:#00A80D; font-size: 15px;'>&nbsp;&nbsp;Цена со скидкой <span style='font-size: 16px;' >".$type_s_out."</span> в Москве: <span style='font-weight:bold; font-size: 16px; color: #FA8C00;'>".$arResult['DISCOUNTS']['skid'][$i]." руб.</span></span><br />";
        }

//        if ($arResult['DISCOUNTS']['sklad_s'][$i] == "")
//        {
//            echo "<span style='font-weight:bold; color:#00A80D; font-size: 15px;'>&nbsp;&nbsp;Цена со скидкой: <span style='font-size: 16px;' >".$type_s_out."</span> <span style='font-weight:bold; font-size: 16px; color: #FA8C00;'>".$arResult['DISCOUNTS']['skid'][$i]." руб.</span></span><br />";
//        }

        
if ($arResult['DISCOUNTS']['comment'][$i] != "")
        {
            echo 
"<span style='font-style: italic; color:#000; font-size: 12px;'>&nbsp;&nbsp;&nbsp;".$arResult['DISCOUNTS']['comment'][$i]."</span><br />";
        }


    }

}

?>
 
"Спасибо" vdm от:
25.08.2014 17:25  
aldemko
оО спасибо
заработало


теперь бы такой же фокус к
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 21 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащийся здесь.


понимаю что это временное решение, и нужно будет в итоге все равно возвращаться к советам
Цитата:
Сообщение от KirillHome
Дальше надо читать в гугле по запросу "IncludeComponent передать параметр" и пробовать, пробовать, пробовать....
Параметр то был передан, а вот как его обработать? Я "с разбега" не разобрался....
но на данный момент меня и этот вариант очень как спасает


так же есть моменты некоторые, но пка, для отвода глаз не заметно будет
но все же
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 21 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащийся здесь.

скидка под заказ 5% все равно берется от суммы 270 000
но это уже след етап



если правильно понял
catalog.section
есть код
SQL код:
<div class="bx_catalog_item_title"><a href="<? echo $arItem['DETAIL_PAGE_URL']; ?>" title="<? echo $arItem['NAME']; ?>"><? echo $arItem['NAME']; ?></a></div>
<div class="bx_catalog_item_price"><div id="<? echo $arItemIDs['PRICE']; ?>" class="bx_price"><?
    
    
//компонент цен и скидок сюда

    
$APPLICATION->IncludeComponent("hard:pricegd""catalogspisok"
    array(
    
"ELEMENT_ID" => $arItem['ID']
    ),
    
false,
    array(
    
"ACTIVE_COMPONENT" => "Y"
    
)
);
он тоже обращается к pricegd
но почему он оттуда не берет данные ?(
 
25.08.2014 18:23  
vdm
Цитата:
Сообщение от aldemko
скидка под заказ 5% все равно берется от суммы 270 000
Или откопать, где формируется $arResult['DISCOUNTS']
Или во втором цикле вычесть со всех прочих скидок разницу цен, полученную в первом цикле.
Логика получается конечно... чем дальше в лес...

Цитата:
Сообщение от aldemko
если правильно понял
catalog.section
есть код
SQL код:
<div class="bx_catalog_item_title"><a href="<? echo $arItem['DETAIL_PAGE_URL']; ?>" title="<? echo $arItem['NAME']; ?>"><? echo $arItem['NAME']; ?></a></div>
<div class="bx_catalog_item_price"><div id="<? echo $arItemIDs['PRICE']; ?>" class="bx_price"><?
    
    
//компонент цен и скидок сюда

    
$APPLICATION->IncludeComponent("hard:pricegd""catalogspisok"
    array(
    
"ELEMENT_ID" => $arItem['ID']
    ),
    
false,
    array(
    
"ACTIVE_COMPONENT" => "Y"
    
)
);
он тоже обращается к pricegd
но почему он оттуда не берет данные ?(
Тут другое имя template - catalogspisok. Это другие файлы?
 
25.08.2014 18:31  
aldemko
сейчас поищу. это не моих рук произведение
нашел его template - catalogspisok (содержимое было таким же как и pricegd) - да это был отдельный файл и лежал он вообще по другому адрессу
bitrix/components/hardp/ricegdt/emplates/catalogspisok
содержимое было аналогично оригинальному pricegd
заменил на
код:
Цитата:
Сообщение от vdm

pricegd - template.php:

SQL код:
<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();

//echo $arResult['DISCOUNTS']['col'];
/*echo "<pre>";
print_r ($arResult['DISCOUNTS']);
echo "</pre>";*/

$osn_price $arResult['DISCOUNTS']['price_osn'][''] + 0;//это ноль прибавлен доля того, чтобы из 5000.00 стало 5000 (убрали .00)

if ($arResult['DISCOUNTS']['price_osn'][''] != "")
{
    for(
$i 0$i $arResult['DISCOUNTS']['col']; $i++)
    { 
        if (
$arResult['DISCOUNTS']['dnk_s'][$i] == $arResult['DISCOUNTS']['dnk_out'][$i])
        {
            if (
$arResult['DISCOUNTS']['sklad_s'][$i] == "")
            {
                
$osn_price $arResult['DISCOUNTS']['skid'][$i];
                break;
            }
        }
    }

    echo 
'<div class="item_current_price" id="">Цена: '.$osn_price.' руб.</div><br />';
}
else
{
    echo 
'<div class="item_current_price" id="">Цена: по запросу</div><br />';
}

for(
$i 0$i $arResult['DISCOUNTS']['col']; $i++)//погнали скидки выводить 

    if (
$arResult['DISCOUNTS']['dnk_s'][$i] == $arResult['DISCOUNTS']['dnk_out'][$i] && $arResult['DISCOUNTS']['price_osn'][''] != "")
    {
$type_s_out "";
        if (
$arResult['DISCOUNTS']['type_s'][$i] == "Процент")
        {
            
$type_s_out $arResult['DISCOUNTS']['val_s'][$i]."%";
        }

        if (
$arResult['DISCOUNTS']['sklad_s'][$i] == "Под заказ")
        {
            echo 
"<span style='font-weight:bold; color:#00A80D; font-size: 15px;'>&nbsp;&nbsp;Под заказ, цена со скидкой <span style='font-size: 16px;' >".$type_s_out."</span>: <span style='font-weight:bold; font-size: 16px; color: #FA8C00;'>".$arResult['DISCOUNTS']['skid'][$i]." руб.</span></span><br />";
        }

        if (
$arResult['DISCOUNTS']['sklad_s'][$i] == "Владивосток")
        {
            echo 
"<span style='font-weight:bold; color:#00A80D; font-size: 15px;'>&nbsp;&nbsp;Цена со скидкой <span style='font-size: 16px;' >".$type_s_out."</span> во Владивостоке: <span style='font-weight:bold; font-size: 16px; color: #FA8C00;'>".$arResult['DISCOUNTS']['skid'][$i]." руб.</span></span><br />";
        }

        if (
$arResult['DISCOUNTS']['sklad_s'][$i] == "Москва")
        {
            echo 
"<span style='font-weight:bold; color:#00A80D; font-size: 15px;'>&nbsp;&nbsp;Цена со скидкой <span style='font-size: 16px;' >".$type_s_out."</span> в Москве: <span style='font-weight:bold; font-size: 16px; color: #FA8C00;'>".$arResult['DISCOUNTS']['skid'][$i]." руб.</span></span><br />";
        }

//        if ($arResult['DISCOUNTS']['sklad_s'][$i] == "")
//        {
//            echo "<span style='font-weight:bold; color:#00A80D; font-size: 15px;'>&nbsp;&nbsp;Цена со скидкой: <span style='font-size: 16px;' >".$type_s_out."</span> <span style='font-weight:bold; font-size: 16px; color: #FA8C00;'>".$arResult['DISCOUNTS']['skid'][$i]." руб.</span></span><br />";
//        }

        
if ($arResult['DISCOUNTS']['comment'][$i] != "")
        {
            echo 
"<span style='font-style: italic; color:#000; font-size: 12px;'>&nbsp;&nbsp;&nbsp;".$arResult['DISCOUNTS']['comment'][$i]."</span><br />";
        }


    }

}

?>


уже хорошо.
простите за наглость:)
может еще подскажите как сделать что бы
скидка под ценой расчитывалась из строки ЦЕНА?
ее как не меняй хоть миллион поставь а скидка снизу все равно не меняется
 
25.08.2014 20:24  
vdm
1. Я что-то пропустил наверно, но уточни плиз, зачем вообще вот таким образом подменять основную цену скидочной? Почему нельзя сразу выгрузить уменьшенную базовую цену на группу из 1С или откуда там она берется?

2. Опять же распиши, о чем речь в "ее как не меняй хоть миллион поставь а скидка снизу все равно не меняется". Скидочная цена, которая "под заказ 5%"? Покажи где что меняешь.
 
26.08.2014 04:32  
aldemko
1. почему таким образом решил подменить основную цену?

потому что
1:
https://olegon.ru/showpost.php?p=183480&postcount=19

2:
https://olegon.ru/showpost.php?p=183572&postcount=34

3:
https://olegon.ru/showpost.php?p=183574&postcount=35

4:
https://olegon.ru/showpost.php?p=183659&postcount=38

5:
https://olegon.ru/showpost.php?p=183676&postcount=51

6:
https://olegon.ru/showpost.php?p=183683&postcount=56




2. Опять же распиши, о чем речь в "ее как не меняй хоть миллион поставь а скидка снизу все равно не меняется". Скидочная цена, которая "под заказ 5%"? Покажи где что меняешь.

код:
[php]<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die();

//echo $arResult['DISCOUNTS']['col'];
/*echo "<pre>";
print_r ($arResult['DISCOUNTS']);
echo "</pre>";*/

$osn_price = $arResult['DISCOUNTS']['price_osn'][''] + 0;//это ноль прибавлен доля того, чтобы из 5000.00 стало 5000 (убрали .00)

if ($arResult['DISCOUNTS']['price_osn'][''] != "")
{
for($i = 0; $i < $arResult['DISCOUNTS']['col']; $i++)
{
if ($arResult['DISCOUNTS']['dnk_s'][$i] == $arResult['DISCOUNTS']['dnk_out'][$i])
{
if ($arResult['DISCOUNTS']['sklad_s'][$i] == "")
{
$osn_price = $arResult['DISCOUNTS']['skid'][$i];
break;
}
}
}

echo '<div class="item_current_price" id="">Цена: '.$osn_price.' руб.</div><br />';
}
else
{
echo '<div class="item_current_price" id="">Цена: по запросу</div><br />';
}

for($i = 0; $i < $arResult['DISCOUNTS']['col']; $i++)//погнали скидки выводить
{
if ($arResult['DISCOUNTS']['dnk_s'][$i] == $arResult['DISCOUNTS']['dnk_out'][$i] && $arResult['DISCOUNTS']['price_osn'][''] != "")
{
$type_s_out = "";
if ($arResult['DISCOUNTS']['type_s'][$i] == "Процент")
{
$type_s_out = $arResult['DISCOUNTS']['val_s'][$i]."%";
}

if ($arResult['DISCOUNTS']['sklad_s'][$i] == "Под заказ")
{
echo "<span style='font-weight:bold; color:#00A80D; font-size: 15px;'>&nbsp;&nbsp;Под заказ, цена со скидкой : <span style='font-weight:bold; font-size: 16px; color: #FA8C00;'>".$arResult['DISCOUNTS']['skid'][$i]." руб.</span></span><br />";
}

if ($arResult['DISCOUNTS']['sklad_s'][$i] == "Владивосток")
{
echo "<span style='font-weight:bold; color:#00A80D; font-size: 15px;'>&nbsp;&nbsp;Цена со скидкой <span style='font-size: 16px;' >".$type_s_out."</span> во Владивостоке: <span style='font-weight:bold; font-size: 16px; color: #FA8C00;'>".$arResult['DISCOUNTS']['skid'][$i]." руб.</span></span><br />";
}

if ($arResult['DISCOUNTS']['sklad_s'][$i] == "Москва")
{
echo "<span style='font-weight:bold; color:#00A80D; font-size: 15px;'>&nbsp;&nbsp;Цена со скидкой <span style='font-size: 16px;' >".$type_s_out."</span> в Москве: <span style='font-weight:bold; font-size: 16px; color: #FA8C00;'>".$arResult['DISCOUNTS']['skid'][$i]." руб.</span></span><br />";
}

// if ($arResult['DISCOUNTS']['sklad_s'][$i] == "")
// {
// echo "<span style='font-weight:bold; color:#00A80D; font-size: 15px;'>&nbsp;&nbsp;Цена со скидкой: <span style='font-size: 16px;' >".$type_s_out."</span> <span style='font-weight:bold; font-size: 16px; color: #FA8C00;'>".$arResult['DISCOUNTS']['skid'][$i]." руб.</span></span><br />";
// }

if ($arResult['DISCOUNTS']['comment'][$i] != "")
{
echo "<span style='font-style: italic; color:#000; font-size: 12px;'>&nbsp;&nbsp;&nbsp;".$arResult['DISCOUNTS']['comment'][$i]."</span><br />";
}


}

}

?>[/php]


ссылка:
http://25gus.ru/catalog/rezinovye_gusenitsy_new/rezinovaya_gusenitsa_800x150x67/?clear_cache=Y

как видим цена уже подменена, через тот вариант который вы мне вчера дали
но ниже есть цена под заказ со скидкой 5% (5% я пока затер, но смысл там в том что там именно скидка 5%)
а если отнять 5% от той цены которая сейчас то там никак не выходит 5%
он берет 5% от оригинальной цены а не от подменной.
в идеале конечно было бы сделать через нормальные скидки, но о проблемах этого добиться немного выше (в 1ом пункте)

вообще во хорошему в этом шаблоне который выше указан
хотелось бы видеть osn_price = то что там сейчас - disc
но как это реализовать пока не понятно
и ниже скидки что бы уже от этой суммы плясали
 
 


Опции темы



Часовой пояс GMT +3, время: 15:45.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.