We’ve recently discovered a bug with magneto version > 18.104.22.168.
Magento’s native SOAP api exposes most of the core entity types (customers, orders, shipments, products, categories, etc).
However, it looks like the Api code wasn’t updated to ensure compatibility with other parts of the core code.
Specifically, we’ve learned that an update to the Mage_Sales_Model_Resource_Collection_Abstract breaks part of the SOAP Shipments API:
The problem lies in the definition of the function joinAttribute inside the aforementioned class. You can see from the screen shot that there is an @todo implement join functionality if necessary—however for now, this method does absolutely nothing!
You will also notice that the magento core team now deems this a “deprecated method.” However, they themselves reference this method in the shipments module. References to this function can be found in:
Obviously any place where this method is used will NOT return the desired result—-which can cause major problems for installations that have a 3rd party warehouse or inventory system that requires these api methods work correctly.
My suggested fix is to replace the joinAttribute calls with ->getSelect()->join calls (you can see info about Zend’s db layer at: http://zendgeek.blogspot.com/2009/07/zend-framework-sql-joins-examples.html)
* Please make sure you either write a module or do a local override in app/code/local if you need to do this!