25.08.2014 10:18
KirillHome
 
Дальше надо читать в гугле по запросу "IncludeComponent передать параметр" и пробовать, пробовать, пробовать....
Параметр то был передан, а вот как его обработать? Я "с разбега" не разобрался....
25.08.2014 10:22
aldemko
 
а если попробовать, правда я пока не понял как но такую затею


есть код

[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-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>";
}


}

}

?>[/php]


если можно, правда как пока не знаю но может это будет проще чем через доп переменные переменных и так далее

[php]
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++)//погнали скидки выводить
[/php]
как я понял тут написано примерно так
если есть цена, выводим цену, если нет выводим цена по запросу
и ниже пошли перечни скидок и их действия

[php] 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>";
}[/php]


нельзя ли как нибудь сделать к примеру новую скидку через этот pricegd
к примеру skidkacena
и сделать например так

[php]
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++)//погнали скидки выводить
[/php]

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

очень нужно что бы проклятая цена сдвинулась на сумму скидки (((
25.08.2014 10:39
aldemko
 
по идее должно сработать
сюда
[php]if ($arResult['DISCOUNTS']['price_osn'][''] != "")
{
echo '<div class="item_current_price" id="">Цена: '.$osn_price.' руб.</div><br>';[/php]
вместо .$osn_price. пишу например 123

получается цена 123 руб.

но если вставляю переменные с ниже описываемых скидок, он их не воспринимает
и пишет Цена руб.


в чему веду


через справочники настроены скидки которые выводятся сейчас, под ценой.
если в настройки справочника допустим добавить СКИДКА
а в выводе цены прописать что если есть СКИДКА то выводить ее а не osn_price
25.08.2014 10:53
KirillHome
 
Что надо делать - более-менее понятно.
1) Проверить, указанна ли "основная цена".
2) Проверить, что переданный параметр "скидка" - больше нуля.
3) Если ответ на оба вопроса да - то вычесть "скидку" из "основной цены" и вывести полученное значение.

Это всё ерунда.
Вопрос совсем в другом - как получить этот переданный параметр "скидка"???
Действия для нахождения ответа на этот вопрос - "искать и читать" я уже давал выше.
25.08.2014 10:56
aldemko
 
сюда же как то передается (((
но как

[php]
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>";
}


}
[/php]



я уже понял что для подключения стандартных скидок, к измененному компоненту, будет достаточно сложно
я решил попробовать через переделанный справочник
но возникла загвоздка
как заставить верхнюю часть кода
[php]$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>';
}
[/php]

нижнюю
в которой в принципе реализованы скидки для переделанного модуля pricegd
[php]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>";
}


}

}

?>[/php]

подставляя любые значения с нижнего кода в верхний, реакции ноль, как будто они на разных полюсах



обратил внимание на [php]echo '<div class="item_current_price" id="">Цена: '.$osn_price.' руб.</div><br>';[/php]

может можно будет в скидке просто указать
[php]echo '<div class="item_current_price" id="">Цена: 'СКИДКА' руб.</div><br>';[/php]

У меня уже совсем нет сил, и так знаний не много, еще этот кипишь мол скорее скорее, вообще сбивает с толку.
все требуют требуют, а голова все хуже и хуже думает (
25.08.2014 11:12
KirillHome
 
Всё, указанное в данном куске - не передаётся, а вычисляется (берётся из базы).
Не путаем понятия.

Изначально передаётся в pricegd только идентификатор товара "ELEMENT_ID" => $arResult["ID"].
Всё.

Теперь пытаемся передать ещё одно значение "BASE_DISC" = >$disc.
И работать уже с ним.
25.08.2014 11:33
aldemko
 
а если хотя бы временно, попробовать через вычисляется
ну как предыдущие скидки. а потом уже пробовать со стандартной скидкой ?(
просто я не знаю как и эти скидки которые сейчас работают применить к цене (
25.08.2014 11:46
KirillHome
 
А что это за картинка
?

Что за параметры (числа) в ней задаются?

Вообще, что мне кажется.
Был "доработан" функционал стандартной Bitrix-системы.
Возможно, что были доработаны контроллеры с использованием MVC (см ).
Возможно - что и нет.
Сейчас мы без знаний самого Bitrix-а (да и без знаний PHP, если честно) пытаемся что-то сделать.
Возможно (но не обязательно) что-то получится.
Но что-то мне подсказывает, что скорее всего не получится.

Ещё раз совет - искать специалиста по Bitrix, ставить задачу (множественность складов, вариабельность цен по ним, необходимо так же учитывать цены/параметры из "базовой карточки товара"), получить на выходе не только решение (работающий внедрённый модуль), но и документацию.
25.08.2014 11:50
aldemko
 
это скрин из самодельных скидок которые сейчас отображаются под ценой и описаны в этом коде
[php]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>";
}


}

}

?> [/php]
так при помощи настроек


и я подумал почему не создать склад СКИДКА.
что не проблематично конечно,
а проблема в том что бы именно этот склад скидка вывести в основной цене ,вместо основной цены



Кстати там тож не ясность пока что
есть склад Под заказ
и в скрипте мол если Под заказ то выводить то-то и то-то
переименовываю склад в Под заказ123
и в скрипте пишу мол если заказ 123 то выводить то-то и то-то
и не работает ( меняю назад, работает



вот я смог получить новую скидку

указал параметр Наличие на складах (не установлено)


а как в цену его перекинуть (
это значение
[php] 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>";
}[/php]
сюда
[php]if ($arResult['DISCOUNTS']['price_osn'][''] != "")
{
echo '<div class="item_current_price" id="">Цена: '.$osn_price.' руб.</div><br>';
}[/php]
25.08.2014 13:34
aldemko
 
если я его просто меняю, то значение в строке ЦЕНА пропадает
как будто первая часть кода не имеет понятия о второй
Часовой пояс GMT +3, время: 16:54.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.