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

Prestashop 如何在自定义页面上显示购物车中的产品数量,prestashop,prestashop-1.5,Prestashop,Prestashop 1.5,我正在使用Prestashop 1.5,并创建了一个包含分组产品列表的页面。我想显示购物车中每种产品的数量。在购物车页面存在$product.cart\u数量属性,但在我的页面上不存在。请给我解释一下,如何在我的页面上显示购物车中的产品数量。我能想到的最简单的方法是通过cookies访问数据,因为购物车数据存储在cookies中 您可以获得如下Cookie数据: $context = Context::getContext(); echo '<pre>',print_

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

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

您可以获得如下Cookie数据:

    $context = Context::getContext();
    echo '<pre>',print_r($context->cookie, true).'</pre>';  
这将返回当前购物车的ID

现在,您希望返回购物车中的当前产品(以及其中包含的所有信息)。为此,您必须使用位于prestashop_main_文件夹/classes/cart.php中的公共函数

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

$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'];         
}
然后它返回一个数组,其中包含所有变量,您可以轻松访问这些变量


BR的

您可以执行以下操作:


您是如何以及在何处创建页面的。您是通过CMS(创建新页面的prestashop内置功能)创建的还是在自定义模块中创建的?我使用了供应商页面(我不需要供应商,所以我使用了它)。
    $Cart->getProducts($refresh = false, $id_product = false, $id_country = null)
$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'];         
}