我需要在自定义页面(不是产品页面)上有一个“添加到购物车”按钮,基本上是一个可以传递某个产品 ID 并调用 ajax-cart.js 函数“添加”的按钮。
现在,我试过这段代码:
<a class="exclusive_small ajax_add_to_cart_button" title="{l s='Add to cart'}" onclick="ajaxCart.add(26, null, false, null, 1, null)">{l s='Add to cart'}</a>
但是,尽管它确实将具有指定 ID(在这种情况下为 26)的产品添加到购物车中,但它也会触发一个带有 2 个错误的警报框:Product not found,并且This product is no longer available 。
我设法在 CartController.php 中找到了处理这些错误的代码:
protected function processChangeProductInCart()
{
$mode = (Tools::getIsset('update') && $this->id_product) ? 'update' : 'add';
if ($this->qty == 0)
$this->errors[] = Tools::displayError('Null quantity.', !Tools::getValue('ajax'));
elseif (!$this->id_product)
$this->errors[] = Tools::displayError('Product not found', !Tools::getValue('ajax'));
$product = new Product($this->id_product, true, $this->context->language->id);
if (!$product->id || !$product->active)
{
$this->errors[] = Tools::displayError('This product is no longer available.', !Tools::getValue('ajax'));
return;
}
但我不明白它是如何工作的,以及为什么错误会在它正常工作时显示出来。
我做错了什么,这是一个错误吗?