{"full_name":"spree/spree","owner":"spree","name":"spree","url":"https://github.com/spree/spree","description":"Open Source Platform for DTC, B2B Commerce, Marketplaces & Omnichannel. REST APIs, TypeScript SDKs, and production-ready Next.js storefront. Self-host it. Own your data. No vendor lock-in. Zero platform fees.","homepage":"https://spreecommerce.org","topics":[],"language":"Ruby","license":"BSD-3-Clause","avatar":"https://avatars.githubusercontent.com/u/56702?v=4","created_at":"2008-03-10T14:45:35Z","pushed_at":"2026-11-10T08:58:56Z","metrics":{"stars":15826,"forks":5321,"watchers":78,"issues":4404,"prs":10630,"releases":273,"issues_open":null,"issues_closed":null,"prs_open":null,"prs_closed":null,"prs_merged":null,"discussions":56},"growth":{"day":{"stars":5,"forks":0,"base_day":"2026-11-09"}},"history":{"dates":["2026-11-09","2026-11-10"],"stars":[15821,15826],"forks":[5321,5321],"watchers":[78,78],"issues_open":[null,null],"prs_open":[null,null]},"boards":{},"same_owner":[],"issues":[{"number":9231,"title":"Taxes not including promotions with whole-order adjustments","comments":20,"created_at":"2019-02-04T18:50:41Z"},{"number":7890,"title":"Move cost_price at stock level (feature/suggestion/issue)","comments":9,"created_at":"2017-03-26T18:27:51Z"},{"number":10160,"title":"How to customize propduct properties??","comments":6,"created_at":"2020-05-13T05:15:52Z"},{"number":13966,"title":"Rules for multi-country promotions are impossible to create","comments":5,"created_at":"2026-04-30T01:56:45Z"},{"number":6460,"title":"Create Line Item promotion not removing line item when original item is removed from the cart","comments":5,"created_at":"2015-06-03T21:26:06Z"},{"number":14614,"title":"VIES VAT Registry Validation","comments":3,"created_at":"2026-09-10T09:36:04Z"},{"number":10874,"title":"Taxes rounding produces small amount deviation in order's tax total.","comments":3,"created_at":"2021-03-15T11:43:25Z"},{"number":14611,"title":"Order Change Substrate","comments":2,"created_at":"2026-09-10T09:35:57Z"}],"discussions":[{"number":14990,"title":"Spree 6.0","comments":0,"category":"General","created_at":"2026-10-27T13:34:38Z"},{"number":13970,"title":"Is it possible to integrate the store's front-end into a Docker Compose file?","comments":1,"category":"General","created_at":"2026-04-30T08:55:32Z"},{"number":13806,"title":"When will Spree V5.4 be released?","comments":1,"category":"General","created_at":"2026-03-20T18:07:15Z"},{"number":13497,"title":"Spree 5.3 with new Pricing engine, Customer Groups and Events & Subscribers workflows","comments":0,"category":"Show and tell","created_at":"2026-01-26T13:53:40Z"},{"number":13318,"title":"Spree 5.2 with New Features and Developer tools","comments":0,"category":"Show and tell","created_at":"2025-11-28T11:22:49Z"},{"number":13166,"title":"Extending Admin UI","comments":1,"category":"Q&A","created_at":"2025-10-04T18:15:27Z"},{"number":12948,"title":"How to delete the tag itself","comments":1,"category":"General","created_at":"2025-07-15T14:51:51Z"},{"number":12921,"title":"Spree 5.1 with new Features and Integrations","comments":0,"category":"Show and tell","created_at":"2025-07-03T14:56:00Z"}],"latest_release":{"name":"v6.0.3","tag":"v6.0.3","published_at":"2026-11-05T13:33:00Z","body":"# Spree 6.0.3\n\nA patch release for Spree 6.0. PayPal is back as an official payment provider that ships with Spree, AI agents connected to your store can now run every back-office action the Admin API offers, product lists show stock totals, and saving a product no longer drops categories or tags added elsewhere.\n\n```bash\nnpx spree upgrade\n```\n\n---\n\n## ✨ New features\n\n- **PayPal for Spree 6.** The `spree_paypal_checkout` gem now ships with Spree at the same version. It offers PayPal, Pay Later, Venmo and guest card payments in PayPal's window, honors your capture setting, and registers its own webhooks, so you only enter a client id and secret. Add it with `spree add paypal`. [#15031](https://github.com/spree/spree/pull/15031) by @mad-eel\n- **AI agents can run every back-office action.** Agents connected through the MCP server or the dashboard assistant can now approve returns, claims and exchanges, clone products, resend invitations and run every other Admin API action, with no extra setup. They can also reach records nested under another one, such as an order's items or a promotion's rules, and set up promotions with rules and actions. [#15086](https://github.com/spree/spree/pull/15086) [#15094](https://github.com/spree/spree/pull/15094) [#15079](https://github.com/spree/spree/pull/15079)\n- **Agents ask for approval only where it matters.** Uploading a file, starting an import or creating an export is no longer flagged as destructive, so agent apps can treat them as safe while still asking before deletes, refunds and other changes. [#15107](https://github.com/spree/spree/pull/15107)\n- **Activate, archive or draft one product through the API.** New Admin API endpoints move a single product's status and send the matching product event, so webhook subscribers hear about the change. [#15092](https://github.com/spree/spree/pull/15092)\n\n## 🧭 Admin dashboard improvements\n\n- **Stock totals on product lists.** The admin products list and the seller panel's products list show each product's units in stock across all its variants. The Admin and Seller APIs return the same figure as `total_on_hand`. [#15106](https://github.com/spree/spree/pull/15106) [#15109](https://github.com/spree/spree/pull/15109)\n- **Category mapper preview.** The Sellers section shows where the Spree Enterprise page for mapping each seller's own categories to your marketplace's categories will appear once installed. [#15111](https://github.com/spree/spree/pull/15111) by @mad-eel\n\n## 🐛 Bug fixes\n\n- Saving a product keeps the categories, collections and tags added after the page was opened, from another tab, a bulk action or an import. [#15111](https://github.com/spree/spree/pull/15111) by @mad-eel\n- The admin dashboard works when opened over plain HTTP at an address other than `localhost`, such as a server's IP address; saving no longer fails with \"crypto.randomUUID is not a function\". [#15087](https://github.com/spree/spree/pull/15087)\n- A signed-in customer subscribing to the newsletter with their own email in different letter case is subscribed straight away, without a confirmation email. [#15115](https://github.com/spree/spree/pull/15115)\n- Changing a product's status from two places at once sends one product event, not two. [#15097](https://github.com/spree/spree/pull/15097)\n- The translations dialog keeps the paragraphs and line breaks of the original text. [#15066](https://github.com/spree/spree/pull/15066)\n- Addresses keep the original letter case of their company name when the app encrypts that field. [#15102](https://github.com/spree/spree/pull/15102) by @mad-eel\n- Removing a product from carts no longer fails for a cart that was checked out in the meantime. [#15082](https://github.com/spree/spree/pull/15082)\n- An address the geocoder cannot find is reported as a warning instead of an error. [#15100](https://github.com/spree/spree/pull/15100)\n\n## ⬆️ Upgrading from 5.6\n\n- Stores that take PayPal on 5.6 can now upgrade to 6.0. The 5.6 → 6.0 upgrade adds two"},"readme":true,"readme_zh":false,"news":[],"stale":false,"snapshot_at":"2026-11-10T09:35:25Z","history_start":"2026-09-06"}