Была такая задача: для товаров, у которых нулевое количество, прятать кнопку «Купить» при включенной функции «Действие при отсутствии товара в наличии —> Предзаказ», потому что по факту некоторые товары можно было найти, а некоторые — никак, а если человек положил предзаказанный товар в корзину и уже его оплатил, проблем не оберешься, если товар не найти.
Вместо кнопки «Купить» решили изменить кнопку «Купить в один клик» и сделать её для товаров с нулевым количеством кнопкой «Предзаказ».
Решено примерно так:
-
Файл design\themes*ваша тема*\templates\common\product_data.tpl — выводим кнопку «Купить» только для товаров, что есть в наличии:
{if $product.amount > 0 } {include file="buttons/add_to_cart.tpl" but_id=$_but_id but_name="dispatch[checkout.add..`$obj_id`]" but_role=$but_role block_width=$block_width obj_id=$obj_id product=$product but_meta=$add_to_cart_meta} {/if}
-
Файл design\themes*ваша тема*\templates\addons\call_requests\hooks\products\add_to_cart.post.tpl — выводим кнопку и форму «Предзаказ»:
{if $product.amount > 0 } {include file="common/popupbox.tpl" href="call_requests.request?product_id={$product.product_id}&obj_prefix={$obj_prefix}" link_text=__("call_requests.buy_now_with_one_click") text=__("call_requests.buy_now_with_one_click") id="call_request_{$obj_prefix}{$product.product_id}" link_meta="ty-btn ty-btn__tertiary ty-cr-product-button cm-tooltip" content="" } {else} {include file="common/popupbox.tpl" href="call_requests.request?product_id={$product.product_id}&obj_prefix={$obj_prefix}" link_text=__("call_requests.preorder_with_one_click") text=__("call_requests.preorder_with_one_click") id="call_request_{$obj_prefix}{$product.product_id}" link_meta="ty-btn ty-btn__preorder ty-cr-product-button cm-tooltip" content="" } {/if}
Получилось, вроде, неплохо. Естественно, нужно добавить немного CSS для ty-btn__preorder, но тут уж на вкус на цвет…
Но есть одна проблема, был бы очень признателен, например @ecomlabs за помощь.
Нужно при создании записи об обратном звонке в cscart_call_requests дописать к имени пользователя, которое он введет, слово «предзаказ», чтоб было видно при просмотре заявок на обратный звонок, примерно так:
Сделать это, вроде, можно где-то в app\addons\call_requests\funk.php
Вопрос: где? Условие то же: если количество товара не больше нуля, добавляем к введенному пользователем имени переменную __preorder_mark.