如何在自定义页面上的购物车中显示产品数量

时间:2014-02-07 06:41:06

标签: prestashop prestashop-1.5

我正在使用Prestashop 1.5并创建了包含分组产品列表的页面。我想在购物车中显示每种产品的数量。在购物车页面存在$ product.cart_quantity属性,但在我的页面上却没有。请解释一下如何在我的页面上的购物车中显示产品数量。

2 个答案:

答案 0 :(得分:0)

我能想到的最简单的方法是通过cookie访问数据,因为购物车数据存储在其中。

您可以获得这样的Cookie数据:

    $context = Context::getContext();
    echo '<pre>',print_r($context->cookie, true).'</pre>';  

Prestashop Context是以前作为全局变量访问的PHP变量的注册表。它旨在标准化访问这些变量的方式,并通过摆脱全局变量使代码更加健壮。

我们的回声只是为了展示你可以从cookies中获得什么信息。

当顾客在购物车中添加一些东西时,它会自动给它一个购物车ID(id_cart),从那里可以很容易地访问该值以获取所有信息。

要获取购物车ID(假设您已有上下文),请使用此

   $Cart = $context->cart;

这会返回当前购物车的ID。

现在您想要返回购物车中的当前产品(包含其中包含的所有信息)。为此你必须使用prestashop_main_folder / classes / cart.php中的公共函数

因此,要返回所有当前产品,请使用以下行

    $Cart->getProducts($refresh = false, $id_product = false, $id_country = null)

然后它会返回一个包含所有变量的数组,然后您可以轻松访问它们。

BR的

答案 1 :(得分:0)

您可以执行以下操作:

$context=Context::getContext();
$id_cart=$context->cookie->id_cart;

if($id_cart=='') $id_cart=Tools::getValue('id_cart');

$theCart = new Cart($id_cart);   
$products = $theCart->getProducts(true);
$nbTotalProducts = 0;     

foreach ($products as $product)
{
  $nbTotalProducts += (int)$product['cart_quantity'];         
}