Похоже на боль. На самом деле это огромная модификация, поэтому я бы вернулся и проверил требование, так как это изгибает структуру в направлениях, в которые она не хочет идти. Я включаю основные подводные камни, которые я могу видеть ниже для справки.
Хорошим вариантом для хранения параметров вместе с заказом (и, возможно, для изменения цены продукта на основе выбранных параметров) является использование пользовательских параметров в самих продуктах каталога. Они будут сохранены вместе с заказом и уже отображаются во всех инструментах администратора для обработки заказов.
Это оставляет нежелательную задачу добавления их на страницу корзины. Они обычно добавляются на страницу просмотра каталога, поэтому, если вы не хотите, чтобы они были на этой странице, вам необходимо удалить их из шаблона представления. При этом вам, вероятно, также понадобится установить дополнительные параметры, чтобы Magento позволял пользователю добавлять товар в корзину.
Затем измените шаблоны «линии» корзины, чтобы они отображали любые параметры продуктов, пока они находятся в корзине. Вы не упоминаете, нужно ли пользователю что-либо щелкать, чтобы сохранить свои параметры, поэтому, по-видимому, вам нужно будет взломать JS, чтобы сохранить параметры всякий раз, когда в поле возникает событие размытия. Создайте новый контроллер / действие, которое принимает значение параметра и cart_item_id
и сохраняет его обратно в корзину. Пока опции являются опциональными, Magento должен позволять вам сохранять их по одному. Если требуется обновление цен, обязательно перезагрузите итоги.
Если опции действительно являются необязательными, это должно охватывать большинство ваших баз. Если они действительно необходимы, вам нужно добавить проверку к кнопкам «оформить заказ», которая вручную проверяет, все ли параметры учтены, и в противном случае возвращает пользователя обратно в корзину.
Далее изображение. В очень оптимистичном мире клиент не требует, чтобы наложения текста выполнялись правильным шрифтом. Это наивное предположение. Скорее всего, вам нужно будет создать еще один контроллер / действие, которое захватит уже выбранные параметры продукта и отобразит изображения текста. Абсолютно разместите эти элементы над изображением продукта на своем окне наложения, и вы получите хорошее приближение к изображению.
Это на самом деле не исчерпывающий список изменений, необходимых для этой страницы корзины, и если вы не опытный разработчик Magento, я бы вообще не решился на это. Это вообще возможно, пропустите этот подход и оставьте параметры на странице продукта.
Последнее замечание: атрибуты не являются хорошим способом решения этой проблемы. Каждый продукт может иметь только одно значение для атрибута, поэтому каждый клиент не сможет настроить свои продукты.
Надеюсь, это поможет!
Спасибо,
Джо