Custom WordPress URL

You can use a slug, when you are registering the post type with register_post_type(). You can add this argument like this

$labels = array(
    //... add the labels as you need
   )
);

$args = array(
    'labels'             => $labels,
    //add other options as you need
    'rewrite'           => array('slug' => 'view-promotion')
);

register_post_type( 'promotion', $args );

}

EDIT:

You need some other identifier to differentiate between the page and your custom post type. Otherwise WordPress won’t be able to know whether you mean the view-promotion page or the custom post type.

Even something like this will work

...
'rewrite' => 'view-promotion/a',
...