首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何添加类别和产品表外部数据库?

如何添加类别和产品表外部数据库?
EN

Stack Overflow用户
提问于 2015-08-19 10:47:19
回答 2查看 1.1K关注 0票数 0

我只想知道如何从其他数据库中添加或链接类别和产品。新的数据库表字段都与现有的prestashop表非常相同。有什么帮助,暗示或任何有用的文章吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-08-22 08:41:41

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

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

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

在第二种情况下,外部数据库不再活动,最好的方法是将数据迁移到Prestashop数据库。对于迁移,有两种方法:

1)将外部数据库导出为CSV文件,并使用prestashop管理中默认包含的导入工具(Advanced -> import )将其导入预Prestashop。这个导入工具允许您将来自外部数据库的字段分配到Prestashop数据库中的正确字段中,并且它处理Prestashop中其他表的所有依赖项。如果您不需要以任何方式转换您的外部数据,那么我将推荐这种方法。

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

答案是基于我将数据迁移到Prestashop的真实现场体验。希望能帮上忙。

票数 3
EN

Stack Overflow用户

发布于 2015-08-27 11:25:39

可以使用预prestashop站点中的脚本从外部db添加类别。为此,使用frontcontroller创建一个模块(用于cron作业或运行脚本),并在脚本中从外部db中选择类别,然后在类别和循环中循环创建预prestashop类别对象,并将类别字段放置到类别对象并调用类别保存方法。

代码语言:javascript
运行
复制
    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();
        }
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32093349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档