如何从外部数据库添加类别和产品?
How to add categories and product form external database?
我只是想知道如何从其他数据库添加或link 类别和产品。新数据库 table 字段与现有的 prestashop table 几乎相同。任何帮助、提示或任何有用的文章?
如果通过 "adding or linking" 将外部数据库连接到 Prestashop,您的意思是让 Prestashop 直接连接到外部数据库,我不建议这样做,因为这将需要更改 Prestashop 核心文件,使其与未来的升级不兼容Prestashop 也因此失去了开源的主要优势之一。
相反,我推荐的方法是外部数据库 "synchronised" 进入 Prestashop 数据库。从问题中不清楚外部数据库是否存在于另一个系统中,您只是希望能够在 prestashop(目录模式)中看到相同的类别和产品,或者相反,您想停止使用连接的应用程序到外部数据库并开始使用 Prestashop 中的数据。
在第一种情况(实时外部数据库)中,最好的选择是编写一个脚本,将数据从外部数据库提供给 Prestashop 数据库。如果两个数据库相似,脚本应该非常简单。连接到这两个数据库,查询外部数据库并插入到 Prestashop 数据库中,并进行任何必要的修改。该脚本可以通过 cron 作业以所需的频率执行(例如,每天一次)。 Prestashop 必须处于目录模式,因此无法下订单(两个系统都无法修改数据,否则您将得到两组不同的数据)。
在第二种情况下,外部数据库不再活动,最好的方法是将数据迁移到 Prestashop 数据库中。对于迁移,有两种方法:
1) 将外部数据库导出为 CSV 文件,并使用 Prestashop 管理中默认包含的导入工具将其导入到 Prestashop(高级参数 -> 导入 CSV)。此导入工具允许您将外部数据库中的字段分配到 Prestashop 数据库上的正确字段中,并处理与 Prestashop 中其他 table 的所有依赖关系。如果您不需要以任何方式转换您的外部数据,那么我会推荐这种方法。
2) 创建读取外部数据库的脚本,执行可能需要的任何数据转换,然后将转换后的数据插入 Prestashop 数据库。这种方法更为复杂,但它使您可以根据需要灵活地转换数据。您将必须了解 Prestashop 内的所有 table 依赖关系,以维护正确的数据库完整性。这是我在将我们的商店迁移到 Prestashop 时实施的方法,因为我们必须进行大量数据转换才能充分利用 Prestashop 的功能,如分层导航、产品比较等。
答案基于我将数据迁移到 Prestashop 的真实体验。希望对你有帮助。
您可以使用 prestashop 站点中的脚本从外部数据库添加类别。为此创建一个带有 frontcontroller 的模块(用于 cron 作业或 运行 脚本)并在脚本内 select 来自外部数据库的类别,然后遍历类别并在循环内创建 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();
}
}
}
我只是想知道如何从其他数据库添加或link 类别和产品。新数据库 table 字段与现有的 prestashop table 几乎相同。任何帮助、提示或任何有用的文章?
如果通过 "adding or linking" 将外部数据库连接到 Prestashop,您的意思是让 Prestashop 直接连接到外部数据库,我不建议这样做,因为这将需要更改 Prestashop 核心文件,使其与未来的升级不兼容Prestashop 也因此失去了开源的主要优势之一。
相反,我推荐的方法是外部数据库 "synchronised" 进入 Prestashop 数据库。从问题中不清楚外部数据库是否存在于另一个系统中,您只是希望能够在 prestashop(目录模式)中看到相同的类别和产品,或者相反,您想停止使用连接的应用程序到外部数据库并开始使用 Prestashop 中的数据。
在第一种情况(实时外部数据库)中,最好的选择是编写一个脚本,将数据从外部数据库提供给 Prestashop 数据库。如果两个数据库相似,脚本应该非常简单。连接到这两个数据库,查询外部数据库并插入到 Prestashop 数据库中,并进行任何必要的修改。该脚本可以通过 cron 作业以所需的频率执行(例如,每天一次)。 Prestashop 必须处于目录模式,因此无法下订单(两个系统都无法修改数据,否则您将得到两组不同的数据)。
在第二种情况下,外部数据库不再活动,最好的方法是将数据迁移到 Prestashop 数据库中。对于迁移,有两种方法:
1) 将外部数据库导出为 CSV 文件,并使用 Prestashop 管理中默认包含的导入工具将其导入到 Prestashop(高级参数 -> 导入 CSV)。此导入工具允许您将外部数据库中的字段分配到 Prestashop 数据库上的正确字段中,并处理与 Prestashop 中其他 table 的所有依赖关系。如果您不需要以任何方式转换您的外部数据,那么我会推荐这种方法。
2) 创建读取外部数据库的脚本,执行可能需要的任何数据转换,然后将转换后的数据插入 Prestashop 数据库。这种方法更为复杂,但它使您可以根据需要灵活地转换数据。您将必须了解 Prestashop 内的所有 table 依赖关系,以维护正确的数据库完整性。这是我在将我们的商店迁移到 Prestashop 时实施的方法,因为我们必须进行大量数据转换才能充分利用 Prestashop 的功能,如分层导航、产品比较等。
答案基于我将数据迁移到 Prestashop 的真实体验。希望对你有帮助。
您可以使用 prestashop 站点中的脚本从外部数据库添加类别。为此创建一个带有 frontcontroller 的模块(用于 cron 作业或 运行 脚本)并在脚本内 select 来自外部数据库的类别,然后遍历类别并在循环内创建 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();
}
}
}