WordPress custom post type permalink: website.com/post-name/post-id

product/([0-9]+)?$

translates to product/ followed by any number or nothing (and nothing more, not even a trailing slash). This doesn’t sound like the thing you want to achieve.

Instead, try the following

function wpse33551_rewrites_init(){
    add_rewrite_rule(
        '^([^/]+)/([0-9]+)/?$',
        'index.php?post_type=artikelen&p=$matches[2]',
        'top'
    );
}

which translates to:

  • ^ start of the string (ie, there is nothing else in front)
  • ([^/]+): at least one character that is not /
  • /: a slash
  • ([0-9]+): at least one number
  • /?: zero or one (trailing) slash
  • $: end of the string