Кажется, это ошибка в Magento, но я не уверен, так как я не являюсь разработчиком PHP, она может отражать только установку Magento и PHP на Windows
изменить этот файл
\app\code\core\Mage\Catalog\Model\Product\Api\V2.php
строка 57-62
foreach ($filters->complex_filter as $_filter) {
$_value = $_filter->value;
$preparedFilters[$_filter->key] = array(
$_value->key => $_value->value
);
}
до
foreach ($filters->complex_filter as $_field => $_filter) {
$preparedFilters[$_field] = array(
$_filter->key => $_filter->value
);
}
Я также заметил, что в другом файле V2.php этот фрагмент кода написан по-разному. API клиента такой же, как продукт, но API заказа написано так:
foreach ($filters->complex_filter as $_filter) {
$_value = $_filter->value;
if(is_object($_value)) {
$preparedFilters[][$_filter->key] = array(
$_value->key => $_value->value
);
} elseif(is_array($_value)) {
$preparedFilters[][$_filter->key] = array(
$_value['key'] => $_value['value']
);
} else {
$preparedFilters[][$_filter->key] = $_value;
}
}
Кто-нибудь может указать правильное использование массива в PHP?