Последние темы


shopkeeper 3 - на странице товара не пересчитывает цену по курсу

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

  • @Andchir
    Ещё раз повторю проблему. Всё считает правильно. В корзине цена правильная. Неправильная только на странице товара. Цена не умножается на 2.5. (Возможно я не совсем понятно объясняю, прошу прощения)

    Вот это из инструкции shopkeeper. Сделал точно так же

    Если на сайте только одна валюта, но цены товаров указаны в другой валюте, нужно добавить в настройках системы параметр «shk3.currency_selected» (Пространство имен «shopkeeper3») со значением - номер валюты (от еденицы), в которую нужно переводить.
    Например, если у товаров указана цена в долларах, а нужно выводить в рублях:
    shk3.currency_default = 3 (USD)
    shk3.currency_selected = 1 (руб.)
    3 - номер валюты USD в списке курсов валют.
  • Я всё так и понял. Начинать надо как раз со страницы товара, а не с корзины. Я написал, что курсы у вас указаны не правильно. Если убрать все параметры, цена по курсу пересчитывается правильно?

    Цена не умножается на 2.5.

    Она и не должна умножаться, должна делиться. Читайте выше.

  • @Andchir
    Проверил. Убрал вариации. Если задать цену товара 26, то на странице пересчитывает по курсу и получается 65. В корзине тоже самое. Т.е. всё считает правильно. Вся проблема с выводом цены в этой строке

    <span class="shk-price">[[*price:shk_curr_rate:num_format]]</span>
    

    Если я укажу евро - 1, а рубль 0.44, то это тоже самое что 2.5 к 1. Так что математически нет смысла менять курс.
    Тем более я проверил, без вариаций всё считает правильно на двух страницах. Помогите 😩
    Может можно как-то эту строку через сниппет умножить на 2.5? Ведь в евро считает верно.

  • Если я укажу...

    Если вы не хотите делать так как вам советуют, то зачем просите помощи? Делайте сами.

    Ещё момент, умножение вроде должно работать, а вот сложение нет. Нужно проверить, чтобы среди параметров не было цен со сложением. Про сложение цен параметров с мультивалютностью где-то здесь на форуме есть тема.

  • @Andchir
    почему не хочу? Сделал как вы сказали. Я же написал, ничего не изменилось.
    Среди параметров нет сложения. Есть поле Price. В нем список параметров с ценами. d1==10||d2==20 и тд. А все остальные параметры только умножают.

    <span class="shk-price">[[*price:shk_curr_rate:num_format]]</span>
    

    Может есть способ как-то умножить это поле на 2.5?

  • почему не хочу? Сделал как вы сказали. Я же написал, ничего не изменилось.

    Где вы написали, что сделали как я сказал?

    Среди параметров нет сложения. Есть поле Price. В нем список параметров с ценами. d1==10||d2==20 и тд.

    Вы противоречите сами себе.

    Может есть способ как-то умножить это поле на 2.5?

    Есть. https://docs.modx.com/revolution/2.x/making-sites-with-modx/customizing-content/input-and-output-filters-(output-modifiers)

    [[*price:mpy=`2.5`]
    
  • @Andchir

    [[*price:mpy=`2.5`]
    

    выдаёт значение - 0.
    Я ещё раз прошу прощения если не так выразился. Но я попробовал сделать по вашему совету. Результата это не дало.
    И почему я себе противоречу? Поле Price называется диаметр. В нём можно выбрать диаметр к которому привязана соответствующая цена. Остальные параметры производят только умножение.
    0_1566906778443_6b50a656-f211-48b0-b721-d875908b32d0-image.png

  • И почему я себе противоречу? Поле Price называется диаметр.

    Потому что не важно как называется поле, если в его значении список значений, которые предполагается суммировать. Цена в любом случае должна быть не списком, а полем с одной цифрой. Если вам цифра не нужна, то можно поставить значение 0. Если не переводить валюту по курсу, то всё работает?

    При суммировании цена переводиться не будет т.к. для этого нужно все цены параметра переводить в шаблоне (чанке) этого списка.

    http://forum.modx-shopkeeper.ru/topic/1332/мультивалютность-param_edit-пересчет-доп-параметров-с-ценой-в-текущую-валюта/3

  • @Andchir
    Если не переводить по курсу, то всё работает.
    По поводу списка в поле price, то Вы правы. Задал одно значение и считает с учётом курса как надо.

  • @Andchir
    Большое спасибо. Главное что нашёл причину и сразу же нашёл решение. Возможно не самое правильное, но работает как нужно.
    В поле Price ввожу значение "1". Создал дополнительное поле диаметр. И вместо того чтобы складывать как было до этого, я умножаю на нужное число.
    К примеру: D=80==26.46||D=100==29.22 (было), D=80==*26.46||D=100==*29.22 (сделал).
    Поле price где единица я просто скрою.

 

Последние комментарии

  • @Yiliy

    то есть без имени

    Видимо потому что у вас отключено, а в XML алиаса я не увидел

    //автоматически генерировать псевдоним (alias) при импорте //false - выключено; true - генерировать с переводом в транслит; 'notranslit' - генерировать без перевода в транслит. $cf_config['imp_autoalias'] = false;

    Читать далее
  • Y

    Проблема была оказывается в том, что оно не видело
    <Title>pagetitle</Title>
    Я поменял на
    <Title><item>pagetitle</item></Title>
    и все импортировалось успешно но теперь в каталогах вместо url ресурсов отображается /сайт/каталог/.html
    то есть без имени и после перехода на страницу товара появляется ошибка 403

    Читать далее
  • M

    Поменялся дизайн.
    Новая корзина, всплывающие окна и прочие фишки сверстаны. Нужно переподключить, разобраться с возможным конфликтом JS.
    Что, где и как лежит -- покажу.

    Скайп mas_hate

    Читать далее
  • В $cf_config['imp_xml_structure'] должен быть XML, который в файле повторяется. Также нужно настроить
    параметр $cf_config['imp_xml_itemsparent_path']. Покажите полный файл, который импортируете.

    Читать далее