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 パラメータを省略することもできます。; を含める必要はありません。(セミコロン)。
次のようにして、複数の製品を複数の数量で 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 を変更する必要があります。
注: 「名前空間」を独自の名前空間 (会社名や自分の名前など) に置き換えます。
etc/modules/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>