Можно ли создать настраиваемый продукт с несколькими типами продуктов?
-
12-12-2019 - |
Вопрос
Я пытаюсь выяснить, возможно ли создать настраиваемый продукт, содержащий как виртуальный, так и загружаемый продукт.Идея заключалась в том, что если это виртуальный продукт, я бы добавил ссылку на страницу его учетной записи с некоторой дополнительной информацией.Если продукт можно загрузить, обычный процесс будет происходить через страницу учетной записи или по электронной почте.
После игры с серверной частью Magento это кажется невозможным из коробки, но, возможно, есть класс, который я мог бы расширить или что-то в этом роде без особых трудностей?
Решение
Насколько я знаю, вы можете добавлять простые, виртуальные и загружаемые продукты внутри настраиваемого продукта.
Ждать..ты поверил мне?Если я скажу: «Я величайший человек во всем мире…», ты мне поверишь?Я думаю, вы не будете.Потому что в ближайшее время ты мне ответишь..«Докажи это... если ты так думаешь».Хорошо.В этом-то и дело.Поэтому я обязан доказать свое самое первое утверждение :-)
Чтобы доказать это, я хочу, чтобы вы изучили Mage_Catalog
модуль.Это один из самых сложных модулей, которые я когда-либо видел!В нем можно найти целую вселенную.Теперь мы просто хотим взглянуть на очень небольшую часть этого гигантского модуля.
Файл : app\code\core\Mage\Catalog\etc\config.xml
<catalog>
<product>
<type>
....
<configurable translate="label" module="catalog">
<label>Configurable Product</label>
<model>catalog/product_type_configurable</model>
<price_model>catalog/product_type_configurable_price</price_model>
<composite>1</composite>
<allow_product_types>
<simple/>
<virtual/>
</allow_product_types>
<index_priority>30</index_priority>
<price_indexer>catalog/product_indexer_price_configurable</price_indexer>
</configurable>
...
</type>
</product>
</catalog>
В этом разделе определяется конфигурация для конкретного типа продукта.См. узел allow_product_type
и внутри него вы можете видеть, что он содержит простые и виртуальные типы продуктов.Это означает, что magento по умолчанию позволяет использовать простой и виртуальный продукт внутри настраиваемого продукта.Подождите, вы не можете найти загружаемый продукт в этом списке, верно?Окей..прежде чем ругать меня..Я хочу, чтобы вы заглянули в раздел конфигурации продукта, который можно загрузить (внутри Mage_Downloadable
модуль)
Файл : app\code\core\Mage\Downloadable\etc\config.xml
<catalog>
<product>
<type>
....
<configurable>
<allow_product_types>
<downloadable/>
</allow_product_types>
</configurable>
...
</type>
</product>
</catalog>
См. добавление загружаемых продуктов через этот файл конфигурации.Хотя загружаемый продукт добавляется через другой файл конфигурации, magento достаточно смел, чтобы это отследить.(Это другая история.Я не хочу в эту сферу лезть).
Теперь самое главное, если детский продукт, являющийся настраиваемым продуктом, имеет required_option
свойство установлено в yes
, то это не позволит вам создать настраиваемый продукт.
Я не собираюсь приводить доказательства этого пункта.Потому что сейчас я не знаю никаких доказательств этой точки зрения.и у меня сейчас нет времени искать какие-либо доказательства.:-) Но эксперт так говорит...
доказательство 1 - Дэвид Мэннерс, доказательство 2-Сара, proxiBlue , доказательство 3 - Роб
Надеюсь, это поможет