Factor product scopes to allow simple scopes to be added from an extension
Factor product scopes to allow simple scopes to be added from an extension

Fixes #2608

beni55/spree,Nevensoft/spree,tesserakt/clean_spree,gautamsawhney/spree,carlesjove/spree,degica/spree,Hates/spree,Boomkat/spree,caiqinghua/spree,HealthWave/spree,jordan-brough/solidus,njerrywerry/spree,athal7/solidus,trigrass2/spree,pervino/solidus,Antdesk/karpal-spree,shaywood2/spree,madetech/spree,vmatekole/spree,KMikhaylovCTG/spree,archSeer/spree,madetech/spree,madetech/spree,firman/spree,vinsol/spree,hoanghiep90/spree,sideci-sample/sideci-sample-spree,bricesanchez/spree,raow/spree,camelmasa/spree,zaeznet/spree,grzlus/spree,jordan-brough/spree,lsirivong/solidus,knuepwebdev/FloatTubeRodHolders,orenf/spree,Arpsara/solidus,Senjai/solidus,mindvolt/spree,agient/agientstorefront,omarsar/spree,pervino/solidus,alvinjean/spree,alepore/spree,brchristian/spree,fahidnasir/spree,sunny2601/spree,lyzxsc/spree,codesavvy/sandbox,Engeltj/spree,vmatekole/spree,jordan-brough/spree,FadliKun/spree,azclick/spree,camelmasa/spree,carlesjove/spree,jspizziri/spree,codesavvy/sandbox,Boomkat/spree,KMikhaylovCTG/spree,jparr/spree,softr8/spree,devilcoders/solidus,lsirivong/spree,surfdome/spree,pjmj777/spree,beni55/spree,sliaquat/spree,azranel/spree,freerunningtech/spree,priyank-gupta/spree,Boomkat/spree,rakibulislam/spree,tailic/spree,reinaris/spree,kewaunited/spree,sfcgeorge/spree,gregoryrikson/spree-sample,xuewenfei/solidus,orenf/spree,watg/spree,reinaris/spree,caiqinghua/spree,Hates/spree,nooysters/spree,TrialGuides/spree,brchristian/spree,Machpowersystems/spree_mach,yushine/spree,reidblomquist/spree,progsri/spree,keatonrow/spree,miyazawatomoka/spree,PhoenixTeam/spree_phoenix,berkes/spree,net2b/spree,joanblake/spree,DynamoMTL/spree,maybii/spree,yushine/spree,lsirivong/spree,beni55/spree,rajeevriitm/spree,CJMrozek/spree,net2b/spree,softr8/spree,hifly/spree,woboinc/spree,pulkit21/spree,locomotivapro/spree,jordan-brough/spree,progsri/spree,vulk/spree,Nevensoft/spree,project-eutopia/spree,edgward/spree,karlitxo/spree,jaspreet21anand/spree,LBRapid/spree,agient/agientstorefront,forkata/solidus,Mayvenn/spree,bjornlinder/Spree,shaywood2/spree,pervino/solidus,rakibulislam/spree,Kagetsuki/spree,jaspreet21anand/spree,raow/spree,adaddeo/spree,pulkit21/spree,project-eutopia/spree,zaeznet/spree,rbngzlv/spree,pervino/spree,shioyama/spree,Migweld/spree,gautamsawhney/spree,Migweld/spree,assembledbrands/spree,LBRapid/spree,Mayvenn/spree,jsurdilla/solidus,CiscoCloud/spree,reidblomquist/spree,dandanwei/spree,bjornlinder/Spree,kewaunited/spree,kitwalker12/spree,APohio/spree,joanblake/spree,radarseesradar/spree,bonobos/solidus,RatioClothing/spree,Senjai/spree,firman/spree,rbngzlv/spree,grzlus/solidus,omarsar/spree,camelmasa/spree,delphsoft/spree-store-ballchair,lsirivong/spree,Engeltj/spree,APohio/spree,lyzxsc/spree,fahidnasir/spree,codesavvy/sandbox,reidblomquist/spree,jsurdilla/solidus,radarseesradar/spree,APohio/spree,archSeer/spree,derekluo/spree,cutefrank/spree,welitonfreitas/spree,knuepwebdev/FloatTubeRodHolders,caiqinghua/spree,omarsar/spree,jsurdilla/solidus,grzlus/spree,PhoenixTeam/spree_phoenix,CiscoCloud/spree,vinayvinsol/spree,azranel/spree,mindvolt/spree,pulkit21/spree,lsirivong/solidus,Hawaiideveloper/shoppingcart,jordan-brough/solidus,njerrywerry/spree,CiscoCloud/spree,assembledbrands/spree,devilcoders/solidus,robodisco/spree,azclick/spree,vinsol/spree,vulk/spree,robodisco/spree,hifly/spree,archSeer/spree,gautamsawhney/spree,pervino/spree,HealthWave/spree,Senjai/solidus,DynamoMTL/spree,brchristian/spree,quentinuys/spree,odk211/spree,volpejoaquin/spree,athal7/solidus,bonobos/solidus,Antdesk/karpal-spree,richardnuno/solidus,jspizziri/spree,abhishekjain16/spree,piousbox/spree,nooysters/spree,FadliKun/spree,useiichi/spree,jhawthorn/spree,ahmetabdi/spree,tomash/spree,TrialGuides/spree,agient/agientstorefront,fahidnasir/spree,karlitxo/spree,edgward/spree,jordan-brough/solidus,yushine/spree,tomash/spree,JuandGirald/spree,alejandromangione/spree,nooysters/spree,urimikhli/spree,athal7/solidus,ramkumar-kr/spree,TrialGuides/spree,volpejoaquin/spree,pjmj777/spree,Senjai/spree,dandanwei/spree,shekibobo/spree,piousbox/spree,Antdesk/karpal-spree,dotandbo/spree,ayb/spree,freerunningtech/spree,CJMrozek/spree,keatonrow/spree,volpejoaquin/spree,mleglise/spree,odk211/spree,NerdsvilleCEO/spree,abhishekjain16/spree,cutefrank/spree,rajeevriitm/spree,lsirivong/solidus,Lostmyname/spree,alvinjean/spree,ujai/spree,lsirivong/solidus,trigrass2/spree,scottcrawford03/solidus,bjornlinder/Spree,SadTreeFriends/spree,yomishra/pce,jimblesm/spree,alejandromangione/spree,vcavallo/spree,siddharth28/spree,Arpsara/solidus,sfcgeorge/spree,sunny2601/spree,dafontaine/spree,APohio/spree,lsirivong/spree,project-eutopia/spree,rakibulislam/spree,rakibulislam/spree,bricesanchez/spree,patdec/spree,jimblesm/spree,JDutil/spree,njerrywerry/spree,ahmetabdi/spree,locomotivapro/spree,derekluo/spree,assembledbrands/spree,shioyama/spree,vcavallo/spree,joanblake/spree,sliaquat/spree,kitwalker12/spree,imella/spree,jordan-brough/solidus,sfcgeorge/spree,berkes/spree,woboinc/spree,xuewenfei/solidus,useiichi/spree,jimblesm/spree,vinsol/spree,carlesjove/spree,shekibobo/spree,zamiang/spree,azranel/spree,SadTreeFriends/spree,siddharth28/spree,priyank-gupta/spree,sfcgeorge/spree,madetech/spree,adaddeo/spree,yomishra/pce,piousbox/spree,yomishra/pce,sliaquat/spree,CJMrozek/spree,jeffboulet/spree,Kagetsuki/spree,pervino/spree,grzlus/solidus,wolfieorama/spree,delphsoft/spree-store-ballchair,dotandbo/spree,biagidp/spree,Nevensoft/spree,pervino/spree,calvinl/spree,moneyspyder/spree,abhishekjain16/spree,shekibobo/spree,hifly/spree,Hates/spree,Hawaiideveloper/shoppingcart,RatioClothing/spree,Ropeney/spree,keatonrow/spree,shaywood2/spree,vmatekole/spree,woboinc/spree,vinsol/spree,pjmj777/spree,alejandromangione/spree,raow/spree,adaddeo/spree,Arpsara/solidus,ramkumar-kr/spree,gautamsawhney/spree,Senjai/solidus,groundctrl/spree,sideci-sample/sideci-sample-spree,jsurdilla/solidus,grzlus/solidus,AgilTec/spree,jimblesm/spree,cutefrank/spree,tailic/spree,patdec/spree,hifly/spree,volpejoaquin/spree,jhawthorn/spree,richardnuno/solidus,urimikhli/spree,ckk-scratch/solidus,ahmetabdi/spree,lyzxsc/spree,sideci-sample/sideci-sample-spree,hoanghiep90/spree,robodisco/spree,knuepwebdev/FloatTubeRodHolders,codesavvy/sandbox,Kagetsuki/spree,TimurTarasenko/spree,HealthWave/spree,yushine/spree,Engeltj/spree,builtbybuffalo/spree,ujai/spree,jasonfb/spree,gregoryrikson/spree-sample,maybii/spree,joanblake/spree,kewaunited/spree,sunny2601/spree,Ropeney/spree,FadliKun/spree,net2b/spree,Machpowersystems/spree_mach,miyazawatomoka/spree,tancnle/spree,LBRapid/spree,yiqing95/spree,Arpsara/solidus,PhoenixTeam/spree_phoenix,DarkoP/spree,Engeltj/spree,miyazawatomoka/spree,dandanwei/spree,Senjai/solidus,alepore/spree,TimurTarasenko/spree,tesserakt/clean_spree,Kagetsuki/spree,zaeznet/spree,alejandromangione/spree,abhishekjain16/spree,biagidp/spree,pervino/solidus,tailic/spree,forkata/solidus,calvinl/spree,tesserakt/clean_spree,yiqing95/spree,welitonfreitas/spree,jparr/spree,xuewenfei/solidus,jaspreet21anand/spree,Hawaiideveloper/shoppingcart,yiqing95/spree,quentinuys/spree,degica/spree,ahmetabdi/spree,DarkoP/spree,surfdome/spree,DynamoMTL/spree,JuandGirald/spree,ckk-scratch/solidus,raow/spree,freerunningtech/spree,ramkumar-kr/spree,thogg4/spree,adaddeo/spree,caiqinghua/spree,miyazawatomoka/spree,edgward/spree,vinayvinsol/spree,welitonfreitas/spree,dafontaine/spree,piousbox/spree,KMikhaylovCTG/spree,Migweld/spree,tancnle/spree,tomash/spree,jeffboulet/spree,archSeer/spree,ayb/spree,brchristian/spree,reinaris/spree,patdec/spree,hoanghiep90/spree,delphsoft/spree-store-ballchair,berkes/spree,Hawaiideveloper/shoppingcart,camelmasa/spree,rbngzlv/spree,jasonfb/spree,omarsar/spree,thogg4/spree,priyank-gupta/spree,ramkumar-kr/spree,gregoryrikson/spree-sample,trigrass2/spree,locomotivapro/spree,pulkit21/spree,JDutil/spree,Machpowersystems/spree_mach,agient/agientstorefront,zamiang/spree,tancnle/spree,AgilTec/spree,Hates/spree,tancnle/spree,gregoryrikson/spree-sample,sunny2601/spree,builtbybuffalo/spree,urimikhli/spree,grzlus/solidus,robodisco/spree,SadTreeFriends/spree,odk211/spree,jaspreet21anand/spree,net2b/spree,karlitxo/spree,KMikhaylovCTG/spree,ckk-scratch/solidus,StemboltHQ/spree,kitwalker12/spree,jeffboulet/spree,Nevensoft/spree,StemboltHQ/spree,quentinuys/spree,berkes/spree,alvinjean/spree,Boomkat/spree,reinaris/spree,zamiang/spree,NerdsvilleCEO/spree,scottcrawford03/solidus,moneyspyder/spree,alvinjean/spree,mleglise/spree,bonobos/solidus,moneyspyder/spree,vinayvinsol/spree,dotandbo/spree,mleglise/spree,JDutil/spree,ayb/spree,richardnuno/solidus,dotandbo/spree,rbngzlv/spree,azranel/spree,DarkoP/spree,thogg4/spree,Mayvenn/spree,siddharth28/spree,watg/spree,dandanwei/spree,jparr/spree,JuandGirald/spree,delphsoft/spree-store-ballchair,mindvolt/spree,RatioClothing/spree,richardnuno/solidus,NerdsvilleCEO/spree,calvinl/spree,Migweld/spree,karlitxo/spree,degica/spree,Lostmyname/spree,jspizziri/spree,useiichi/spree,CJMrozek/spree,Lostmyname/spree,shioyama/spree,devilcoders/solidus,calvinl/spree,yiqing95/spree,lyzxsc/spree,softr8/spree,jspizziri/spree,radarseesradar/spree,wolfieorama/spree,StemboltHQ/spree,DynamoMTL/spree,groundctrl/spree,DarkoP/spree,orenf/spree,ckk-scratch/solidus,devilcoders/solidus,mleglise/spree,alepore/spree,vulk/spree,bricesanchez/spree,cutefrank/spree,forkata/solidus,orenf/spree,quentinuys/spree,builtbybuffalo/spree,ujai/spree,thogg4/spree,scottcrawford03/solidus,mindvolt/spree,nooysters/spree,tesserakt/clean_spree,zaeznet/spree,TimurTarasenko/spree,Mayvenn/spree,moneyspyder/spree,project-eutopia/spree,derekluo/spree,builtbybuffalo/spree,jeffboulet/spree,forkata/solidus,AgilTec/spree,useiichi/spree,vinayvinsol/spree,bonobos/solidus,beni55/spree,hoanghiep90/spree,vcavallo/spree,patdec/spree,watg/spree,dafontaine/spree,surfdome/spree,softr8/spree,athal7/solidus,rajeevriitm/spree,rajeevriitm/spree,JuandGirald/spree,grzlus/spree,NerdsvilleCEO/spree,azclick/spree,TrialGuides/spree,jasonfb/spree,CiscoCloud/spree,locomotivapro/spree,siddharth28/spree,Ropeney/spree,zamiang/spree,shekibobo/spree,reidblomquist/spree,biagidp/spree,shaywood2/spree,xuewenfei/solidus,carlesjove/spree,wolfieorama/spree,keatonrow/spree,njerrywerry/spree,groundctrl/spree,tomash/spree,SadTreeFriends/spree,progsri/spree,firman/spree,grzlus/spree,edgward/spree,trigrass2/spree,dafontaine/spree,azclick/spree,jparr/spree,TimurTarasenko/spree,fahidnasir/spree,radarseesradar/spree,ayb/spree,surfdome/spree,welitonfreitas/spree,maybii/spree,AgilTec/spree,groundctrl/spree,JDutil/spree,derekluo/spree,FadliKun/spree,jhawthorn/spree,imella/spree,firman/spree,jasonfb/spree,priyank-gupta/spree,vcavallo/spree,Lostmyname/spree,maybii/spree,Ropeney/spree,progsri/spree,kewaunited/spree,scottcrawford03/solidus,odk211/spree,vmatekole/spree,vulk/spree,Senjai/spree,PhoenixTeam/spree_phoenix,wolfieorama/spree,sliaquat/spree,imella/spree