Единицы измерения
Использование единиц измерения в Атрибутах и Значениях атрибутов обеспечивает точность, удобство и универсальность придавая вашему магазину солидность. Особенно важно единообразие отображения единиц измерения во всех товарах, фильтрах и других страницах вашего магазина.
Вы можете управлять стилем отображения единиц измерения на фронтенде или разместить единицы измерения непосредственно в названии Атрибута или Значения с помощью инструмента.
Единообразие единиц измерения может быть обеспечено если они выбираются из единого списка.
Таблица единиц измерения
Вы можете добавлять, изменять, удалять единицы измерения. Выбор действия осуществляется кнопками справа от поля выбора.
Unit manage |
Форма редактирования позволяет изменять полную и краткую запись единицы измерения, а так же учитывает локализацию для мультиязычных магазинов.
![]() |
---|
Unit form |
Миграция SQL
Вы можете воспользоваться готовыми таблицами, куда записаны наиболее распрстраненные единицы измерения. Таблицы входят в комплект поставки.
Импортируйте таблицы oc_unit.sql
и oc_unit_description.sql
в вашу БД.
Вполне вероятно, что идентификаторы языка могут не совпасть. В поставляемых таблицах language_id
для Русского языка равен 1
, для Английского равен 3
.
Если после миграции вы испытываете проблемы с каким-либо языком, то необходимо выяснить, какие идентификаторы применяются на вашем сайте, после чего можете выполнить последовательность SQL запросов, предварительно заполнив карту маппинга.
-- Создаем временную таблицу маппинга
CREATE TEMPORARY TABLE language_mapping (
old_id INT,
new_id INT
);
-- Заполняем таблицу нужными значениями
INSERT INTO language_mapping (old_id, new_id) VALUES
(1, 2),
(3, 1),
(4, 5); -- и другие соответствия, которые у вас могут быть
-- Создаем временную копию данных
CREATE TEMPORARY TABLE temp_unit_description AS
SELECT unit_id,
COALESCE((SELECT new_id FROM language_mapping WHERE old_id = language_id), language_id) AS language_id,
title,
unit
FROM oc_unit_description;
-- Очищаем основную таблицу
TRUNCATE TABLE oc_unit_description;
-- Загружаем данные с исправленными language_id
INSERT INTO oc_unit_description
SELECT * FROM temp_unit_description;
-- Удаляем временные таблицы
DROP TEMPORARY TABLE language_mapping;
DROP TEMPORARY TABLE temp_unit_description;
В данном примере:
- Русский был первым в таблице, будет вторым в БД;
- Английский был третьим в таблице, будет первым в БД;
- Китайский был четвертым в таблице, будет пятым в БД;
Имейте в виду.
Таблицы имеют префикс oc_
. Если это не подходит для вашей БД, исправьте самостоятельно.