Web services Magento请求-前端、后端还是API?
好的-我已经阅读并喜欢关于Magento前端/后端的讨论,并同意Ben的回答 在 现在让我们把它提高一个档次。我们有一个拥有高度定制解决方案的客户,我们使用Magento observer调用Web服务,更新公司CRM系统中的客户和客户地址数据。这些事件与customer_save_before、customeraddress_save_before事件无关,在前端和adminhtml端的调用略有不同(谢谢Ben!) 现在,我们看到一种循环情况开始出现,CRM系统正在使用Magento API向Magento插入更新,这会在事件发生前触发customer_save_,然后我们将数据发送回CRM,然后CRM会再次调用Magento API,等等,等等,直到整个house-o-Card崩溃 我希望能够屏蔽入站API调用,但是,我找不到任何有关如何执行的信息Web services Magento请求-前端、后端还是API?,web-services,api,events,magento,Web Services,Api,Events,Magento,好的-我已经阅读并喜欢关于Magento前端/后端的讨论,并同意Ben的回答 在 现在让我们把它提高一个档次。我们有一个拥有高度定制解决方案的客户,我们使用Magento observer调用Web服务,更新公司CRM系统中的客户和客户地址数据。这些事件与customer_save_before、customeraddress_save_before事件无关,在前端和adminhtml端的调用略有不同(谢谢Ben!) 现在,我们看到一种循环情况开始出现,CRM系统正在使用Magento API向
有什么建议吗?您可以查看称为事件的块。试试看:
$block = $observer->getEvent()->getBlock();
if ($block instanceof Your_block_name) {
//do something
或者,您可以将mage核心代码更改为在分派事件时为您的控件发送一些附加数据。
就像这样:
Mage::dispatchEvent('customer_save_before',array('flag'=>'1'));
或者类似的。
但是,如果这个事件被同一个块从同一个地方调用,并且在magento或webservice调用它时没有任何其他行为需要知道,那么这是不可能的。更新我以前的答案-formdata检测工作正常,但是,我认为这会更好- 查看请求uri并查看api的调用情况
if (stripos($_SERVER['REQUEST_URI'], "index.php/api")) {
$ApiCall=true;
}
如果是这样,则设置一个标志或执行任何操作。问题在于API调用也会分派事件。我来看看街区的建议。不应存在与API调用关联的块。