Столкнулся со схожей проблемой. Решения в интернете не устроили. Сделал свой вариант, может кому пригодится.
Добавляем в 
catalog\model\catalog\product.php новую функцию
// получение пути шаблона
public function getProductLayoutRoute($layout_id) {
	$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "layout_route WHERE layout_id = '" . (int)$layout_id . "'");
	if ($query->num_rows) {
		return $query->row['route'];
	} else {
		return "";
	}
}
Меняем в 
catalog\controller\product\product.php строку
$this->response->setOutput($this->load->view('product/product', $data));
на
$layout_id = $this->model_catalog_product->getProductLayoutId($product_id);
if($layout_id) {
	$route = $this->model_catalog_product->getProductLayoutRoute($layout_id);
	// проверяем существование файла шаблона
	$filepath = DIR_TEMPLATE . $this->config->get('config_theme') . '/template/' . $route . '.tpl';
	if(file_exists($filepath)) {
		$this->response->setOutput($this->load->view($route, $data));
	} else {
		$this->response->setOutput($this->load->view('product/product', $data));
	}
} else {
	$this->response->setOutput($this->load->view('product/product', $data));
}
Далее, создаем копию product.tpl и называем его, скажем, zakaz.tpl. Контроллер копировать НЕ надо. 
В админке добавляем макет Zakaz, указываем путь к новому файлу шаблона product/zakaz (без tpl). Идем в товар, меняю ему дизайн с Product на Zakaz.