我正在创建一个 Magento 类别页面,它允许用户从类别页面添加可配置产品。这超出了 Magento 想要开箱即用的操作方式。
我已经达到了 99.9% 的程度,但是在使用一些最终的 javascript 时遇到了问题。
我已经设法在页面上构建了所有可配置产品,其中包含尺寸属性的选择下拉列表和每个产品的添加到购物车按钮。
选择下拉菜单将->getAddUrl()
方法作为其值。因此,在“添加到购物车”按钮的 onclick 事件中,我使用 window.location(thegetAddUrlLink) 将产品添加到购物车。
不幸的是,由于某些未知原因,这不起作用,它只是将我带到该产品的单个产品页面并要求选择尺寸。这很奇怪,因为如果我从源(从值字段)复制该页面上任何产品的相同链接并将其粘贴到我的浏览器中,那么我会得到预期的结果。
下面是在页面上标记一个产品的示例
<form action="http://www.mysite.com/checkout/cart/add/" method="post" style="display:block; clear:both;">
<p class="shopthislookpageselectsize">Size</p>
<div class="shopthislookpageselectholder">
<select name="select-35900" id="select-35900" class="required-entry shopthislookpageselect">
<option value="http://www.mysite.com/checkout/cart/add/uenc/aHR0cDovL3d3dy5jdWx0dXJla2luZ3MuY29tLmF1L3Nob3AtdGhpcy1sb29rL2Zlc3RpdmFsLWdlYXJzLTEuaHRtbA,,/product/35895/">ONE SIZE</option>
<option value="http://www.mysite.com/checkout/cart/add/uenc/aHR0cDovL3d3dy5jdWx0dXJla2luZ3MuY29tLmF1L3Nob3AtdGhpcy1sb29rL2Zlc3RpdmFsLWdlYXJzLTEuaHRtbA,,/product/22533/">28</option>
</select>
</div>
<button class="button btn-cart" input="" type="hidden" name="product" id="button-35900" value="35900" onclick="addLookItemsToCart(this.id); return false;"><span><span>Add to Cart</span></span></button>
<script type="text/javascript">
function addLookItemsToCart(id){
var clickedId = id;
var theValue = clickedId.replace("button-", "");
var theLink = $j('#select-'+theValue).val() );
window.location = theLink;
};
</script>
</form>
只是重申一下。例如,如果我http://www.mysite.com.au/checkout/cart/add/uenc/aHR0cDovL3d3dy5jdWx0dXJla2luZ3MuY29tLmF1L3Nob3AtdGhpcy1sb29rL2Zlc3RpdmFsLWdlYXJzLTEuaHRtbA,,/product/35895/
从源中复制链接并将其粘贴到浏览器中,我会得到预期的结果。如果我使用 window.location 的 javascript 方法,它会重定向我,要求我确认大小,我不知道为什么。