Делать с нуля можно только тогда, когда очень хорошо понимаешь, чем тебя не устраивают существующие готовые решения. А это можно понять только поработав с существующими решениями. Ну, или слепив что-то свое, которое почти наверняка придется несколько раз переделывать, как выше было отмечено.
И, конечно же, многое упирается в сроки и конечную задачу. Если есть возможность неспешно что-то пилить, переделывать, но при этом не зарабатывать, а постепенно двигаться к идеалу, то можно экспериментировать. Если задача стоит быстро запустить магазин, то брать надо готовое.
Если отвечать кратко, то ответ такой: первый магазин надо делать на готовом движке. Если уже есть опыт запуска и эксплуатации, и есть четкое понимание, чего хотите от магазина, то можно пилить и свое.