我是新手,经过广泛的研究和探索,我能够弄清楚以下内容:
要将产品添加到购物车,我可以使用
?/结帐/购物车/添加产物= 76 &安培;数量= 1
申请折扣码我可以使用
/结帐/购物车/ couponPost?COUPON_CODE = WQ9D-XXXX
它的代码位于文件中:
/的public_html /应用程序/代码/本地/法师/结帐/控制器/ -
我想在一个链接中添加产品并应用折扣代码,例如:
/ checkout / cart / couponPost?product = 76 & qty = 1 & coupon_code = WQ9D-XXXX
OR
/结帐/购物车/添加产物= 76 &安培;数量= 1 &安培; COUPON_CODE = WQ9D-XXXX
OR 还有其他方法吗?
有没有办法让这个工作?想法是将此链接嵌入到时事通讯中,因此只需点击一下,用户就可以将产品添加到购物车并获得折扣。
我尝试从$this->couponPostAction();
拨打function addAction()
,反之亦然,但不起作用!
答案 0 :(得分:5)
在不修改代码的情况下使其工作,
“http://www.example.com/checkout/cart/add?Product=76&qty;=1&return;_url=http://www.example.com/index.php/checkout/cart /couponPost?coupon_code=WQ9D-XXXX&return;_url=http://www.example.com/checkout/cart/'
必须对return_url进行编码。
请参阅:http://www.magentocommerce.com/boards/viewthread/296763/
答案 1 :(得分:5)
rukpat的答案在Magento 1.8中不起作用。一旦扩展了CartController的addAction方法,就需要像这样格式化URL和查询字符串:
http://www.example.com/checkout/cart/add?product=76&qty=1&return_url=http://www.example.com/index.php/checkout/cart/couponPost?coupon_code=WQ9D-XXXX
您还可以省略最后一个return_url参数。没有必要包括; (分号)。
您还可以通过以下操作将多个产品添加到包含多个数量的网址:
http://www.example.com/checkout/cart/add?product=76&related_product=28,28,28&return_url=http://www.example.com/index.php/checkout/cart/couponPost?coupon_code=WQ9D-XXXX
因此,只需添加& related_product = 28,28,28并对产品ID进行多次引用,即可添加该项目的多个数量。不是很优雅,但它有效。
当然,扩展CartController的addAction方法会更好。
为了使此解决方案能够在Magento 1.8及更高版本中运行,您需要像这样修改CartController:
注意:替换'命名空间'使用您自己的命名空间(公司名称或您的姓名等)。
等/模块/ Namespace_AddProductFromUrl.xml
<?xml version="1.0"?>
<config>
<modules>
<Namespace_AddProductFromUrl>
<active>true</active>
<codePool>local</codePool>
</Namespace_AddProductFromUrl>
</modules>
</config>
应用程序/代码/本地/命名空间/ AddProductFromUrl /控制器/结帐/ CartController.php
<?php
require_once 'Mage/Checkout/controllers/CartController.php';
class Namespace_AddProductFromUrl_Checkout_CartController extends Mage_Checkout_CartController {
# overloaded addAction
public function addAction()
{
// generate form_key if missing or invalid
if ( ! ($formKey = $this->getRequest()->getParam('form_key', null)) or $formKey != Mage::getSingleton('core/session')->getFormKey())
{
$this->getRequest()->setParams(array('form_key' => Mage::getSingleton('core/session')->getFormKey()));
}
// do parent actions
parent::addAction();
}
}
应用程序/代码/本地/命名空间/ AddProductFromUrl的/ etc / config.xml中
<config>
<frontend>
<routers>
<checkout>
<args>
<modules>
<Namespace_AddProductFromUrl before="Mage_Checkout">Namespace_AddProductFromUrl_Checkout</Namespace_AddProductFromUrl>
</modules>
</args>
</checkout>
</routers>
</frontend>
</config>
答案 2 :(得分:0)
我可以使用Namespace_AddProductFromUrl验证上面的Gaz代码是否适用于1.8
此外,如果您的产品是捆绑产品,则必须使用此格式网址:
http://domain.com/en/checkout/cart/add?product=24&qty=1&bundle_option[2]=4&bundle_option[3]=8