Shops listing (CPT VS Plugin)

To display the data from your Custom Post Type you can create a post template single-shop.php (for example) and place this in your theme folder.

NOTE: The filename must match the name of your CPT – ie single-{your_post_type}.php.

Then in this template you can display your data with the_field() – eg:

<?php the_field('opening_hours'); ?>

The plugin you are using for the CPTs / custom fields would probably have help docs that would give you some good examples.

You may also want to create a template archive-shop.php for the listing of all shops (make sure you’ve set has_archive ==> true for this CPT) – if not WordPress will default to the archive.php anyway. See https://developer.wordpress.org/themes/template-files-section/custom-post-type-template-files/ for more info on Custom Post Type template hierarchy.

If you want to avoid code there are several plugins that will help you do this, some with point & click options, others with simple [shortcodes]. Off the top of my head I think Beaver Builder + Beaver Themer and/or Elementor + Toolset would achieve what you are looking for.