2011-10-13 58 views
1

我想写一个与Filemaker数据库一起工作的Magento网络应用程序。FileMaker:与Magento集成

我可以用代码使用filemaker php api覆盖数据库核心文件吗?

还有其他的选择吗?

+0

为什么你需要这样做?如果这是因为它是由您的主机设置决定的,那么将更容易改变这种情况。 –

+0

谷歌搜索'Magento Filemaker'显示一些有趣的结果 –

+0

Filemaker!哇靠。当我看到标题时,我不得不停下来阅读这个问题。刚刚从一天之后带回了一些噩梦....回来的一天。祝你的项目好运。 –

回答

1

我想做一个Filemaker和Magento数据库之间的接口,但是EAV的原因是将Magento数据库与文件数据库绑定在一起的噩梦。如果你想这样做,你真的需要在Filemaker中使用PHP,并且如果它们是分开托管的,则使用Magento的SOAP API。 如果您将Magento托管在同一个Web服务器上,或者通过安装指向可用外部数据库的新Magento实例,您也可以使用Filemaker API将Magento核心API集成到PHP脚本中。您也可以在Filemaker服务器上执行mysql数据库的本地复制。

为了整合Magento的核心API,很容易在一个PHP文件,你设置以下:

<?php 
require_once 'yourmagentoinstallation/path/app/Mage.php'; 
Mage::app('default'); // default can be replaced by your default store code 

// You can use Magento code (model, EAV, singleton, block, etc) 
... 
?> 

这是可能的,也有不同的方式,但是当我需要一个开箱即用的解决方案的我没找到。

1

这取决于你的意思是“整合”。我怀疑你需要做一些“覆盖数据库核心文件”的工作。当您下订单时,您很可能需要更新FileMaker,并在Magento收到股票更新时执行相同的操作。这两种情况很可能需要以完全不同的方式实施。

以下是FileMaker可以执行的操作。其XML后端可以轻松接受服务器的GET和POST请求。它们的语法相当先进,您可以查找记录,添加,删除和复制它们,运行FileMaker脚本等。它远不及SQL,尤其是搜索,但非常合乎逻辑。服务器用XML响应。这是the manual(PDF)。

服务器还可以接受发送到其PHP API的任意请求。 (它也有一个XSLT API,但它已被弃用并将被删除。)API然后根据需要重新整理请求,与XML后端对话并返回结果。由于我不是PHP专家,我不太清楚API的解释位置,但它必须是somewhere here

FileMaker本身(即其桌面客户端甚至服务器)可以使用插件与Web服务交谈。例如。随着股票更新,桌面客户端可以准备并发送请求到Magento API。

而FileMaker可以直接访问某些'大'SQL数据库。例如。它可以连接到一个MySQL数据库并且非常像它自己的表一样处理它的表。也许让核心Magento表免费工作是不明智的,但仔细脚本的更新看起来像是一个可行的选择。

插件和直接连接最好由FileMaker开发人员完成,而XML和PHP(XSLT)API是非常标准的网页材料。

1

Productive Computing与Magento做了一些工作。这听起来像是他们正在使用外部数据源进行连接,这会导致过度集成。

Productive Computing Blog

我们NRGship产品使用的Magento PHP API将订单数据和更新订单状态后发货。为了反映这一点,您需要一些PHP代码服务器端,然后使用像Troi URL这样的插件来调用http请求来查询和更新记录状态。

提供更多关于您需求的信息可以获得更详细的回复。

0

我使用Filemaker Pro附带的JDBC驱动程序,并且我构建了一个Java中的服务器应用程序,它通过JDBC连接到filemaker以自动插入数据(如订单等),并具有后台任务自动更新产品更新和订单状态通过JDBC从Filemaker获取数据进行更新。然后,Java服务器应用程序将SOAP API请求发送给Magento以处理数据交换。

我们通过让服务器应用程序在套接字上监听XML消息/命令进一步扩展了这一点,所以我可以在需要时实时集成到文件制作器。然后我有一个简单的Filemaker插件,我使用24U Filemaker插件模板编写,它将小型XML消息发送到java服务器应用程序,然后相应地向magento发出API调用。 Filemaker等待返回的服务器应用程序响应,然后Filemaker继续调用该方法的脚本的其余部分。

从这个意义上讲,它有一个更复杂的任务执行队列,所以不会超载magento API,并且我们有一个DB连接池用于文件管理器JDBC连接以保存打开和关闭连接的过载。这真的很好,我们将整个Magento与filemaker集成在一起,并为magento生成了许多自定义API模块,以实现magento不提供的其他功能。

我在读它可以为Java创建Java插件,所以理论上你可以不使用服务器应用程序,只需创建一个内置了magento API函数调用的filemaker插件即可。如果使用V2 WSI合规性模式进行magento soap调用,则可以使用属于Netbeans的JAXB Web服务插件生成所有存根类和方法,这将为您节省数天和数天的工作时间。