Перейти к основному содержимому
Версия: v3.1.1

Единицы измерения

Использование единиц измерения в Атрибутах и Значениях атрибутов обеспечивает точность, удобство и универсальность придавая вашему магазину солидность. Особенно важно единообразие отображения единиц измерения во всех товарах, фильтрах и других страницах вашего магазина.

Вы можете управлять стилем отображения единиц измерения на фронтенде или разместить единицы измерения непосредственно в названии Атрибута или Значения с помощью инструмента.

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

Таблица единиц измерения​

Вы можете добавлять, изменять, удалять единицы измерения. Выбор действия осуществляется кнопками справа от поля выбора.

Удаление или создание единиц
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_. Если это не подходит для вашей БД, исправьте самостоятельно.