【问题标题】:How to add product options in category page in opencart 2.0如何在opencart 2.0的类别页面中添加产品选项
【发布时间】:2015-05-27 18:00:25
【问题描述】:

我想在opencart 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 中

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

【问题讨论】:

  • 嘿@jx12345,我看到你也做过同样的事情,你能帮我看看吗?哥们
  • 您能否详细说明一下您希望如何在前端显示该价格?

标签: php opencart opencart2.x


【解决方案1】:

我花了几个小时来做​​这件事,但我得到了它的工作。现在,我只需要 SELECT,所以你可以在 category.tpl 中根据你的需要修改它。我使用的是 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- 将此代码添加到 products 数组中

'option'    => $option_data

4- 转到 /catalog/view/theme/YOUR TEMPLATE/template/product/category.tpl 并将此代码添加到您的产品循环中

        <?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,因此我可以将带有数量和选项的产品添加到购物车,而无需进入产品页面。谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-19
    • 2014-06-06
    相关资源
    最近更新 更多