如何在openart 2.0的分类页面中添加产品选项


How to add product options in category page in opencart 2.0

我想在openart 2.0的分类页面中添加产品选项。

我已经在'catalog'model'catalog'product.php中添加了这段代码

public function hasOptionPriceIncrease($product_id) {
   $option_data = $this->getProductOptions($product_id);
if (is_array($product_option_value)) {
  foreach ($product_option_value as $option) {
  if (is_array($option['product_option_value'])) {
    foreach ($option['product_option_value'] as $value) {
      if ($value['price'] > 1) {
        return true;
      }
    }
  }
} return false }

,然后在'controller'product'category.php

'has_option_price_increase' =>$this->model_catalog_product->hasOptionPriceIncrease($result['product_id'])

所以现在在目录$this->data['products'][]变成了这样-

$this->data['products'][] = array(
'product_id'  => $result['product_id'],
'thumb'       => $image,
'name'        => $result['name'],
'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',
'price'       => $price,
'special'     => $special,
'tax'         => $tax,
'rating'      => $result['rating'],
'reviews'     => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url),
'has_option_price_increase' =>$this->model_catalog_product->hasOptionPriceIncrease($result['product_id'])
);

现在我不明白如何在我的视图中调用这个,即在collection.tpl

请帮助我在我的视图中显示这个,以便在类别页面中显示产品选项。

我花了几个小时做这件事,但我得到了它的工作。现在,我只需要SELECT,所以您可以根据类别中的需要对其进行修改。我使用的是2.1.0.2版本

1-进入/catalog/controller/product/category.php目录然后>>查找产品数组

$data['products'][] = array(
                'product_id'  => $result['product_id'],

2-将此代码添加到数组

之上
foreach ($this->model_catalog_product->getProductOptions($result['product_id']) as $option) {
                                    foreach ($option['product_option_value'] as $option_value) {
                                             $product_option_value_data[] = array(
                        'product_option_value_id' => $option_value['product_option_value_id'],
                        'option_value_id'         => $option_value['option_value_id'],
                        'name'                    => $option_value['name'],
                        'image'                   => $this->model_tool_image->resize($option_value['image'], 50, 50),
                        'price'                   => $price,
                        'price_prefix'            => $option_value['price_prefix']
                    );
                }
                $option_data[] = array(
                'product_option_id'    => $option['product_option_id'],
                'product_option_value' => $product_option_value_data,
                'option_id'            => $option['option_id'],
                'name'                 => $option['name'],
                'type'                 => $option['type'],
                'value'                => $option['value'],
                'required'             => $option['required']
                );
            }

3-将此代码添加到产品数组

'option'    => $option_data

4-进入/catalog/view/theme/YOUR TEMPLATE/TEMPLATE/product/category。并将此代码添加到您的产品循环

        <?php foreach ($product['option'] as $option) { ?>
         <?php if ($option['type'] == 'select') { ?>
          <select name="option[<?php echo $option['product_option_id']; ?>]" id="input-option<?php echo $option['product_option_id']; ?>" class="form-control">
            <option value="">SELECT EXTENDED LENGTH</option>
            <?php foreach ($option['product_option_value'] as $option_value) { ?>
            <option value="<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
            <?php if ($option_value['price']) { ?>
            (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
            <?php } ?>
            </option>
            <?php } ?>
          </select>
            <?php } ?>
        <?php } ?>

我仍然在javascript中工作,所以我可以将产品添加到购物车中,并提供数量和选项,而无需进入产品页面。由于