Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Prestashop 如何在外部数据库中添加类别和产品表单?_Prestashop_Prestashop 1.6 - Fatal编程技术网

Prestashop 如何在外部数据库中添加类别和产品表单?

Prestashop 如何在外部数据库中添加类别和产品表单?,prestashop,prestashop-1.6,Prestashop,Prestashop 1.6,我只是想知道如何添加或链接其他数据库中的类别和产品。新的数据库表字段与现有的prestashop表几乎相同。任何帮助、提示或任何有用的文章?如果将外部数据库“添加或链接”到Prestashop是指使Prestashop直接连接到外部数据库,我建议不要这样做,因为这将需要更改Prestashop核心文件,使其与Prestashop的未来升级不兼容,从而失去开源的主要优势之一 相反,我推荐的方法是将外部数据库“同步”到Prestashop数据库中。这个问题并不清楚外部数据库是否位于另一个系统中,您只

我只是想知道如何添加或链接其他数据库中的类别和产品。新的数据库表字段与现有的prestashop表几乎相同。任何帮助、提示或任何有用的文章?

如果将外部数据库“添加或链接”到Prestashop是指使Prestashop直接连接到外部数据库,我建议不要这样做,因为这将需要更改Prestashop核心文件,使其与Prestashop的未来升级不兼容,从而失去开源的主要优势之一

相反,我推荐的方法是将外部数据库“同步”到Prestashop数据库中。这个问题并不清楚外部数据库是否位于另一个系统中,您只是希望能够在prestashop(目录模式)中看到相同的类别和产品,或者相反,您希望停止使用连接到外部数据库的应用程序,并开始使用prestashop中的数据

在第一个场景(实时外部数据库)中,最好的选择是编写一个脚本,将外部数据库中的数据馈送到Prestashop数据库中。如果两个数据库相似,脚本应该非常简单。连接到两个数据库,查询外部数据库,并插入到Prestashop数据库中进行任何必要的修改。cron作业可以按要求的频率执行该脚本(例如,每天一次)。Prestashop必须处于目录模式,因此不能下订单(两个系统都不能修改数据,否则您将得到两组不同的数据)

在第二个场景中,外部数据库不再处于活动状态,最好的方法是将数据迁移到Prestashop数据库中。对于迁移,有两种方法:

1) 将外部数据库导出为CSV文件,并使用prestashop管理(高级参数->导入CSV)中默认包含的导入工具将其导入prestashop。此导入工具允许您将外部数据库中的字段分配到Prestashop数据库中的正确字段中,并负责处理与Prestashop中其他表的所有依赖关系。如果您不需要以任何方式转换外部数据,那么我建议您使用这种方法

2) 创建读取外部数据库的脚本,执行可能需要的任何数据转换,然后将转换后的数据插入Prestashop数据库。这种方法更复杂,但它使您能够灵活地在需要时转换数据。您必须了解Prestashop中的所有表依赖项,以保持正确的数据库完整性。这是我在将商店迁移到Prestashop时实施的方法,因为我们必须进行大量的数据转换,以充分利用Prestashop功能,如分层导航、产品比较等

答案基于我将数据迁移到Prestashop的真实体验。我希望这会有所帮助。

如果将外部数据库“添加或链接”到Prestashop,您的意思是使Prestashop直接连接到外部数据库,我建议不要这样做,因为这将需要更改Prestashop核心文件,使其与Prestashop的未来升级不兼容,从而失去开源的主要优势之一

相反,我推荐的方法是将外部数据库“同步”到Prestashop数据库中。这个问题并不清楚外部数据库是否位于另一个系统中,您只是希望能够在prestashop(目录模式)中看到相同的类别和产品,或者相反,您希望停止使用连接到外部数据库的应用程序,并开始使用prestashop中的数据

在第一个场景(实时外部数据库)中,最好的选择是编写一个脚本,将外部数据库中的数据馈送到Prestashop数据库中。如果两个数据库相似,脚本应该非常简单。连接到两个数据库,查询外部数据库,并插入到Prestashop数据库中进行任何必要的修改。cron作业可以按要求的频率执行该脚本(例如,每天一次)。Prestashop必须处于目录模式,因此不能下订单(两个系统都不能修改数据,否则您将得到两组不同的数据)

在第二个场景中,外部数据库不再处于活动状态,最好的方法是将数据迁移到Prestashop数据库中。对于迁移,有两种方法:

1) 将外部数据库导出为CSV文件,并使用prestashop管理(高级参数->导入CSV)中默认包含的导入工具将其导入prestashop。此导入工具允许您将外部数据库中的字段分配到Prestashop数据库中的正确字段中,并负责处理与Prestashop中其他表的所有依赖关系。如果您不需要以任何方式转换外部数据,那么我建议您使用这种方法

2) 创建读取外部数据库的脚本,执行可能需要的任何数据转换,然后将转换后的数据插入Prestashop数据库。这种方法更复杂,但它使您能够灵活地在需要时转换数据。您必须了解Prestashop中的所有表依赖项,以保持正确的数据库完整性。这是我在将商店迁移到Prestashop时实施的方法,因为我们必须进行大量的数据转换,以充分利用Prestashop功能,如分层导航、产品比较等

答案基于我将数据迁移到Prestashop的真实体验。我希望有帮助。

您可以添加类别
    public function initContent()
    {
        parent::initContent();
        $temp_categs = array(); //
        //fetch data into $temp_catgs from the external db with the help mysqli_connect or whatever the driver - never modify presta db settings - write php code for db connection to external db and fetch 

        //loop through the fetched categories
        foreach($temp_categs as $categ){
          $new_categ = new Category();

          //set all the field values
          $new_categ->name = $categ['name'];
          $new_categ->id_parent = $categ['id_parent'];
          $new_categ->active = true;
          $new_categ->field2 = $categ['field2'];
          $new_categ->field3 = $categ['field3'];

          //save the category - a category with new id will be created in prestashop
          $new_categ->save();
        }
    }
}