获得有条件的产品' new'在Prestashop购物车

时间:2017-12-04 17:33:57

标签: php prestashop prestashop-1.6

我在购物车中得到的产品如下:

$cart_products = $this->context->cart->getProducts();

我想过滤它们,以便只显示有条件的产品' new'所以我这样做:

foreach ($cart_products as $cart_product) {
          if ($cart_product->condition == 'new')
                .....
         }

它不起作用。该页面被阻止,我无法点击此处的任何部分,也无法向下或向上移动。

任何人都知道如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

condition字段未包含在由getProducts类的方法Cart检索的数组中。

在使用condition字段之前,您应该编辑或覆盖getProducts类中的Cart方法,然后添加" p .condition`"在SQL查询中,如下所示:

// Build SELECT
$sql->select('cp.`id_product_attribute`, cp.`id_product`, cp.`quantity` AS cart_quantity, cp.id_shop, pl.`name`, p.`is_virtual`,
                    pl.`description_short`, pl.`available_now`, pl.`available_later`, p.`condition`, product_shop.`id_category_default`, p.`id_supplier`,
                    p.`id_manufacturer`, product_shop.`on_sale`, product_shop.`ecotax`, product_shop.`additional_shipping_cost`,
                    product_shop.`available_for_order`, product_shop.`price`, product_shop.`active`, product_shop.`unity`, product_shop.`unit_price_ratio`,
                    stock.`quantity` AS quantity_available, p.`width`, p.`height`, p.`depth`, stock.`out_of_stock`, p.`weight`,
                    p.`date_add`, p.`date_upd`, IFNULL(stock.quantity, 0) as quantity, pl.`link_rewrite`, cl.`link_rewrite` AS category,
                    CONCAT(LPAD(cp.`id_product`, 10, 0), LPAD(IFNULL(cp.`id_product_attribute`, 0), 10, 0), IFNULL(cp.`id_address_delivery`, 0)) AS unique_id, cp.id_address_delivery,
                    product_shop.advanced_stock_management, ps.product_supplier_reference supplier_reference');

然后如同@sadlyblue所说,您可以使用condition字段并仅显示new个产品。