20
  • 我想知道是否有一个特殊的opencart函数可以在前端页面上使用php/html表单以编程方式将产品添加/编辑到Opencart数据库(例如wordpress“wp_insert_post”函数)或者我必须编写我所有的代码PHP方式(插入进入 DB_TABLE .....)

  • 另外,我必须使用哪些 opencart db 表来添加带有图像的简单产品信息,是否只有产品和 product_description 表,当然我需要在使用前端页面添加产品后,产品也出现在管理页面中

我真的需要一些参考资料来告诉我如何做到这一点

(我使用的是 opencart 1.5.1.3)

4

2 回答 2

21

您只需要创建一个关联的值数组以传递给addProduct(). /admin/model/catalog/product.php要在控制器中加载模型,请使用

// Assoc array of data
$productData = array(
    'name' => 'Product Name Here',
    'model' => 'ABC123',
    ...
);

// Load model into memory if it isn't already
$this->load->model('catalog/product');

// Attempt to pass the assoc array to the add Product method
$this->model_catalog_product->addProduct($productData);

这正是 OpenCart 在管理区域所做的,只是它使用表单中的 POST 值作为数组传递

请注意,某些值(例如描述、图像等)是数据数组本身中的数组,因此需要按此编码。如果您想查看模型从产品添加表单中收到的内容,请打开模型 php 文件,在方法开头找到方法addProduct()和变量,这将为您提供数组键的完整列表,其中大部分不是必需的。请参阅管理员中的表格。很容易计算出哪个字段与数组中的哪个键相关print_r$data

有关在 OpenCart 中作为开发人员入门的更多信息

于 2013-06-15T11:39:47.410 回答
0

到过那里。

最重要的是,不仅仅是将产品数据添加到表PREFIX_product并链接到PREFIX_product_to_category中的类别。

但也要在PREFIX_product_description中创建行(具有相同的 product_id)。如果没有它,产品将显示在管理区域中,但无法编辑,并且链接将带有空的 product_id 编号,例如“admin/index.php?route=catalog/product/edit&product_id=”。

在我的情况下,包括和使用 OC 核心模型或清除缓存是不必要的。通过 MySQL 查询添加的产品变得可编辑且功能齐全。

超频版本 2.2.0.0

于 2017-07-19T10:39:25.170 回答