gpt4 book ai didi

php - 在自定义 php 中创建一个新的 Prestashop 购物车

转载 作者:可可西里 更新时间:2023-11-01 13:38:59 25 4
gpt4 key购买 nike

在 Prestashop 中,我创建了一个自定义表单,其中显示了包含所有产品的列表,用户可以填写相应的数量。通过提交表单,我清除了购物车并用新值填充它,最后重定向到结帐页面。

一切正常,但前提是购物车已经存在。如果购物车是空的 (cart_id==null),我无法添加产品。我尝试了多种方法来创建 $cart,但我没有成功。

我没有得到任何异常,代码执行没有错误,只是在结帐页面的最后,购物车仍然是空的;我重复一遍,只有当购物车已经空了的时候。如果是装有产品的推车,那么这个过程就是完美的!

我将不胜感激。

这是我的小型 Controller ,它从表单中获取产品和数量并将它们添加到购物车中:

include('../../config/config.inc.php');
include('../../header.php');

// Filling the array of products
$products = array();
foreach ($_POST as $key => $value)
if (substr($key, 0, 9) === 'quantity_')
$products[substr($key, 9)] = $value;

// First of all, we remove all products
$prods = $cart->getProducts();
foreach ($prods as $prod)
$cart->deleteProduct($prod['id_product']);

// Adding the new products
foreach ($products as $product_id => $quantity)
if ($quantity > 0)
$cart->updateQty($quantity, $product_id);

// Redirecting to the checkout page.
header("Location: " . $_POST['redirect']);
exit();`

提前致谢!

最佳答案

我遇到了同样的问题,Prestashop 在以多种不同方式调用 CartCore 时无法正确创建新购物车 - 上下文或直接调用都没有成功。

从别人那里找到这个 gem over here :

// get cart id if exists
if ($this->context->cookie->id_cart)
{
$cart = new Cart($this->context->cookie->id_cart);
}

// create new cart if needed
if (!isset($cart) OR !$cart->id)
{
$cart = new Cart();
$cart->id_customer = (int)($this->context->cookie->id_customer);
$cart->id_address_delivery = (int) (Address::getFirstCustomerAddressId($cart->id_customer));
$cart->id_address_invoice = $cart->id_address_delivery;
$cart->id_lang = (int)($this->context->cookie->id_lang);
$cart->id_currency = (int)($this->context->cookie->id_currency);
$cart->id_carrier = 1;
$cart->recyclable = 0;
$cart->gift = 0;
$cart->add();
$this->context->cookie->id_cart = (int)($cart->id);
$cart->update();
}

现在这对我有用。如您所见,它比仅询问上下文以检索或创建新购物车更深入一些。呵呵。

关于php - 在自定义 php 中创建一个新的 Prestashop 购物车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21768560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com