0

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

问题是:我想创建一个能够访问安装在同一服务器中的多个 Magento 实例的网页。目前,我每个客户端都有一个 Magneto 实例,该项目将访问多个 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

这样对吗?我可以执行两次要求(并从第一次要求中覆盖东西)吗?

==编辑2==

我仍在尝试从单个第三方文件连接到多个 Magento 实例。有什么诀窍吗?我目前面临几个/不同的错误。

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

谢谢!

4

1 回答 1

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');
于 2013-10-18T09:32:07.577 回答