Хорошо, здесь идет. Сервисная ссылка в оригинальной программе была создана путем указания адреса wsdl
в одном из наших магазинов Magento Go. Программа позволяла динамически менять магазин для работы, поэтому URL-адрес был изменен на соответствующий URL-адрес магазина, добавленный с помощью /api/v2_soap/index
во время выполнения.
Как объяснено в вопросе, импорт заказа на продажу работал на некоторых сайтах и не работал на других. После некоторых довольно хороших советов от balexandre мы использовали fiddler и некоторый код на месте по мере необходимости и выяснили проблему.
Проблема была: Сервисный вызов salesOrderList()
возвращает salesOrderEntity [] для Magento Go магазинов и salesOrderListEntity[]
для магазинов 1.5.x. Поскольку прокси был создан с использованием ссылки на Magento Go, последний тип был «неожиданным» для программы, что вызвало Exception
В XML-документе (2, 372) с * 1018 произошла ошибка * Указанный тип не был распознан: name = 'salesOrderListEntity', namespace = 'urn: Magento' . Все остальные методы, которые мы вызывали из веб-службы, работали. Но без списка заказов на продажу они не были бы полезны сами по себе.
Промежуточный обходной путь был: Чтобы настроить файл wsdl
и reference.cs
, чтобы объявить 'salesOrderListEntity and to create an overloaded version of
salesOrderListEntity () `. Но этот обходной путь создал больше проблем, чем решил.
Окончательное решение: Создайте два разных прокси, указав на Magento Go и Magento 1.5.x. После переключения на фактические URL магазина во время выполнения, используйте прокси, соответствующий текущему магазину. Те же вызовы и поток, за исключением того, что первый прокси-сервер знает, что он получит salesOrderEntity[]
для вызова salesOrderList()
, а второй прокси-сервер знает, что он получит salesOrderListEntity[]
.
Это работает без проблем, и мы импортировали несколько сотен заказов на продажу, когда я пишу это. И это, кажется, хорошо работает и для магазинов 1.6.1. Но я дам вам знать, если (не дай Бог) будут какие-то проблемы на этом фронте.
В заключительной записке я выражаю искреннюю благодарность balexandre за всю помощь.