我经常建立一个新的Magento网站,其中301重写需要为旧网站上的所有项目创建。有没有办法直接导入它们?
以编程方式通过urlCreate()类型Magento函数会很好,因为我可以循环通过csv。
答案 0 :(得分:2)
通常,坚持使用Magento的ORM与实体数据进行交互是一个好主意,因为可能存在业务逻辑和存储逻辑,它们被烘焙到实体ORM堆栈中(这对于EAV实体来说是非常正确的)。但是,根据要输入的记录数量,直接到数据库的方法应该没问题,特别是如果它是一次性导入。这是因为URL重写是存储在core_url_rewrite
table (link)中的扁平实体,并且表本身具有必要的存储逻辑作为其结构的一部分(主要是唯一request_path
+ store_id
和FK core_store
表)。换句话说,在ORM层之外操作这些数据是可以的,因为逻辑是表定义本身的一部分。
除了这些信息之外,还可以加载core/url_rewrite
集合,从CSV创建core/url_rewrite
个实例并添加它们,然后在集合上调用save()
,但请注意每个项目单独保存。它可能会引用目录实体和客户的转换适配器,这就是数据流的工作方式。