Как получить URL-адрес настраиваемого элемента в Magento?

Я использую magento и создаю продукт. Есть ли способ связи с настраиваемым примером: mystore.com/bedding-sheets

скажем, я хочу отправить другу ссылку на лист размером 250 * 250 см, я бы подумал, что ссылка может быть: mystore.com/bedding-sheets?attribute496=1 (за исключением того, что это не так)

<dl class="last"> <dt><label>Size<span class="required"> *</span></label></dt> <dd class="last"> <select class="required-entry super-attribute-select" id="attribute496" name="super_attribute[496]"> <option value="">Choose option...</option> <option value="4">200*200cm</option> <option value="3">200*230cm</option> <option value="2">200*250cm</option> <option value="1">250*250cm</option></select> </dd> </dl> 

Кто-нибудь знает, можно ли создать такую ​​ссылку?

EDIT: Так что я смог узнать, как добавить элемент в свою корзину, используя / checkout / cart / add? Product = 47 & qty = 1 & super_attribute [496] = 4

однако я хочу, чтобы пользователь получил предварительный просмотр предмета, который они получили, вместо того, чтобы просто сбрасывать его в корзину.

Это невозможно сделать без внесения изменений в 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.

Надеюсь, я смогу помочь.