#magento #soap #wsdl
#magento #soap #wsdl
Вопрос:
Я разрабатываю скрипт magento для импорта продуктов из XML-файла с использованием API и соединения SOAP wsdl.
Я хотел бы знать список кодов ошибок, я искал его несколько дней безрезультатно, кто-нибудь знает, есть ли он вообще и где я могу его найти?
Мне нужно обработать коды ошибок, чтобы избежать остановки кода, вместо того, чтобы просто пропускать ошибки и продолжать импортировать то, что правильно.
На данный момент я только что обнаружил, что код ошибки 101 — «Продукт не существует»..
Ответ №1:
Вот как получить список для вашей версии Magento. (Я не могу себе представить, что это будет радикально отличаться в разных версиях, но никто никогда не знает, что было сделано с системой)
Найдите все ваши api.xml
файлы.
$ 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
Каждый файл будет иметь один или несколько <faults/>
узлов, которые будут содержать код и сообщение.
<!-- 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>
Вероятно, стоит упомянуть, что числовые коды не являются уникальными. Каждый «объект soap» (не уверен, как их назвать) определяет свой собственный.
<!-- 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>
Удачи вам!