我有一个外部网站,允许客户设计产品,然后使用HTML表单发布这些数据。我需要获取此信息并将此产品(带有自定义选项)添加到我们Magento网站上的客户购物车中,但我不知道该怎么做。
我首先尝试使用网址重定向,但Magento 1.9.X不再支持像这样添加到购物车:
$cart_url = "website.com/checkout/cart/add/product=" . $product_id . "&qty=1" //Include custom options somehow
<form action=<?php echo $cart_url?>>
<input type="hidden" value="pid"> product id </input>
<input type="hidden" value="option1"> custom option 1</input>
</form>
做研究表明,我也可以通过编写自定义控制器或事件/观察者添加项目来添加项目,但是因为我是Magento的新手,我不知道如何触发事件和观察者来自Magento外部的职能。
任何帮助指明我正确方向的人都将不胜感激。
答案 0 :(得分:1)
您必须使用magento创建自定义模块。
创建文件app / etc / MyExtension_AddProductFromUrl.xml
<config>
<modules>
<MyExtension_AddProductFromUrl>
<active>true</active>
<codePool>local</codePool>
<depends>
<Mage_Checkout/>
</depends>
</MyExtension_AddProductFromUrl>
</modules>
</config>
创建文件app / code / local / MyExtension / AddProductFromUrl / etc / config.xml
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<MyExtension_AddProductFromUrl>
<version>0.1.0</version>
</MyExtension_AddProductFromUrl>
</modules>
<frontend>
<routers>
<checkout>
<args>
<modules>
<MyExtension_AddProductFromUrl before="Mage_Checkout">MyExtension_AddProductFromUrl</MyExtension_AddProductFromUrl>
</modules>
</args>
</checkout>
</routers>
</frontend>
</config>
创建文件app / code / local / MyExtension / AddProductFromUrl / controllers / CartController.php
<?php
require_once 'Mage/Checkout/controllers/CartController.php';
class MyExtension_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)) || $formKey != Mage::getSingleton('core/session')->getFormKey()) {
$this->getRequest()->setParams(array('form_key' =>Mage::getSingleton('core/session')->getFormKey()));
}
// do parent actions
parent::addAction();
}
}
?>
另见
答案 1 :(得分:0)
我在1.9.0.1中对此进行了一些争论,但上面的St0iK解决方案使用了以下更改:
1)将模块.xml文件放在app / etc / modules中(而不是app / etc)
2)在控制器文件中 - 我必须删除
_Checkout_
class MyExtension_AddProductFromUrl_Checkout_CartController extends Mage_Checkout_CartController {
到
class MyExtension_AddProductFromUrl_CartController extends Mage_Checkout_CartController {
经过这些小编辑后,它完美无缺。不确定这些是否只是1.9.0.1所必需的,但无论出于何种原因,它们都是。
要将产品添加到购物车,我只使用网址格式
YOURSTORE.com/checkout/cart/add/product/123/qty/1
外部PPC
或SEO
目标网页的绝佳解决方案,需要一个简单的“立即购买”按钮直接放入您的洋红色购物车。