Заметил такую недоработку, или даже ошибку.
Когда у товара есть артикулы через выбор параметров

То ВСЕ параметры-характеристики, которые можно выбрать, заносятся в shopProduct->features_selectable. Хотя мы и устанавливаем самостоятельно нужные параметры, там они будут почему-то все. Ладно бы это никак не мешало, но при обновлении характеристик через shopProductFeaturesModel->setData первым же делом проверяется существование features_selectable с переданными кодами характеристик и если они будут найдены, то переданные характеристики просто становятся пустыми:
/**
* unset features_selectable and don't save them
*/
foreach ($codes as $code) {
if (isset($product->features_selectable[$code])) {
$data[$code] = array();
}
}
А что дальше? Дальше все значения этих характеристик, присвоенных товару, обнуляются, вместо того, чтоб не редактироваться вовсе. Почему бы не сделать unset?
1 комментарий
И да, зачем в features_selectable хранить все выбираемые характеристики, а не только те, которые установил для выбора пользователь?