Magento 1.9添加参数添加到购物车网址

时间:2015-03-04 14:36:01

标签: php magento

我正在进行Magento 1.9安装,它必须有一个Direct Checkout以及Add To Cart按钮。两者之间的主要(也是唯一)差异是直接结账链​​接应该跳过购物车并在点击时重定向到结帐。 我使用了this code来获取功能,正如您所看到的,a comment适用于此处。

“我需要做的就是将参数/ checkout /放到网址上”。 这让我发疯了。

所以这是Observer文件中的检查

if (Mage::app()->getRequest()->getParam('checkout')) {

看起来很容易,但我一直在打破网络,在网上搜索“addParam”的答案,以便这种检查返回true。

这是我想要此功能的表单(动作):

<form action="<?php echo $this->helper('checkout/cart')->getAddUrl($_product) ?>checkout/" method="post" id="product_addtocart_form" <?php if($_product->getOptions()): ?> enctype="multipart/form-data"<?php endif; ?>

正如你所看到的,我将/ checkout /手动添加到url,当你查看浏览器指向的url时,它会起作用,即:

<form action="example.com/checkout/cart/add/uenc/aHR0cDovL2JrZm9vdHdlYXIuaHlwZXJub2RlLmlvL21hbi9yb2NvLmh0bWw,/product/5651/form_key/Zs9uAOj8oTuQFAbj/checkout/" method="post" id="product_addtocart_form" <input="" type="hidden" name="sid" value="checkout">

但它不起作用,看起来检查功能没有“看到”它。 我认为这有一个最简单的答案,但正如我所说,它现在已经让我好几天了。有什么想法吗?

如果“checkout”在被调用的url中,可能会将if语句更改为某些内容吗?

2016年更新:在同样的情况下,我发现自己需要根据跟踪原因更改此解决方案。我现在所做的(与this question相关)是使用默认的“添加到购物车”按钮,并添加另一个(默认)按钮,其中包含jQuery onClick函数,该按钮将url设置为正确的“添加到购物车” - 带有所选变量产品选项的URL。 使用AJAX我检查URL是否被正确调用,如果是,则重定向到checkout。一个非常简单的解决方案。

1 个答案:

答案 0 :(得分:3)

您的问题是您正在检查已解析的参数以获取密钥&#39;结帐&#39;但Magento实际上已将该参数存储为0 => 'checkout'。我建议改用这个代码:

模板

$this->getAddToCartUrl($_product, array('checkout' => true))

观察

$observer->getRequest()->getParam('checkout')

确保在测试时清除/禁用缓存。