D9 + Commerce + конвертация валют

Главные вкладки

Аватар пользователя artomas artomas 19 января 2022 в 19:04

Привет.

Работало до недавнего времени, сейчас на смене языка роняет сайт в 5020. Хостер после тщательной проверки ругается на https://www.drupal.org/project/commerce_currency_resolver, который дает кучу запросов, а потом соответственно все падает.

Задача вообще такая.
Юзер записывает цены, они суммируются (https://drupal.ru/node/144390), потом все идет через https://www.drupal.org/project/commerce_webform_order в корзину. А там при смене языка должна происходить конвертация RUB > EURO.

Есть прецеденты, идеи, направления? Ни я, ни хостер не можем найти причины, кроме тех самых десятков запросов, которые я описал выше. Да, конвертация через ЕЦБ включена, если что. Очень нужно решение. Любое другое, но с таким принципом.

Комментарии

Аватар пользователя ivnish ivnish 19 января 2022 в 19:13

Не знаю правильно я понял задачу или нет, но для получения курса валют я писал модуль. Можешь использовать эти курсы для своих расчетов. Вместо commerce_currency_resolver

Аватар пользователя artomas artomas 19 января 2022 в 19:22

Благодарю, я смотрел некоторые конвертеры, но речь все-таки о готовом решении, как резолвер, чтобы не лезть в код итд (я буду разбираться долго, больше с фронтом). И оно же, блин, работало. А задача, если упростить совсем, -- записываются цифры в рублях, а потом в корзине/чекауте отображаются уже в евро. Вот сама задача.

Аватар пользователя artomas artomas 20 января 2022 в 14:26

Неужели нет никаких решений/идей на тему конвертации? Ведь явно популярная в Commerce тема. Или я ошибаюсь относительно масштабов торговли посредством Друпал?

Аватар пользователя VasyOK VasyOK 20 января 2022 в 16:44

"записываются цифры в рублях, а потом в корзине/чекауте отображаются уже в евро" - обычно наоборот.

Как сделать вычисляемое поле в views?
Как в это поле подставить значение курса?

Аватар пользователя artomas artomas 20 января 2022 в 17:07

Ничего не понял в ответе) Вьюсы вообще не используются. Есть значение, которое создается некоторым способом. Это значение нужно разделить на курс и получить значение в евро. Если очень упростить все это.

Аватар пользователя VasyOK VasyOK 20 января 2022 в 17:47

А почему бы их и не использовать для вывода цен на товаре и в корзине?
Тсс, для Адано этот рецепт не говори. Smile

Аватар пользователя artomas artomas 20 января 2022 в 17:50

Да нет товара) Это веб-форм, который генерит стоимость и кидает ее в корзину, дальше стандартно. Но цены нужно собрать в рублях, а потом конвертнуть в евро в корзине. Товар -- сервис. У него даже цена нулевая в вариации. Он просто должен быть, чтобы перенести данные веб-формы в корзину (Коммерс). И, блин, нужна конвертация той цифры в корзине.

Аватар пользователя gun_dose gun_dose 20 января 2022 в 19:04

Каренси ресолвер обычно работает в паре с коммерс иксченджером. И он курс обновляет либо по крону с указанной периодичностью, либо вручную. Там нет и не должно быть никакой кучи запросов, от которой что-то падает.

Аватар пользователя artomas artomas 20 января 2022 в 19:09

Так, уже интереснее. Эксченджер соответственно тоже есть. Менял сервис курсов с ЕЦБ на другой, не помогло. И, самое главное: падает, после первого падения на конвертации, уже на этапе перехода в корзину тупо!!! А импорт я жал всего пару раз, так он сам раз в сутки обновляет.

Аватар пользователя artomas artomas 20 января 2022 в 19:32

Хостер не может помочь, кроме того, что описал выше. Но падает, блин, НЕ явно по причине резолвера, на корзине ведь тоже падает потом. Однако, хостер заявляет, что превышений по тарифу нет, мощности не роняют.

Аватар пользователя artomas artomas 20 января 2022 в 19:42

На локаль еще не переносил тесты. На двух хостах (хостер один) падает по схеме. Падает на 5020 так: пошел в корзину из формы - все гуд, потом выбрал другой язык, который провоцирует конвертацию валюты, - упал. Через пять сек создаю "товар" в форме, добавляется в корзину, жму линк "перейти в корзину" - упал. БЛИН!
Пока нет возможности на другом хосте запустить. Но проблема явно есть. А хостер вообще никогда проблем не давал.

Аватар пользователя gun_dose gun_dose 20 января 2022 в 21:40

А валюта вместе с языком переключается? Там фатал эррор может быть, когда рубли с долларами суммируются. Нужно хитро конвертить всё в одну валюту при пересчётах.

Аватар пользователя artomas artomas 20 января 2022 в 21:46

Переключалась. А теперь роняет тупо.

Есть цифра, она идет в корзину, там нужно конвертировать -- используется резолвер. Долларов вообще не используем.

Аватар пользователя gun_dose gun_dose 20 января 2022 в 22:13

Ну если валюты разные, то там такая тема: в заказе одна валюта, в позициях в каждой может быть своя. Их надо просуммировать, разные валюты при суммировании тригерят ошибку. Плюс валюта заказа тоже тригерит ошибку, если не совпадает с позициями. Именно поэтому вылетает только страница корзины, а на других норм.

Ну и самое главное: в корзину идёт не цифра, а цифра с валютой, и никак иначе.

А если есть ещё и скидки, то вообще веселье безудержное))