OpenCart自动添加新产品。产品操纵

时间:2014-05-21 20:20:36

标签: php mysql opencart

我是opencart的新手,我必须编写代码,在该opencart网站上自动添加/删除/编辑产品,所以我的问题如下:

如何使用php自动将新产品添加到数据库?(也许opencart中有一些方法,所以我可以使用它们,或者我必须从头开始编写代码?)

P.S:一个例子会很棒(假设我们在数组中有产品信息)

P.P.S:并非所有产品都会自动添加。

4 个答案:

答案 0 :(得分:9)

如果你把它们放在一个阵列中那么它就是小菜一碟。 admin / model / catalog中的opencart中有一个方法,你可以使用addProduct()。读取$ data数组的索引并尝试将数组放入该表单中。例如,在这种方法中你可以看到$ data ['model'],$ data ['image']等等。假设你已经这样做了,你可以创建一个新的控制器文件,比如在admin / controller / module / script.php中。一些代码如下。

<?php
class ControllerCatalogProduct extends Controller {
    public function index() {
        $products = array(...); //your products here. Eg $products[0] has all the data for the first product
        $this->load->model('catalog/product');
        foreach ($products as $data) {
            $this->model_catalog_product->addProduct($data);
        }
    }
}
?>

这很简单。然后你通过http://yoursite/admin/index.php?route=module/script

来调用它

答案 1 :(得分:2)

您可以创建一个关联数组,如下所示,然后在管理部分创建一个控制器来处理它。在此阵列中,您必须注意,如果您在仪表板中安装了两种语言,则必须为其他语言重复每个内容。我在下面安装了两种语言的示例,您可以按照此结构进行数组:

Array (
    [product_description] => Array
        (
            [1] => Array
                (
                    [name] => "product name in first language"
                    [meta_description] => "meta description for first" language
                    [meta_keyword] => "meta keywords in first language"
                    [description] => "product description in first" language 
                    [tag] => "product tags in first language"
                )

            [2] => Array
                (
                    [name] => "first product in second language"
                    [meta_description] => "meta description in second language"
                    [meta_keyword] => "meta tags in second language"
                    [description] => "product description in second language"

                    [tag] => "product tags in second language"
                )
            ....
        )

    [model] => 
    [sku] => 
    [upc] => 
    [ean] => 
    [jan] => 
    [isbn] => 
    [mpn] => 
    [location] => 
    [price] => 2300000
    [tax_class_id] => 9
    [quantity] => 1
    [minimum] => 1
    [subtract] => 1
    [stock_status_id] => 5
    [shipping] => 1
    [keyword] => 
    [image] => data/demo/htc_touch_hd_3.jpg
    [date_available] => 1394-2-23
    [length] => 40
    [width] => 30
    [height] => 20
    [length_class_id] => 2
    [weight] => 23000
    [weight_class_id] => 1
    [status] => 1
    [sort_order] => 1
    [manufacturer] => 
    [manufacturer_id] => 0
    [category] => 
    [filter] => 
    [product_store] => Array
        (
            [0] => 0
        )

    [download] => 
    [related] => 
    [product_attribute] => Array
        (
            [0] => Array
                (
                    [name] => attribute 1
                    [attribute_id] => 
                    [product_attribute_description] => Array
                        (
                            [1] => Array
                                (
                                    [text] => "first language content"
                                )

                            [2] => Array
                                (
                                    [text] => "second language content"                                    )

                        )

                )

        )

    [option] => 
    [points] => 
    [product_reward] => Array
        (
            [1] => Array
                (
                    [points] => 
                )

        )

    [product_layout] => Array
        (
            [0] => Array
                (
                    [layout_id] => 
                )

        )

)

为了处理管理员方面的控制器,我认为最简单的方法是尼古拉斯在上一个回答中所说的。

答案 2 :(得分:1)

您需要管理5个表格才能插入产品详细信息。

  1. oqc_product
  2. oc_product_description
  3. oc_product_to_category
  4. oc_product_to_layout
  5. oc_product_to_store
  6. 上述解决方案也很好。

    是的,您可以编写自己的PHP脚本来添加产品或直接从上表中的Excel中导入产品。

    美好的一天, 西仁

答案 3 :(得分:0)

上述两个答案的组合非常适合使用admin导入产品。但是如果您可以管理产品的excel或csv文件,那么以下扩展名是导入产品的非常好的扩展。

https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=17&filter_search=import%20export&filter_license=0