我正在使用magento并创建一个产品查找器。有没有办法可以链接到可配置的项目示例: mystore.com/bedding-sheets
假设我想向朋友发送250 * 250cm的表格链接,我认为该链接可能是: 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>
任何人都知道是否可以创建这样的链接?
编辑:所以我能够找到如何使用 / checkout / cart / add?product = 47&amp; qty = 1&amp; super_attribute [496]将商品添加到购物车= 4
然而,我希望用户预览他们将收到的物品,而不是将其倾倒入购物车。
答案 0 :(得分:4)
如果不对Magento进行更改,就无法做到这一点。
现在假设您想要在网址中预定义选择框的选定选项:
首先,您需要覆盖块 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时出现问题。
我希望我能提供帮助。