Товар как услуга для CS-Cart

Модуль заменяет у всей категории надписи «Купить», «Купить в один клик», «Свяжитесь с нами насчет цены» и «Введите свою цену» на любые, заданные администратором.  Также откроется возможность удаления цены.

Настройка на сервере

Шаблон цены price.tpl

design/themes/responsive/templates/common/price.tpl

в 1 строке  добавить хук products:prices_tpl_mw_begin

в последней строке  добавить хук products:prices_tpl_mw_end

Шаблон карточки товара product_data.tpl

design/themes/[название темы]/templates/common/product_data.tpl

если в теме витрины нет, то икать 

design/themes/responsive/templates/common/product_data.tpl

Блок “Старая цена” 

после строки 248 добавить хук products:old_price_begin

после строки 259 добавить хук products:old_price_end

код со скриншота

{hook name="products:old_price_begin"}{/hook}

    {if $show_price_values && $show_old_price}

        <span class="cm-reload-{$obj_prefix}{$obj_id} ty-list-price-block" id="old_price_update_{$obj_prefix}{$obj_id}">

            {hook name="products:old_price"}

            {if $product.discount}

                <span class="ty-list-price ty-nowrap" id="line_old_price_{$obj_prefix}{$obj_id}">{if $details_page}{__("old_price")}: {/if}<span class="ty-strike">{include file="common/price.tpl" value=$product.original_price|default:$product.base_price span_id="old_price_`$obj_prefix``$obj_id`" class="ty-list-price ty-nowrap"}</span></span>

            {elseif $product.list_discount}

                <span class="ty-list-price ty-nowrap" id="line_list_price_{$obj_prefix}{$obj_id}">{if $details_page}<span class="list-price-label">{__("list_price")}:</span> {/if}<span class="ty-strike">{include file="common/price.tpl" value=$product.list_price span_id="list_price_`$obj_prefix``$obj_id`" class="ty-list-price ty-nowrap"}</span></span>

            {/if}

            {/hook}

        <!--old_price_update_{$obj_prefix}{$obj_id}--></span>

    {/if}

{hook name="products:old_price_end"}{/hook}

 

Блок  “Цена” 

после строки 277 добавить хук products:prices_mw_begin

после строки 279 добавить хук products:prices_mw_end

код со скриншота

 {hook name="products:prices_mw_begin"}{/hook}

                    <span class="ty-price{if !$product.price|floatval && !$product.zero_price_action} hidden{/if}" id="line_discounted_price_{$obj_prefix}{$obj_id}">{include file="common/price.tpl" value=$product.price span_id="discounted_price_`$obj_prefix``$obj_id`" class="ty-price-num" live_editor_name="product:price:{$product.product_id}" live_editor_phrase=$product.base_price}</span>

                    {hook name="products:prices_mw_end"}{/hook}

в строке 282 


добавить хук products:enter_your_price_begin

и  products:enter_your_price_end 

чтобы получилось так

код со скриншота

 <span class="ty-price-curency"><span class="ty-price-curency__title">

                     {hook name="products:enter_your_price_begin"}{/hook}

                    {__("enter_your_price")}:

                     {hook name="products:enter_your_price_end"}{/hook}

                    </span>

в строке 295


добавить хук products:contact_us_begin

и  products:contact_us_end 

чтобы получилось так

код со скриншота

  <span class="ty-no-price">

                    {hook name="products:contact_us_begin"}{/hook}

                    {__("contact_us_for_price")}

                    {hook name="products:contact_us_end"}{/hook}

                    </span>

Блок  “Вы экономите”

после строки 334 добавить хук products:you_save_begin

после строки 350 добавить хук products:you_save_end

код со скриншота

{capture name="list_discount_`$obj_id`"}

{hook name="products:you_save_begin"}{/hook}

    {if $show_price_values && $show_list_discount}

        {assign var="prc" value="discount_prc"}

        {if $product.list_discount_prc > 0}

            {assign var="prc" value="list_discount_prc"}

        {/if}

        <span class="cm-reload-{$obj_prefix}{$obj_id}" id="line_discount_update_{$obj_prefix}{$obj_id}">

        <input type="hidden" name="appearance[show_price_values]" value="{$show_price_values}" />

        <input type="hidden" name="appearance[show_list_discount]" value="{$show_list_discount}" />

            {if $product.discount}

                <span class="ty-list-price ty-save-price ty-nowrap {if $product.$prc <= 25}color1{/if} {if $product.$prc > 25 && $product.$prc <= 50}color2{/if} {if $product.$prc > 50}color3{/if}" id="line_discount_value_{$obj_prefix}{$obj_id}">{__("you_save")}: {include file="common/price.tpl" value=$product.discount span_id="discount_value_`$obj_prefix``$obj_id`" class="ty-list-price ty-nowrap"}</span>

        {elseif $product.list_discount}

            <span class="ty-list-price ty-save-price ty-nowrap {if $product.$prc <= 25}color1{/if} {if $product.$prc > 25 && $product.$prc <= 50}color2{/if} {if $product.$prc > 50}color3{/if}" id="line_discount_value_{$obj_prefix}{$obj_id}"> {__("you_save")}: {include file="common/price.tpl" value=$product.list_discount span_id="discount_value_`$obj_prefix``$obj_id`"}</span>

            {/if}

            <!--line_discount_update_{$obj_prefix}{$obj_id}--></span>

    {/if}

{hook name="products:you_save_end"}{/hook}

{/capture}

Блок “Описание электронного товара” 

после строки 556 добавить хук products:edp_description_mw_begin

после строки 570 добавить хук products:edp_description_mw_end

код со скриншота

 {hook name="products:edp_description_mw_begin"}{/hook}

    {if $show_edp && $product.is_edp == "Y"}

        <p class="ty-edp-description">{__("text_edp_product")}.</p>

        <input type="hidden" name="product_data[{$obj_id}][is_edp]" value="Y" />

    {/if}

  {hook name="products:edp_description_mw_end"}{/hook}

Кнопка “Купить в один клик”

design/themes/responsive/templates/addons/call_requests/hooks/products/add_to_cart.post.tpl

изменить на 

код со скриншота

{if !$hide_form 

    && $addons.call_requests.buy_now_with_one_click == "Y" 

    && ($auth.user_id 

        || $settings.General.allow_anonymous_shopping == "allow_shopping"

    ) && $show_buy_now|default:true

}

 {if $product.button_buy_one_click}{assign var="but_text" value="{$product.button_buy_one_click}"}

 {else}{assign var="but_text" value="{__("call_requests.buy_now_with_one_click")}"}{/if}

    {include file="common/popupbox.tpl"

        href="call_requests.request?product_id={$product.product_id}&obj_prefix={$obj_prefix}"

        link_text=$but_text

        text=$but_text

        id="call_request_{$obj_prefix}{$product.product_id}"

        link_meta="ty-btn ty-btn__text ty-cr-product-button"

        content=""

    }

{/if}

Настройки модуля

  1. Перейдите во вкладку «Модули» → «Управление модулями»

  1. Выберите модуль из списка

  1. Введите лицензионный ключ

  1. Сохраните данные, чтобы не потерять их при переустановке модуля

  1. Если нужно, скройте цену всех товаров магазина с нулевой ценой, у которых в поле «Действие при нулевой цене» стоит «Разрешить добавить товар в корзину» 

  1. Перейдите в «Витрины». Отметьте витрину, для которой будет применён модуль, ИНАЧЕ НИЧЕГО РАБОТАТЬ НЕ БУДЕТ (не для Multi-Vendor, Multi-Vendor PLUS)

  1. Сохраните настройки модуля

Функционал

  1.  Зайдите во вкладку модуля «Товар как услуга»

  1. Нажмите кнопку «Добавить»

3.1. Выберите категорию. При необходимости примените ко всем подкатегориям

3.2. Если нужно, скройте цену всех товаров в категории

3.3. Если в магазине разрешена продажа цифровых товаров, то появятся дополнительные настройки: 

  • «Цифровой товар» — применится ко всем товарам в категории
  • Поле «Поставка цифрового товара»

3.4. Выберите форму налога

3.5. В поле «Действие при нулевой цене» выберите один из трёх вариантов:

  • Не разрешать добавлять товар в корзину
  • Разрешить добавить товар в корзину
  • Попросить покупателя ввести цену

3.6. В поле «Действие при отсутствии товара в наличии» выберите один из трёх вариантов:

  • Не выбрано (надпись «Нет в наличии»)
  • «Предзаказ»
  • «Подписаться на уведомления»

3.7. Также можно изменить надписи «Купить», «Купить в один клик», «Свяжитесь с нами насчёт цены», «Введите свою цену»

3.8. Нажмите кнопку «Создать»