WebAsyst, устанавка по умолчанию разных валют для администратора и пользователей |
|||
01.01.1970 в 03:00 | NARDO | Теги: WebAsyst, Shop-Script, валюта, установка валют, вебасист |
|||
|
Tweet |
Всем доброго времени суток. В сегодняшней статье поговорим о
проблеме, которая актуальна для большинства бивалютных магазинов на платформе WebAsyst
Shop-Script версий от 280-й, и более
поздних, а именно о том какие есть инструменты для установки по умолчанию разной
валюты для администраторов магазина так
и для покупателей.
Современные реалии таковы, что нестабильность на валютном рынке многих стран
напрямую влияет на цену импортируемого товара, соответственно продавец хочет
иметь гибкий и простой инструмент для корректировки стоимости товара в максимально
удобный и простой способ. Проблема в том, что функция валюты в WebAsyst
Shop-Script реализована несколько непродуманно для постсоветских реалий. В
версиях 280 и выше установленная валюта по умолчанию является таковой как для
админки так и для веб морды, доступной пользователям и клиентам магазина. У
этого есть два основных недостатка. Первый - это возможность оформлять заказ в
нескольких валютах, а это в принципе противоречит законодательству Украины. Второй
– это невозможность быстрой корректировки курса гривны по отношению к доллару,
если последний не является основной валютой. Идеальным решением была бы
возможность для администратора использовать валюту по умолчанию доллар, а для
клиента валютой по умолчанию выступала бы гривна. Но, к сожалению, базовый функционал
не предоставляет такого решения. Можно конечно обратиться к программисту, что
бы переписал код, но я думаю те, кто читают данный блог хотят решение простое и
самое главное халявное ;)
Выход есть, представляю два рабочих решения, оба не идеальны,
но в случае бивалютной системы функционируют полноценно и без сбоев. Примеры
решения проблемы даны для задачи, когда внутренней основной валютой по
умолчанию является доллар, а основной для клиентов должна стать гривна.
Убедитесь что в админке у вас установлено две валюты, гривна и доллар. Валютой
по умолчанию является доллар. Для начала
найдем файл «class.currency.php», его нам необходимо будет редактировать, он
расположен в директории «published\SC\html\scripts\classes\»
Обзор решений:
- Решения подойдет для тех, кто хочет, что бы была
возможность оформлять заказы и выставлять счет как в гривне, так и в долларе.
Для начала перейдите в БД вашего магазина в таблицу SC_currency_types и определите CID для будущей основной валюты клиентской части сайта, в моем случае ГРН, у меня это цифра «3» (у вас может отличаться). В таблице SC_settings создайте новую строку где settings_value соответствует значению «3», settings_constant_name соотвествует значение «CONF_TWO_CURRENCY». Далее в файле «class.currency.php» ищем строку «$defaultCurrencyInstance->loadByCID(CONF_DEFAULT_CURRENCY);» ее изменяем на «$defaultCurrencyInstance->loadByCID(CONF_TWO_CURRENCY);». Все )
Недостаток этого решения в том что в админке магазина сайта цены будут отображаться по умолчанию в долларах, но подпись возле них будет UAH или ГРН (в зависимости как вы обозвали вашу валюту при создании) Это стоит помнить при редактировании цен и при выставлении нового товара. - Это решение более элегантное, но в данном случае
оформлять заказы и выставлять счет можно только в той валюте, которая является
основной для клиентской части сайта.
Находим строку «$selectedCurrencyInstance->loadByCID($customerEntry->CID);» и меняем на «$selectedCurrencyInstance->loadByCID(3);» где «3» это ваш CID для гривны. Далее находим строку «$selectedCurrencyInstance = Currency::getDefaultCurrencyInstance();» и меняем на «$selectedCurrencyInstance->loadByCID(3);» где «3» это ваш CID для гривны. В админке все валюты отображаются корректно. Также при помощи CSS вы можете скрыть отображения доллара в клиентской части сайта, оставив только гривну, но при этом в админке у вас будет основная валюта доллар, которая позволит оперативно корректировать курс, а значит и все цены на вашем сайте.
Повторюсь,
эти оба решения не являются идеальными. Особенность стандартного движка в том,
что функционал позволяющий разделять основные валюты для морды и админки не
предусмотрен разработчиками и требует для корректной и удобной работы прямо с
админки с такой функцией значительной переработки большого объема кода.
Скачать пример
blog comments powered by Disqus