Rewrite numeric ID parameter for hierarchical custom post type

Two issues –

your rewrite rule isn’t formatted correctly, this:

'shop-guide/shop-page/id/([^/]*)/'

should be:

'shop-guide/shop-page/id/([^/]*)/?$'

and if shop-guide and shop-page are parent / child pages, this:

'index.php?p=143&id=$matches[1]'

should be:

'index.php?pagename=shop-guide/shop-page&id=$matches[1]'