Hay muchas razones por las que una petición a un web service usando SOAP V2 puede tomar mucho tiempo,
pero la primera cosa que pienso es revisar la configuración para activar la caché en la construcción del archivo WSDL.
Cuando se hace una llamada a la API de Magento, Magento usa el objecto SoapServer de PHP. El objeto SoapServer necesita
obtener su propio archivo WSDL para poder funcionar, y la generación y extracción de este archivo puede consumir mucho tiempo.
La solución para esto es habilitar el manejo de caché para el archivo WSDL, que por defecto viene apagado en Magento.
Acceder al backend de Magento, luego a
System->Configuration->Magento Core API
Busca el rubro "Enabled WSDL Cache" y cámbialo a Yes.
Haciendo esto, mejorarás notablemente el tiempo de respuesta de las llamadas a la API, aclaro que esto funciona a partir de la versión
1.6 de Magento usando SOAP V2, para versiones anteriores hay una solución en este link:
http://www.ivoronline.com/Coding/Languages/PHP/Tutorials/PHP - API - SOAP - Extension - Introduction.php
Este parámetro no existe en versiones anteriores a 1.6 de Magento, pero también existe una extensión comercial hecha por
Alan Storm, y se llama
"
Mercury API Extension". Aunque también se puede mirar la clase
Mage_Api_Model_Server_Adapter_Soap
donde las versiones
anteriores de Magento deshabilitan esta caché.
Esta solución fue tomada de
Alan Storm desde
Stackoverflow.com