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

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

Допустим, я хочу отправить другу ссылку на лист размером 250 * 250 см.я мог бы подумать, что ссылка была, возможно: mystore.com / bedding-листов? 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>

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

РЕДАКТИРОВАТЬ: Итак, я смог узнать, как добавить товар в корзину, используя / checkout / cart / add? product = 47 & qty = 1 & super_attribute [496] = 4

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

1 Ответ

4 голосов
/ 26 августа 2009

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

Я надеюсь, что смогу помочь.

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