Помощь Кастомизация детальной карточки товара (Битрикс: Бизнес)

  • Автор темы Автор темы California
  • Дата начала Дата начала

California

Разрушитель (V)
Сообщения
196
Реакции
143
Баллы
3 244
Всем доброго времени суток, получилось так, что именно на этом форуме мне стало интересно знакомиться с Битриксом (на решениях Аспро).
Имею лицензии на 1с-битрикс и Аспро Максимум (также тестирую на коробочных версиях "максимум").

На одном из сайтов (шаблон аспро) увидел интересую кастомизацию детальной карточки товара.
Дело в том, что от самого шаблона доступна только установка на выбор. У товара, который "Нет в наличии", будет либо кнопка "Под заказ", либо просто "Подписаться на товар".
А на этом сайте замутили кастом сразу на три формы (подписка на снижение цены, уведомить о поступлении + под заказ).
Хотелось бы попросить у Вас помощи, как дойти до редактирования шаблона детальной карточки, в каком именно месте нужно добавить подобное?
Слежка за снижением цены - точно скрипт кастомный, но вот подписка - стандартная форма от шаблона аспро..
Прям для чайников хотелось бы чтобы "разжевали".

Также приложу линк на какой-то скрипт вывода кнопки (следить за ценой).
GitHub скрипт

1624719343813.png
1624719648966.png
 
/bitrix/templates/aspro_max/components/bitrix/catalog.element (путь к шаблонам детальной карточки)
В моем случае разбираюсь с первым шаблоном детальной карточки (main)
 
/bitrix/templates/aspro_max/components/bitrix/catalog.element (путь к шаблонам детальной карточки)
В моем случае разбираюсь с первым шаблоном детальной карточки (main)
Ключевая проблема Аспро, это Аспро !
и использовании своих компонентов для вывода информации внутрь которого они уже подключают компоненты битрикса.
 
Ключевая проблема Аспро, это Аспро !
и использовании своих компонентов для вывода информации внутрь которого они уже подключают компоненты битрикса.
Не знаете.. можно ли без кастома с уведомлением о снижении.. просто вывести две кнопки под заказ и поступление?
По идеи это две формы от самих аспро.. но в шаблоне предусмотрено только одна кнопка на выбор.
 
Не знаете.. можно ли без кастома с уведомлением о снижении.. просто вывести две кнопки под заказ и поступление?
По идеи это две формы от самих аспро.. но в шаблоне предусмотрено только одна кнопка на выбор.
Опубликйте код компонентов пожалуйста. Посмотрим что сделать можно
 
Опубликйте код компонентов пожалуйста. Посмотрим что сделать можно

Там есть блок Buttons, как я понял, именно там находятся кнопки, но также замечал пометки в других строчках о них.
<?//buttons?>
<?$this->SetViewTarget('PRODUCT_SIDE_INFO', 500);?>
<div class="js-prices-in-side product-action">
<div class="buy_block">
<?if($arResult["OFFERS"] && $showCustomOffer):?>
<div class="sku_props">
<?if (!empty($arResult['OFFERS_PROP'])){?>
<div class="bx_catalog_item_scu wrapper_sku" id="<? echo $arItemIDs["ALL_ITEM_IDS"]['PROP_DIV']; ?>">
<?foreach ($arSkuTemplate as $code => $strTemplate){
if (!isset($arResult['OFFERS_PROP'][$code]))
continue;
echo str_replace('#ITEM#_prop_', $arItemIDs["ALL_ITEM_IDS"]['PROP'], $strTemplate);
}?>
</div>
<?}?>
<?$arItemJSParams=CMax::GetSKUJSParams($arResult, $arParams, $arResult, "Y");?>
<script type="text/javascript">
var <? echo $arItemIDs["strObName"]; ?> = new JCCatalogElement(<? echo CUtil::PhpToJSObject($arItemJSParams, false, true); ?>);
</script>
</div>
<?endif;?>
<?if($arResult["SIZE_PATH"]):?>
<div class="table_sizes muted777 font_xs">
<span>
<?=CMax::showIconSvg("cheaper", SITE_TEMPLATE_PATH.'/images/svg/catalog/sizestable.svg', '', '', true, false);?>
<span class="animate-load dotted" data-event="jqm" data-param-form_id="TABLES_SIZE" data-param-url="<?=$arResult["SIZE_PATH"];?>" data-name="TABLES_SIZE"><?=GetMessage("TABLES_SIZE");?></span>
</span>
</div>
<?endif;?>
<?if(!$arResult["OFFERS"]):?>
<div class="counter_wrapp list big clearfix ">
<?//if(($arAddToBasketData["OPTIONS"]["USE_PRODUCT_QUANTITY_DETAIL"] && $arAddToBasketData["ACTION"] == "ADD") && $arAddToBasketData["CAN_BUY"]):?>
<?=\Aspro\Functions\CAsproMax::showItemCounter($arAddToBasketData, $arResult["ID"], $arItemIDs, $arParams, 'md', '', true, true);?>
<?//endif;?>

<div id="<? echo $arItemIDs["ALL_ITEM_IDS"]['BASKET_ACTIONS']; ?>" class="button_block <?=(($arAddToBasketData["ACTION"] == "ORDER" /*&& !$arResult["CAN_BUY"]*/) || !$arAddToBasketData["CAN_BUY"] || !$arAddToBasketData["OPTIONS"]["USE_PRODUCT_QUANTITY_DETAIL"] || ($arAddToBasketData["ACTION"] == "SUBSCRIBE" && $arResult["CATALOG_SUBSCRIBE"] == "Y") ? "wide" : "");?>">
<!--noindex-->
<?=$arAddToBasketData["HTML"]?>
<!--/noindex-->
</div>
</div>
<?if(isset($arResult['PRICE_MATRIX']) && $arResult['PRICE_MATRIX']) // USE_PRICE_COUNT
{?>
<?if($arResult['ITEM_PRICE_MODE'] == 'Q' && count($arResult['PRICE_MATRIX']['ROWS']) > 1):?>
<?$arOnlyItemJSParams = array(
"ITEM_PRICES" => $arResult["ITEM_PRICES"],
"ITEM_PRICE_MODE" => $arResult["ITEM_PRICE_MODE"],
"ITEM_QUANTITY_RANGES" => $arResult["ITEM_QUANTITY_RANGES"],
"MIN_QUANTITY_BUY" => $arAddToBasketData["MIN_QUANTITY_BUY"],
"SHOW_DISCOUNT_PERCENT_NUMBER" => $arParams["SHOW_DISCOUNT_PERCENT_NUMBER"],
"ID" => $arItemIDs["strMainID"],
)?>
<script type="text/javascript">
var <? echo $arItemIDs["strObName"]; ?>el = new JCCatalogOnlyElement(<? echo CUtil::PhpToJSObject($arOnlyItemJSParams, false, true); ?>);
</script>
<?endif;?>
<?}?>
<?if($arAddToBasketData["ACTION"] !== "NOTHING"):?>
<?=\Aspro\Functions\CAsproMax::showItemOCB($arAddToBasketData, $arResult, $arParams, false, '');?>
<?endif;?>
<?elseif($arResult["OFFERS"] && $arParams['TYPE_SKU'] == 'TYPE_1'):?>
<div class="offer_buy_block buys_wrapp" style="display:none;">
<div class="counter_wrapp list clearfix"></div>
</div>
<?elseif($arResult["OFFERS"] && $arParams['TYPE_SKU'] != 'TYPE_1'):?>
<span class="btn btn-default btn-lg slide_offer type_block"><i></i><span><?=\Bitrix\Main\Config\Option::get("aspro.max", "EXPRESSION_READ_MORE_OFFERS_DEFAULT", GetMessage("MORE_TEXT_BOTTOM"));?></span></span>
<?endif;?>
</div>
</div>
<?$this->EndViewTarget();?>
<?endif;?>

<div class="adaptive-block">
<?=$productDiscount;?>
<?=$productPrice;?>
<?$productForms = str_replace(' id=', ' data-id=', $productForms);?>
<?=$productForms;?>

<div class="" itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<meta itemprop="price" content="<?=($arResult['MIN_PRICE']['DISCOUNT_VALUE'] ? $arResult['MIN_PRICE']['DISCOUNT_VALUE'] : $arResult['MIN_PRICE']['VALUE'])?>" />
<meta itemprop="priceCurrency" content="<?=$arResult['MIN_PRICE']['CURRENCY']?>" />
<link itemprop="availability" href="http://schema.org/<?=($arResult['PRICE_MATRIX']['AVAILABLE'] == 'Y' ? 'InStock' : 'OutOfStock')?>" />
<?
if($arDiscount["ACTIVE_TO"]){?>
<meta itemprop="priceValidUntil" content="<?=date("Y-m-d", MakeTimeStamp($arDiscount["ACTIVE_TO"]))?>" />
<?}?>
<link itemprop="url" href="<?=$arResult["DETAIL_PAGE_URL"]?>" />
</div>

<div class="js-prices-in-item"></div>
<div class="js-services-in-item"></div>

<?=$productCalcDelivery;?>
<?=$sendGiftForm;?>
<?=$productHelpText;?>
<?=$productProps;?>
</div>

<?$frame->end();?>
</div>
 
Никто не сталкивался с проблемой работы шаблона, после изменения внешнего вида каталога сайта (кастомизация превьюшек и карточек товара). Сами внесли корректировки, после чего весь сайт поехал просто по швам (не в плане верстки, а в плане корректной работы компонентов и вывода разделов каталога сайта.
 
кстати, то что касается выводов ряда блоков - есть в докуменатции от аспро - внимательней изучайте, работа происходит в касстомных класс рядом с основными /bitrix/modules/aspro.(shablon)
 
Назад
Верх