Тема: Как добавить еще одну цену в карточку товара.

Добрый день! Подскажите пожалуйста как мне добавить еще одну цену в карточку товара. У нас в рознице другие цены. И мы хотели на сайте еще отразить цены розничных точек. В базу выгружаются цены розницы с Мойсклад. Вот и хотел попросить помощь, какую функцию надо написать в шаблоне product.tpl чтобы отобразить эти цены?

Повысить оценку Понизить оценку

Re: Как добавить еще одну цену в карточку товара.

Вообще лучше всего для этого подходит модуль Филиалы в городах и редакции Мегамаркет. Он всё сделает за Вас. В, если нужно, что-то совсем простое то:

{$product->getCost('Название нужной цены')}

Например:

{$product->getCost('Розничная цена')}

Re: Как добавить еще одну цену в карточку товара.

Спасибо Александр! Все получилось.

Повысить оценку Понизить оценку

4 Отредактировано Владимир (13.01.2017 17:52:38)

Re: Как добавить еще одну цену в карточку товара.

Есть еще вопрос. А возможно еще чтобы цена менялась в зависимости от комплектации?
Ато у одного товара может быть несколько комплектаций и цены разные.

Повысить оценку Понизить оценку

Re: Как добавить еще одну цену в карточку товара.

И еще один вопрос: Есть каталог ucenka, возможно сделать чтобы в нем не показывало эту цену?
Чтобы была проверка. Если товары в каталоге ucenka, тогда не выводить эту строку. А в остальных показывать.

Повысить оценку Понизить оценку

6 Отредактировано Закусило Александр (13.01.2017 18:16:14)

Re: Как добавить еще одну цену в карточку товара.

Владимир пишет:

Есть еще вопрос. А возможно еще чтобы цена менялась в зависимости от комплектации?
Ато у одного товара может быть несколько комплектаций и цены разные.

Конечно, но для этого надо будет писать свой JS. Либо модифицировать jquery.changeoffer.js. А у комплектаций всегда можно вытянуть в шаблон все вседения, в том числе и массив по изменению цены.

Re: Как добавить еще одну цену в карточку товара.

Сейчас строку реализовали пока так: <div class="cenart">Цена на точках за наличный расчет: <strong>{$product->getCost('Цена продажи')} тг.</strong></div>

Повысить оценку Понизить оценку

Re: Как добавить еще одну цену в карточку товара.

Понятно. Подскажите тогда хотя бы с комплектациями.

Повысить оценку Понизить оценку

Re: Как добавить еще одну цену в карточку товара.

Ой. Похоже я не понял. Получается и то и то у меня не получится реализовать?

Повысить оценку Понизить оценку

Re: Как добавить еще одну цену в карточку товара.

Владимир пишет:

И еще один вопрос: Есть каталог ucenka, возможно сделать чтобы в нем не показывало эту цену?
Чтобы была проверка. Если товары в каталоге ucenka, тогда не выводить эту строку. А в остальных показывать.

Да. У товара т.к. он является объектом \Catalog\Model\Orm\Product, то можно использовать его методы. Например

{if $product->inDir('id категории или псевдоним')}
    //Я тут, что-то делаю
{/if}

Re: Как добавить еще одну цену в карточку товара.

Ой. Похоже я не понял. Получается и то и то у меня не получится реализовать?

Цена не берётся из воздуха. Если Вы меняете комплектацию, то цена меняется у основной цены. Вы же встроите свой набор цен. Соответственно на клиенте(в браузере пользователя), можно поменять цену только через javascript. Напишите его и всё поменяйте.
Либо поставьте себе мегамаркет и пользуйтесь филиалами в городах.

Re: Как добавить еще одну цену в карточку товара.

Я использую облачный вариант. Я бы с удовольствием использовал Мегамаркет.

Повысить оценку Понизить оценку

Re: Как добавить еще одну цену в карточку товара.

У меня не хватает знаний по написанию javascript. Я бы обратился в поддержку, ну там очередь и ждать долго. А эта функция нам срочновато нужна. Может можно к Вам обратится помочь решить данную проблему, через платную поддержку?

Повысить оценку Понизить оценку

Re: Как добавить еще одну цену в карточку товара.

Я придумал как решить Вашу задачу.
В шаблоне с комплектациями product_offers.tpl, есть строки со скрытими input полями, которые хранят сведения с информацией для смены комплектаций. Также в них есть аттрибут data-change-cost. Так вот когда происходит смена комплектаций, то из этого поля берутся сведения для автозамены. Например.

data-change-cost='{ ".offerBarcode": "{$offer.barcode|default:$product.barcode}", ".myCost": "{$product->getCost(null, $key)}", ".lastPrice": "{$product->getOldCost($key)}"}'

Здесь ключи это классы в которых будут заменены сведения. Т.е. мы можем добавить наши цены тудаже и всё будет работать.


data-change-cost='{ ".offerBarcode": "{$offer.barcode|default:$product.barcode}", ".myCost": "{$product->getCost(null, $key)}", ".lastPrice": "{$product->getOldCost($key)}", ".myCost2": "{$product->getCost('СЮДА ВПИСАТЬ НАЗВАНИЕ ЦЕНЫ ДЛЯ ЗАМЕНЫ', $key)}"}'

Ну и соответственно значение цены в шаблоне должно быть заключено например в span с классом .myCost2 и т.д.

Так что RS всё предусмотрел.

Re: Как добавить еще одну цену в карточку товара.

Добрый день Александр!
В шаблоне product_offers.tpl, я заменил две строки

data-change-cost='{ ".offerBarcode": "{$offer.barcode|default:$product.barcode}", ".myCost": "{$product->getCost(null, $key)}", ".lastPrice": "{$product->getOldCost($key)}"}'

на

data-change-cost='{ ".offerBarcode": "{$offer.barcode|default:$product.barcode}", ".myCost": "{$product->getCost(null, $key)}", ".lastPrice": "{$product->getOldCost($key)}", ".myCost2": "{$product->getCost('Цена продажи', $key)}"}'

И в шаблоне product.tpl, добавил строку

<div class="cenart">Цена на точках за наличный расчет: <span class="myCost2 {$product->getCost('Цена продажи')}"> тг.</span></div>

Цена не выводится. Подскажите что я сделал не так.

Повысить оценку Понизить оценку

Re: Как добавить еще одну цену в карточку товара.

Делал и так:

<div class="cenart">Цена на точках за наличный расчет: <span class="myCost2">{$product->getCost('Цена продажи')}</span> тг.</div>

Цена выводится но не меняется с изменениями комплектаций.

Повысить оценку Понизить оценку

Re: Как добавить еще одну цену в карточку товара.

И еще вопрос: Изменения внесенные в шаблон product_offers.tpl, затрутся после обновления?

Повысить оценку Понизить оценку

18 Отредактировано Закусило Александр (16.01.2017 20:58:16)

Re: Как добавить еще одну цену в карточку товара.

Владимир пишет:

Делал и так:

<div class="cenart">Цена на точках за наличный расчет: <span class="myCost2">{$product->getCost('Цена продажи')}</span> тг.</div>

Цена выводится но не меняется с изменениями комплектаций.

data-change-cost везде заменили??? Их там просто несколько.

Re: Как добавить еще одну цену в карточку товара.

Владимир пишет:

И еще вопрос: Изменения внесенные в шаблон product_offers.tpl, затрутся после обновления?

Ну если Вы работаете в отклонированной теме и у Вас отклонированный шаблон product_offers.tpl, то нет.

Re: Как добавить еще одну цену в карточку товара.

Правильно вот так

<div class="cenart">Цена на точках за наличный расчет: <span class="myCost2">{$product->getCost('Цена продажи')}</span> тг.</div>