После смены движка с myisam на innodb (как рекомендует статья Яна Куакова да и поддержка) блоки с индивидуальным наполнением товаров перестали отображаться.
Вот такие
Разработчики нашли проблему.
В файле app/Tygh/BlockManager/Block.php есть метод getById, в которой есть код
$block = db_get_row(
"SELECT b.*, d.*, c.* FROM ?:bm_blocks as b "
. "LEFT JOIN ?:bm_blocks_descriptions as d ON b.block_id = d.block_id "
. "LEFT JOIN ?:bm_blocks_content as c ON b.block_id = c.block_id AND d.lang_code=c.lang_code "
. "WHERE b.block_id = ?i AND d.lang_code=?s ?p ORDER BY snapping_id DESC LIMIT 1",
$block_id,
$lang_code,
$this->getCompanyCondition('b.company_id') . $this->_generateContentCondition($dynamic_object)
);
В действительности в БД существуют две записи, но LIMIT берет первую запись, и получается что на на разных типах движков выдаются разные строки.
На myisam возвращается строка с конкретным object_id и индивидуальным наполнением, а на innodb -с 0-м object_id без наполнения.
И вот предложенное решение.
Просьба внести правки в коробку и подарить мне продление лицензии на год, т.к. поиски проблемы как раз столько и стоили.