На самом деле у тебя не получится обойтись простой табличкой, так как здесь матрица. У тебя произвольное кол-во материалов и по ним произвольное кол-во вариантов толщины. Каждый из этих вариантов имеет свою итоговую цену. То есть если у тебя 5 материалов и по каждому из них 5 вариантов толщины, в итоге у тебя получится 25 вариантов цен.
Материалы тебе однозначно надо заводить в единый справочник, чтобы их можно было выбирать из выпадающего списка. А вот толщину и стоимость надо указывать вручную.
Варианты здесь фэншуйные лезут различные, вплоть до собственного кастомного ТВ-поля, но наиболее простое и быстрое решение будет такое (во всяком случае я бы так сделал):
1. Создаем справочник материалов (лучше всего документами, по типу как у нас валюты сделаны. Если пока для них не будет публичных страниц, можно их в контекст spravochniki занести. А когда будут, тогда перенести в основной контекст).
2. Создаем TV-поле выпадающий список, чтобы можно было выбирать материал.
3. Создаем MIGX-табличку с тремя колонками:
— Выпадающий список материалов (просто указываешь какое TV-поле юзать)
— Числовое поле Толщина
— Числовое поле Цена.
4. В getdata-процессоре в функции afterIteration парсим JSON-строку из ТВшки и набиваем в массив цен для дальнейшего использования.
В редакторе манагер набивает сколько угодно строчек Материал-Толщина-Цена. На совести манагера, чтобы для одного материала не было повторений, но если очень надо, можно написать проверку в плагин на сохранение документа. Строчки сортировать можно, так что всегда можно держать все материалы рядышком.
Тут один жирный минус: JSON не позволит на уровне запросов выполнять поиск по материалам, толщине и ценам, но в таком случае ты можешь просто поступить: на сохранение документа парсить данные ТВшки и фигачить данные в собственную таблицу для удобства запросов. А интерфейс будет на миге. Другой вариант: просто это дело перевести на MigxDB и сразу данные сохранять в отдельные таблицы.