Перейти к содержанию
GreatGeek

[Решено] Текст на кнопках в зависимости от наличия товара

Рекомендуемые сообщения

Необходимо, чтобы при отсутствии товара менялся текст кнопки с Купить на Предзаказ.

Сделал правки ланга, но это срабатывает только на странице категорий http://greatsoundshop.ru/elektroguitars/.

 

В языковом файле /site.ru/catalog/language/russian

Заменил

$_['button_quote']          = 'Узнать цены';$_['button_zakaz']          = 'Предзаказ' ;

 
 

Не применяется на главной, производителе, страницах тегов.

Какой ланг править, куда копать?

 

 

 

В настройках задано:

 

Заказ при нехватке на складе:
Разрешить клиентам оформлять заказ, если заказываемых товаров на данный момент нет на складе.

 

 

Статус "Нет на складе":
Статус "Нет на складе" по умолчанию при редактировании товара.                                                        В наличии                                                                         Импорт / Таможня                                                                         Нет в наличии                                                                         Ожидание 2-3 дня                                                                         Предзаказ                                                                         Продана                                                     

 

Локализация > Состояние на складе

 

Предзаказ (По умолчанию)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня это было реализованно через vqmod, в файле xml

<file name="catalog/view/theme/*/template/product/category.tpl,catalog/view/theme/*/template/product/search.tpl,catalog/view/theme/*/template/product/manufacturer_info.tpl,catalog/view/theme/*/template/product/special.tpl,catalog/view/theme/*/template/product/compare.tpl">
<operation>
<search position="replace" error="skip"><![CDATA[<input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />]]></search>
<add><![CDATA[ <?php if ($product['stock_qty'] <= 0) { ?>
<input type="button" value="Предзаказ" style="font-size: 15px;" class="button"/>
<?php } else { ?>
<input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" /> <?php } ?>
]]></add>
</operation>
</file>



в перечисленных файлах category.tpl, search.tpl, manufacturer_info.tpl, special.tpl и compare.tpl, при отсутствии в наличии товара кнопка "Купить", будет заменена на "Предзаказ".



Проверенно на ocStore 1.5.5.1.2, но не срабатывает если есть с модуль "FilterPro".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

 

не срабатывает если есть с модуль "FilterPro"

Потому что catalog/view/theme/default/template/module/filterpro_products.tpl не отредактировали

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

antskachkov, Спасибо. Очень помог комментарий.

Переписал вьюсы. В них не было переменной по количеству товара, пришлось переписать и контроллеры.

 

Теперь все работает для главной модуль latest - новые поступления, тегов, категорий, производителей.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

<modification>
	<id>Predzakaz</id>
	<version>1</version>
	<vqmver>2.1.0</vqmver>
	<author>GreatGeek</author>
    <file name="catalog/controller/product/category.php">
        <operation error="skip">
            <search position="after"><![CDATA[
			$this->data['text_limit'] = $this->language->get('text_limit');
			]]></search>
            <add><![CDATA[
			$this->data['button_zakaz'] = $this->language->get('button_zakaz');
			]]></add>
        </operation>
        <operation error="skip">
            <search position="after"><![CDATA[
					'product_id'  => $result['product_id'],
			]]></search>
            <add><![CDATA[
					'quantity'	  => $result['quantity'],
			]]></add>
        </operation>	
    </file>

        <file name="catalog/controller/module/latest.php">
        <operation error="skip">
            <search position="after"><![CDATA[
			$this->data['heading_title'] = $this->language->get('heading_title');
			]]></search>
            <add><![CDATA[
			$this->data['button_zakaz'] = $this->language->get('button_zakaz');
			]]></add>
        </operation>
        <operation error="skip">
            <search position="after"><![CDATA[
					'product_id' => $result['product_id'],
			]]></search>
            <add><![CDATA[
					'quantity'	  => $result['quantity'],
			]]></add>
        </operation>	

    </file>
	
	<file name="catalog/controller/product/manufacturer.php">
        <operation error="skip">
            <search position="after"><![CDATA[
			$this->data['text_limit'] = $this->language->get('text_limit');
			]]></search>
            <add><![CDATA[
			$this->data['button_zakaz'] = $this->language->get('button_zakaz');
			]]></add>
        </operation>
        <operation error="skip">
            <search position="after"><![CDATA[
					'product_id'  => $result['product_id'],
			]]></search>
            <add><![CDATA[
					'quantity'	  => $result['quantity'],
			]]></add>
        </operation>	
    </file>
	
    <file name="catalog/controller/product/search.php">
        <operation error="skip">
            <search position="after"><![CDATA[
			$this->data['text_limit'] = $this->language->get('text_limit');
			]]></search>
            <add><![CDATA[
			$this->data['button_zakaz'] = $this->language->get('button_zakaz');
			]]></add>
        </operation>
        <operation error="skip">
            <search position="after"><![CDATA[
					'product_id'  => $result['product_id'],
			]]></search>
            <add><![CDATA[
					'quantity'	  => $result['quantity'],
			]]></add>
        </operation>	
    </file>
    <file name="catalog/controller/product/compare.php">
        <operation error="skip">
            <search position="after"><![CDATA[
			$this->data['text_empty'] = $this->language->get('text_empty');
			]]></search>
            <add><![CDATA[
			$this->data['button_zakaz'] = $this->language->get('button_zakaz');
			]]></add>
        </operation>
        <operation error="skip">
            <search position="after"><![CDATA[
					'product_id'   => $product_info['product_id'],
			]]></search>
            <add><![CDATA[
					'quantity'   => $product_info['quantity'],
			]]></add>
        </operation>	
    </file>	
	<file name="catalog/controller/product/product.php">
        <operation error="skip">
            <search position="replace"><![CDATA[
			$this->data['button_cart'] = $this->language->get('button_cart');
			]]></search>
            <add><![CDATA[
			if($product_info['quantity'] <= 0){
				$this->data['button_cart'] = $this->language->get('button_zakaz');
			}else{
				$this->data['button_cart'] = $this->language->get('button_cart');
			}
			]]></add>
        </operation>
    </file>

    <file name="catalog/view/theme/default/template/module/latest.tpl">
        <operation error="skip">
            <search position="replace"><![CDATA[
			<div class="cart"><input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" /></div>
			]]></search>
            <add><![CDATA[
		<?php if ($product['quantity'] <= 0) { ?> 
			<div class="cart"><input type="button" value="<?php echo $button_zakaz; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" /></div>
			<?php } else { ?>
			<div class="cart"><input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" /></div>
		<?php } ?>
			]]></add>
        </operation>
    </file>	
	
    <file name="catalog/view/theme/default/template/product/category.tpl">
        <operation error="skip">
            <search position="replace"><![CDATA[
			<input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />
			]]></search>
            <add><![CDATA[
		<?php if ($product['quantity'] <= 0) { ?> 
			<input type="button" value="<?php echo $button_zakaz; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />
			<?php } else { ?>
			<input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />
		<?php } ?>
			]]></add>
        </operation>
    </file>	

	<file name="catalog/view/theme/default/template/product/manufacturer_info.tpl">
        <operation error="skip">
            <search position="replace"><![CDATA[
			<input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />
			]]></search>
            <add><![CDATA[
		<?php if ($product['quantity'] <= 0) { ?> 
			<input type="button" value="<?php echo $button_zakaz; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />
			<?php } else { ?>
			<input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />
		<?php } ?>
			]]></add>
        </operation>
    </file>	

	    <file name="catalog/view/theme/default/template/product/search.tpl">
        <operation error="skip">
            <search position="replace"><![CDATA[
			<input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />
			]]></search>
            <add><![CDATA[
		<?php if ($product['quantity'] <= 0) { ?> 
			<input type="button" value="<?php echo $button_zakaz; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />
			<?php } else { ?>
			<input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />
		<?php } ?>
			]]></add>
        </operation>
    </file>	

	<file name="catalog/view/theme/default/template/product/compare.tpl">
        <operation error="skip">
            <search position="replace"><![CDATA[
			<input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />
			]]></search>
            <add><![CDATA[
		<?php if ($product['quantity'] <= 0) { ?> 
			<input type="button" value="<?php echo $button_zakaz; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />
			<?php } else { ?>
			<input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />
		<?php } ?>
			]]></add>
        </operation>
    </file>	

	<file name="catalog/language/russian/russian.php">
        <operation error="skip">
            <search position="after"><![CDATA[
			$_['button_cart']    	    = 'Купить';
			]]></search>
            <add><![CDATA[
			$_['button_zakaz']    	    = 'Предзаказ';
			]]></add>
        </operation>
    </file>
</modification>

Работает в таком виде на ocStore версия 1.5.5.1.2

Изменено пользователем afwollis
[spoiler] ? не, не слышал

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Потому что catalog/view/theme/default/template/module/filterpro_products.tpl не отредактировали

 

Если его включить в список файлов в которых происходит замена, по условию $product['stock_qty'] <= 0 то все кнопки заменяются на предзаказ, вне зависимости от статуса остатка товара, дальше не колупал, пока отложил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.