Search code examples
magentomagento-soap-api

SOAP faultcode list


I'm developing a magento script to import products from a XML file using the API and a SOAP wsdl connection.

I would like to know the faultcode list, I've been searching it for several days without luck, anyone know if there is one at all and where I can find it?

I need to handle the error codes to avoid the code to stop instead of just skipping the errors and continue importing what is correct.

At the moment I just discovered that the faultcode 101 is "Product not exists.".


Solution

  • Here's how to grab the list for your version of Magento. (I can't imagine this would be radically different between versions, but one never knows what's been done to a system)

    Find all your api.xml files.

    $ find app/code/core -name 'api.xml'
    app/code/core/Mage/Api/etc/api.xml
    app/code/core/Mage/Catalog/etc/api.xml
    app/code/core/Mage/CatalogInventory/etc/api.xml
    app/code/core/Mage/Checkout/etc/api.xml
    app/code/core/Mage/Core/etc/api.xml
    app/code/core/Mage/Customer/etc/api.xml
    app/code/core/Mage/Directory/etc/api.xml
    app/code/core/Mage/Downloadable/etc/api.xml
    app/code/core/Mage/GiftMessage/etc/api.xml
    app/code/core/Mage/Sales/etc/api.xml
    app/code/core/Mage/Tag/etc/api.xml
    

    Each file will have one or many <faults/> nodes which will contain the code and message.

    <!-- File: app/code/core/Mage/CatalogInventory/etc/api.xml -->
    <faults module="cataloginventory">
        <not_exists>
            <code>101</code>
            <message>Product not exists.</message>
        </not_exists>
        <not_updated>
            <code>102</code>
            <message>Product inventory not updated. Details in error message.</message>
        </not_updated>
    </faults>
    

    It's probably worth mentioning that the numeric codes aren't unique. Each "soap object" (unsure what to call these) defines its own.

    <!-- File: app/code/core/Mage/Sales/etc/api.xml -->
    <faults module="sales">
        <not_exists>
            <code>100</code>
            <message>Requested order not exists.</message>
        </not_exists>
        <filters_invalid>
            <code>101</code>
            <message>Invalid filters given. Details in error message.</message>
        </filters_invalid>
    

    Good luck!