0

我正在尝试学习 opencart 结构,并尝试在 table 下创建一个新列product。新列是“测试”

然后我尝试检索此页面下的数据index.php?route=checkout/cart(将价格替换为测试列)

catalog\controller\checkout\cart.php
...

$this->data['products'][] = array(
    'key'      => $product['key'],
    'thumb'    => $image,
    'name'     => $product['name'],
    'model'    => $product['model'],
    'option'   => $option_data,
    'quantity' => $product['quantity'],
    'stock'    => $product['stock'] ? true : !(!$this->config->get('config_stock_checkout') || $this->config->get('config_stock_warning')),
    'reward'   => ($product['reward'] ? sprintf($this->language->get('text_points'), $product['reward']) : ''),
    'price'    => $product['test'],  //<-- new column
    'total'    => $total,
    'href'     => $this->url->link('product/product', 'product_id=' . $product['product_id']),
    'remove'   => $this->url->link('checkout/cart', 'remove=' . $product['key'])
);

问题是我没有得到任何输出,而且我不确定如何使用该模型。哪个查询/功能与此页面相关?

4

1 回答 1

1

问题是控制器$products上可用的cart.php是从会话中检索到的,它们存储在先前设置的结构中,所以没有test索引,你应该得到一个Notice: undefined index 'test' in .... 由以下$products人检索

foreach ($this->cart->getProducts() as $product) {
    //...
}

/system/library/cart.php和方法getProducts()来理解我在说什么。

如果您想在catalog/controller/product/category.phpcatalog/controller/product/product.php控制器上使用它,您正在尝试的代码将起作用。

如果您替换所有产品列表和产品详细信息中的价格,这些控制器:

  • 产品/
    • 类别.php
    • 制造商信息.php
    • 产品.php
    • 搜索.php
    • 特殊的.php
  • 模块/
    • 畅销书.php
    • 精选.php
    • 最新的.php
    • 特殊的.php

使用您的值,购物车中的最终价格将是您的测试值。

于 2013-04-10T14:21:01.730 回答