The simple way to achieve what you are looking for is to wrap all of the controls inside a ShopData tag and then manually bind your shop to that control.
<script language="c#" runat="server">
protected override void OnLoad ( EventArgs e )
{
base.OnLoad ( e );
MyShopCtrl.DataSource = Shops.GetShop("ShopApplicationKey")
}
</script>
<ShopData runat=server id=MyShopCtrl >
<ContentTemplate>
...Your shop cotrols in here....
</ContentTemplate>
</ShopData>
Of course if this was a common occurance then you'd want to inherit from ShopData and create your own wrapper, that binds automatically.
Rob