{"id":23765815,"url":"https://github.com/solidusio-contrib/solidus_multi_domain","last_synced_at":"2026-03-06T08:01:53.127Z","repository":{"id":32461502,"uuid":"36041211","full_name":"solidusio-contrib/solidus_multi_domain","owner":"solidusio-contrib","description":"Multi-tenancy for your Solidus store.","archived":false,"fork":false,"pushed_at":"2025-05-24T08:57:31.000Z","size":497,"stargazers_count":50,"open_issues_count":3,"forks_count":68,"subscribers_count":13,"default_branch":"main","last_synced_at":"2025-05-25T01:08:45.693Z","etag":null,"topics":["ecommerce","extension","multi-domain","multi-tenancy","solidus","store"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/solidusio-contrib.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-05-21T22:53:47.000Z","updated_at":"2025-02-21T14:57:41.000Z","dependencies_parsed_at":"2025-01-15T01:17:21.172Z","dependency_job_id":"4e5cc4a9-91bc-4c27-a89c-76cda48f4363","html_url":"https://github.com/solidusio-contrib/solidus_multi_domain","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/solidusio-contrib/solidus_multi_domain","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solidusio-contrib%2Fsolidus_multi_domain","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solidusio-contrib%2Fsolidus_multi_domain/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solidusio-contrib%2Fsolidus_multi_domain/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solidusio-contrib%2Fsolidus_multi_domain/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/solidusio-contrib","download_url":"https://codeload.github.com/solidusio-contrib/solidus_multi_domain/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solidusio-contrib%2Fsolidus_multi_domain/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30166859,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T07:56:45.623Z","status":"ssl_error","status_checked_at":"2026-03-06T07:55:55.621Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ecommerce","extension","multi-domain","multi-tenancy","solidus","store"],"created_at":"2024-12-31T23:18:00.345Z","updated_at":"2026-03-06T08:01:53.092Z","avatar_url":"https://github.com/solidusio-contrib.png","language":"Ruby","readme":"SolidusMultiDomain\n==================\n\n[![CircleCI](https://circleci.com/gh/solidusio-contrib/solidus_multi_domain.svg?style=svg)](https://circleci.com/gh/solidusio-contrib/solidus_multi_domain)\n\nThis extension allows a single Solidus instance to have several customer facing\nstores, with a single shared backend administration system (i.e. multi-store,\nsingle-vendor).\n\nCurrent features:\n------------------\n\n1. **Store** model which has the following attributes:\n\n    1.1 name - The display name for the store.\n\n    1.2 domains - a line separated list of fully qualified domain names used to\n    associate a customers session with a particular store (you can use\n    localhost and/or IP addresses too).\n\n    1.3 code - which is a abbreviated version of the store's name (used as the\n    layout directory name, and also helpful for separating partials by store).\n\n    1.4 default - one store should be marked a default as a fallback in case\n    the URL being used to access the site cannot be matched against any of the\n    configured stores.\n\n2. Stores and domains can be maintained via the configuration section of the\n   Admin interface\n\n2. Each store can have its own layout(s) - these layouts should be located in\n   your site's theme extension in the\n   app/views/spree/layouts/_store#code_/directory. So, if you have a store\n   with a code of \"alpha\" you should store its default layout in\n   app/views/spree/layouts/alpha/spree_application.html.erb\n\n3. Each product can be assigned to one or more stores.\n\n4. All orders are associated with the store / domain that they were placed on.\n\nLooking for additional information? Checkout out the [wiki](https://github.com/solidusio/solidus_multi_domain/wiki).\n\nInstallation\n------------\n\nAdd solidus_multi_domain to your Gemfile:\n\n```ruby\ngem 'solidus_multi_domain', github: 'solidusio-contrib/solidus_multi_domain'\n```\n\nBundle your dependencies and run the installation generator:\n\n```shell\nbundle\nbundle exec rails g solidus_multi_domain:install\n```\n\nYou should see 'Stores \u0026 Domains' in Configuration tab of Spree Admin.\n\nDevelopment\n-------\n\nTo see if your stores indeed do point to the correct and unique domains, start your server with\n```shell\nrails s -p 3000 -b lvh.me\n```\nand give a store a domain like `store1.lvh.me`.\n\nThen you can access to your store by going to `http://store1.lvh.me:3000/` in your browser.\n\nIf you'd like access to Solidus factories for your own tests that work well\nwith this extension, add the following to your `spec_helper`:\n```ruby\nrequire \"spree_multi_domain/testing_support/factory_overrides\"\n```\n\nAuthorization\n-------------\n\nFor discrete authorization, two permission sets have been added to allow for granular display in the admin.\n\n`Spree::PermissionSets::StoreDisplay` and `Spree::PermissionSets::StoreManagement` have been added and can be assigned via [RoleConfiguration](http://docs.solidus.io/Spree/RoleConfiguration.html)\n\nTesting\n-------\n\nFirst bundle your dependencies, then run `rake`. `rake` will default to building the dummy app if it does not exist, then it will run specs, and [Rubocop](https://github.com/bbatsov/rubocop) static code analysis. The dummy app can be regenerated by using `rake test_app`.\n\n```shell\nbundle\nbin/rake\n```\n\nWhen testing your application's integration with this extension you may use its factories.\nSimply add this require statement to your spec_helper:\n\n```ruby\nrequire 'solidus_multi_domain/factories'\n```\n\nReleasing\n---------\n\nYour new extension version can be released using `gem-release` like this:\n\n```shell\nbundle exec gem bump -v VERSION --tag --push --remote upstream \u0026\u0026 gem release\n```\n\nCopyright (c) 2016 Solidus Team, released under the New BSD License\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolidusio-contrib%2Fsolidus_multi_domain","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsolidusio-contrib%2Fsolidus_multi_domain","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolidusio-contrib%2Fsolidus_multi_domain/lists"}