对Magento实例的外部访问

时间:2013-10-18 02:31:02

标签: zend-framework magento-1.7 magento

我已经开始调查我的项目的替代方案,并且出现了一些我自己无法回答的问题。

问题是:我想创建一个能够访问安装在同一服务器上的多个Magento实例的网页。目前,我每个客户端都有一个Magento实例,该项目将访问几个Magneto实例,以便从每个实例中导出报告(例如)。

我想到的替代方案是:

  • 拥有另一个Magento实例,在其中创建一个新模块,在触发操作/查询之前更改其“数据库目标”;

到目前为止的问题:

  • 我可以'更改Magento实例的数据库目标吗?
  • 如何在不吸引SOAP / REST的情况下从Magento实例访问数据?
  • 我想重用Magento的一些组件(网格,标签,表格..),这就是为什么我不考虑可以从其他项目访问此代码的独立项目(例如Zend)。它有意义吗?
  • 还有其他想法吗?

==被修改==

感谢您的提示和对不起我的无知。这些评论让我相信我能够执行这样的事情:

// File myScript.php
require '/home/DOMAIN1/app/Mage.php';
Mage::app('default');
// get some products from DOMAIN1

require '/home/DOMAIN2/app/Mage.php';
Mage::app('default');
// get some products from DOMAIN2

是不是?我可以执行两次需求(并覆盖首次要求的东西)吗?

== Edited2 ==

我仍在尝试从单个第三方文件连接到多个Magento实例。有提示吗?我现在面临着几个/不同的错误。

我唯一知道的是,我仍然可以依靠SOAP来获取我需要的信息,但这将是昂贵的。

谢谢!

1 个答案:

答案 0 :(得分:0)

最简单的方法是在每个商店实例中加入Mage.php。您需要使用名称空间或其他一些技巧才能加载多个名称。

如果这不起作用 - 在一个单独的文件中创建自己的API,以便从一个商店获得您想要的内容,并将结果合并到调用API的PHP文件中。

以下是如何在Magento之外使用Magento功能的示例:

require 'app/Mage.php';
if (!Mage::isInstalled()) {
    echo "Application is not installed yet, please complete install wizard first.";
    exit;
}
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);

// your custom code here, for example, get the product model..
$productModel = Mage::getModel('catalog/product');