我刚刚安装了Magento Community Edition ver 1.8.0.0(默认设置) .
系统 - >配置 - >销售 - >结账 - >结账选项启用单页结账:是允许访客结账:是
我正在尝试使用查询字符串方法将产品添加到购物车 .
根据我发现的所有资源,这些都是正确的方法:
[store]/checkout/cart/add/product/1/
[store]/checkout/cart/add?product=1&qty=1
但他们没有工作......车仍然是空的 .
经过一段时间,我找到了可行的解决方案:
[store]/checkout/cart/add/product/1/form_key/yu6b5VEzwSU2V7YE/
但是,我希望 not 将 form_key 参数放在网址中 .
在我的案例中不需要此安全功能 .
例如,没有form_key,产品比较工作正常:
[store]/catalog/product_compare/add/product/1/
我们的想法是在其他一些网站上放置一个静态链接(因此动态生成的form_key是未知的),因此如果客户点击它,他会立即被重定向到带有填充购物车的商店 .
是否有可能摆脱form_key参数,仍然能够将产品添加到购物车?如果是这样,那怎么样?
7 回答
我所做的是用自定义模块覆盖Magento
CartController
. 我在里面创建了一个文件: \app\code\local\Namespace\AddProductFromUrl\controllers\Checkout\CartController.php(对于每个magento自定义模块,模块需要具有config.xml并在
etc/modules/
下启用 . 使用您使用的模块更改Namespace
. )这与magento 1.7一样完美,影响极小;如果丢失则会生成
form_key
,就是这样 .这对Magento C 1.8最适合我
这一步不是很复杂!希望这有帮助 .
Use "Add To Cart" link for your product any where on a Magento website::
以下代码可能有用:
From magento 1.8 需要将表单键
$formKey = Mage::getSingleton('core/session')->getFormKey();?>
添加到url这就是我在Magento 1.8.1中的表现
<a href="<?= $this->getAddtoCartUrl($_product, array('qty' => $_price['price_qty'])) ?>">
见http://docs.magentocommerce.com/Mage_Catalog/Mage_Catalog_Block_Product_Abstract.html#getAddToCartUrl
我最后做的是将新的更改与旧代码进行比较,我发现添加到购物车按钮设置为type =“button”并且没有提交 .
更改按钮只需输入=“提交”并且没有其他更改实际上使其工作在[theme] / template / catalog / product / view / addtocart
如果不存在,可能必须从基础文件夹移动
以下内容可与qty集一起使用: