Ответить Новая тема Новый опрос 
 Изменение отображения товара с кол-вом = 0
test0
Новичок
Сообщений: 17
Регистрация: 31-03-2011


03-10-2011 00:02
Есть товары кол-во которых в магазине = 0. Заказ таких товаров разрешен.
И в каталоге они отображаются так же как и товары с кол-вом > 0. Для большей степени понятности и повышения юзерфрендли понадобилось у товаров с кол-вом = 0 писать вместо "Доступен" - "Нет в наличии", а вместо "В корзину" - "Заказать".

И таким образом человек при заказе товара будет точно знать что сегодня его нет.

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


Конечно хорошо бы иметь еще оповещение пользователей для таких случаев. Что типа товар появился в наличии, бла-бла-бла...
Но это уже немного другая история...
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
geomagi
Профессионал
Сообщений: 1327
Регистрация: 12-11-2010


03-10-2011 02:55
Объясните по подробнее что Вы хотите сделать, сказать честно я ничего не понял.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
test0
Новичок
Сообщений: 17
Регистрация: 31-03-2011


04-10-2011 05:08
Задачу я решил таки, по крайней мере сейчас все так как надо, за исключением мелочей.

Поясняю что именно было не так:

Общие настройки:
- Разрешен заказ товаров с нулевым остатком на складе

Предположим есть 2 товара:
- Первый
Доступен для заказа
Наличие: больше нуля
Есть кнопка: Добавить в корзину
Есть надпись: Доступен

- Второй
Доступен для заказа
Наличие: ноль
Есть кнопка: Добавить в корзину
Есть надпись: Доступен

Проблема: в магазине они выглядят одинаково.
А хотелось бы: что бы была разница в отображении.

Чего я добился:
- Первый
Доступен для заказа
Наличие: больше нуля
Есть кнопка: Добавить в корзину (зеленая кнопка)
Есть надпись: Доступен (зеленый текст)

- Второй
Доступен для заказа
Наличие: ноль
Есть кнопка: Предзаказ (серая кнопка)
Есть надпись: Нет в наличии (красный текст)

Итого: Клиент при заказе товара знает что товара сейчас нет, но его можно заказать и для его доставки понадобится больше времени. Что в противном случае может привести к лишним разговорам с менеджером по телефону или к разочарованию при получении товаров.

Если кому интересно, то сделал я это так:
Нужен файл - product-list.tpl (все изменения были в сроках 42-53)
Оригинальный код:
Код:
<div>
                    {if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)}<span class="price" style="display: inline;">{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}</span><br />{/if}
                    {if isset($product.available_for_order) && $product.available_for_order && !isset($restricted_country_mode)}<span class="availability">{if ($product.allow_oosp || $product.quantity > 0)}{l s='Available'}{elseif (isset($product.quantity_all_versions) && $product.quantity_all_versions > 0)}{l s='Product available with different options'}{else}{l s='Out of stock'}{/if}</span>{/if}
                </div>
                {/if}
                {if ($product.id_product_attribute == 0 || (isset($add_prod_display) && ($add_prod_display == 1))) && $product.available_for_order && !isset($restricted_country_mode) && $product.minimal_quantity == 1 && $product.customizable != 2 && !$PS_CATALOG_MODE}
                    {if ($product.allow_oosp || $product.quantity > 0)}
                        <a class="button ajax_add_to_cart_button exclusive" rel="ajax_id_product_{$product.id_product|intval}" href="{$link->getPageLink('cart.php')}?add&amp;id_product={$product.id_product|intval}{if isset($static_token)}&amp;token={$static_token}{/if}" title="{l s='Add to cart'}">{l s='Add to cart'}</a>
                    {else}
                            <span class="exclusive">{l s='Add to cart'}</span>
                    {/if}
                {/if}

Измененный код:
Код:
<div>
                    {if isset($product.show_price) && $product.show_price && !isset($restricted_country_mode)}<span class="price" style="display: inline;">
                        {if !$priceDisplay}{convertPrice price=$product.price}
                        {else}{convertPrice price=$product.price_tax_exc}
                        {/if}</span><br />
                    {/if}
                    {if isset($product.available_for_order) && $product.available_for_order && !isset($restricted_country_mode)}
                        {if ($product.quantity > 0)}<span class="availability">{l s='Available'}</span>
                        {elseif (isset($product.quantity_all_versions) && $product.quantity_all_versions > 0)}<span class="outofstock">{l s='Product available with different options'}</span>
                        {else}<span class="outofstock">{l s='Out of stock'}</span>
                        {/if}
                    {else}{l s='Out of stock'}
                    {/if}
                </div>
                {/if}
                {if ($product.id_product_attribute == 0 || (isset($add_prod_display) && ($add_prod_display == 1))) && $product.available_for_order && !isset($restricted_country_mode) && $product.customizable != 2 && !$PS_CATALOG_MODE}
                    {if ($product.quantity > 0)}
                        <a class="button ajax_add_to_cart_button exclusive" rel="ajax_id_product_{$product.id_product|intval}" href="{$link->getPageLink('cart.php')}?add&amp;id_product={$product.id_product|intval}
                        {if isset($static_token)}&amp;token={$static_token}
                        {/if}" title="{l s='Add to cart'}">
                        {l s='Add to cart'}
                        </a>
                    {elseif ($product.quantity < 1)}
                        <a class="button ajax_add_to_cart_button preorder" rel="ajax_id_product_{$product.id_product|intval}" href="{$link->getPageLink('cart.php')}?add&amp;id_product={$product.id_product|intval}
                        {if isset($static_token)}&amp;token={$static_token}
                        {/if}" title="{l s='Preorder'}">
                        {l s='Preorder'}
                        </a>
                    {/if}
                {/if}


Основным изменением стало удаление переменной: $product.allow_oosp
Я так и не смог найти за что она отвечает и удалил ее на свой страх и риск, но после этого условия начали работать так как надо.
Кстати если кто знает что она делает прошу подсказать.

Далее добавил или отредактировал условия на проверку кол-ва товара и создал свои выводы для разных ситуаций. Ну и добавил новую надпись к кнопке "Предзаказ"

Вроде все. Я не силен в престе и в смарти кстати тоже, но потихоньку постигаю :)

Если есть более простое решение, то это было только к лучшему.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
test0
Новичок
Сообщений: 17
Регистрация: 31-03-2011


04-10-2011 05:11
Ну и конечно же чего бы еще хотелось:
- Возможность подписаться на новости о появлении товара в наличии (уведомление на почту или еще как).
- Смена зеленого кружочка в корзине на желтый или серый в корзине.

Вторым пунктом буду заниматься в ближайшее время
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос