1

我对 opencart 比较陌生,我目前正在开发一家商店,我需要能够在购物车内显示产品属性。我到处搜索,但显然没有人需要这个功能。简而言之,我试图复制在产品页面中检索属性的方式,但没有成功。我修改了控制器添加这一行:

$this->data['attribute_groups'] = $this->model_catalog_product->getProductAttributes($this->request->get['product_id']);

我还补充说:

<?php foreach ($attribute_groups as $attribute_group) { ?>
  <?php echo $attribute_group['name']; ?>
    <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
   <?php echo $attribute['name']; ?>
<?php echo $attribute['text']; ?>
    <?php } ?>
  <?php } ?>
<?php } ?>

没有成功。我想我必须以某种方式修改系统/库/cart.php。问题是我不够精明,不知道该怎么做!在这一点上,我决定在这里寻求帮助!请问有什么想法吗?

4

1 回答 1

0

这并不像表面上看起来那么难,您只需要编辑 2 个文件并打开 3 个。

--1-- 将获取属性的方法添加到购物车类中。

打开目录/model/catalog/product.php

找到方法getProductAttributes($product_id)并将整个方法复制到剪贴板。

打开system/library/cart.php并在getProducts()方法之后粘贴您复制的方法。

--2-- 就在粘贴代码的上方,在getProducts()方法结束时,您将看到为视图构建 products 数组的位置,它看起来类似于:

$this->data[$key] = array(
    'key'             => $key,
    'product_id'      => $product_query->row['product_id'],
    'name'            => $product_query->row['name'],
    'model'           => $product_query->row['model'],
    'shipping'        => $product_query->row['shipping'],
    'image'           => $product_query->row['image'],
    'option'          => $option_data,
    'download'        => $download_data,
    'quantity'        => $quantity,
    'minimum'         => $product_query->row['minimum'],
    'subtract'        => $product_query->row['subtract'],
    'stock'           => $stock,
    'price'           => ($price + $option_price),
    'total'           => ($price + $option_price) * $quantity,
    'reward'          => $reward * $quantity,
    'points'          => ($product_query->row['points'] ? ($product_query->row['points'] + $option_points) * $quantity : 0),
    'tax_class_id'    => $product_query->row['tax_class_id'],
    'weight'          => ($product_query->row['weight'] + $option_weight) * $quantity,
    'weight_class_id' => $product_query->row['weight_class_id'],
    'length'          => $product_query->row['length'],
    'width'           => $product_query->row['width'],
    'height'          => $product_query->row['height'],
    'length_class_id' => $product_query->row['length_class_id']                 
);

现在只需将对该 getAttributes 方法的调用添加到数组中:

'attributes' => $this->getProductAttributes($product_query->row['product_id'])

现在打开您的购物车模板:catalog/view/theme/yourtheme/common/cart.tpl在产品选项循环所在的位置,您现在可以像选项一样循环遍历您的属性。

于 2013-09-04T12:21:11.080 回答