Невозможно сделать это без внесения изменений в Magento.
Теперь предположим, что вы хотите предварительно определить выбранные параметры поля выбора в URL:
Сначала вам нужно перезаписать блок Mage_Catalog_Block_Product_View_Options_Type_Select . (Я предполагаю, что вы уже создали свой собственный модуль - если у вас его нет и вам нужна помощь, дайте мне знать)
Для этого вам нужно добавить эту запись в ваш config.xml:
<config>
<global>
<blocks>
<catalog>
<rewrite>
<product_view_options_type_select>YourCompany_YourModuleName_Product_View_Options_Type_Select</product_view_options_type_select>
</rewrite>
</catalog>
</blocks>
</global>
</config>
Затем добавьте класс YourCompany_YourModuleName_Product_View_Options_Type_Select , который необходимо расширить Mage_Catalog_Block_Product_View_Options_Type_Select .
В этом классе вы должны перезаписать функцию getValuesHtml () . Для начала вы должны скопировать его из класса, который вы расширяете.
В этой функции вы должны найти это foreach
:
foreach ($_option->getValues() as $_value) {
$priceStr = $this->_formatPrice(array(
'is_percent' => ($_value->getPriceType() == 'percent') ? true : false,
'pricing_value' => $_value->getPrice(true)
), false);
$select->addOption(
$_value->getOptionTypeId(),
$_value->getTitle() . ' ' . $priceStr . ''
);
}
После этого вы добавляете:
$standardValue = $this->getRequest()->getParam($_option->getid());
//Mage::log("Option Name: "$_option->getid());
$select->setValue($standardValue);
Это должно сделать это. К сожалению, я не могу проверить это прямо сейчас. Итак, дайте мне знать, если у вас возникнут проблемы.
Я не уверен, что $_option->getid()
- правильное имя для вашего параметра. Но вы можете попытаться это выяснить, если вы прокомментируете одну строку, которую я закомментировал для вас в листинге кода сверху.
В вашей установке Magento откройте файл var / log / system.log , где теперь должно появиться имя ваших параметров URL.
Теперь, когда вы знаете, как называть параметры URL, вы можете делать именно то, что вам нужно: url / to / product? Option_id = value_id
PS: Если вы спросите себя, почему мы создаем новый класс, а не меняем его непосредственно в ядре Magento: мы делаем это для предотвращения проблем при обновлении до новой версии Magento.
Я надеюсь, что смогу помочь.