1) недостаток _всех_ магазинных движков - в их универсальности и (как следствие) - тормознутости.
2) недостаток _всех_ магазинных движков - в том что они почти никогда не удовлетворяют клиента на 100% и все-равно приходится туда лезть
3) чужой код (который ни разу не документирован) и зачастую просто кошмарен (особенно какие-нибудь модули opencart). То есть надо очень плотно влезать в изучение движка, модулей. Если вы берете "готовое решение" - это ваще пиз@#$.
Идея что вы берете готовый магазин и он из коробки начинает работать - заманчива но на практике такого не бывает, его надо пилить и пилить. То есть более-менее адекватное решение при работе с опенкартом - весь фронт сделать заново, оставить кабинет продавца.