@spree/docs 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/dist/api-reference/store-api/errors.md +2 -2
  2. package/dist/api-reference/store-api/idempotency.md +1 -1
  3. package/dist/api-reference/store-api/localization.md +4 -4
  4. package/dist/api-reference/store-api/metadata.md +2 -2
  5. package/dist/api-reference/store.yaml +10599 -0
  6. package/dist/api-reference/storefront/authentication.md +2 -2
  7. package/dist/api-reference/tutorials/adyen-integration-guide-for-android.md +2 -2
  8. package/dist/api-reference/tutorials/adyen-integration-guide-for-ios.md +2 -2
  9. package/dist/api-reference/tutorials/quick-checkout-with-stripe.md +8 -8
  10. package/dist/api-reference/v2/introduction.md +2 -2
  11. package/dist/api-reference/webhooks-events.md +2 -2
  12. package/dist/developer/admin/admin.md +18 -18
  13. package/dist/developer/admin/components.md +1 -1
  14. package/dist/developer/admin/extending-ui.md +26 -26
  15. package/dist/developer/admin/helper-methods.md +2 -2
  16. package/dist/developer/admin/navigation.md +5 -5
  17. package/dist/developer/admin/tables.md +4 -4
  18. package/dist/developer/cli/quickstart.md +2 -2
  19. package/dist/developer/contributing/creating-an-extension.md +12 -12
  20. package/dist/developer/contributing/quickstart.md +1 -1
  21. package/dist/developer/core-concepts/addresses.md +11 -11
  22. package/dist/developer/core-concepts/adjustments.md +8 -8
  23. package/dist/developer/core-concepts/architecture.md +21 -21
  24. package/dist/developer/core-concepts/calculators.md +4 -4
  25. package/dist/developer/core-concepts/customers.md +9 -9
  26. package/dist/developer/core-concepts/events.md +5 -5
  27. package/dist/developer/core-concepts/inventory.md +5 -5
  28. package/dist/developer/core-concepts/markets.md +10 -10
  29. package/dist/developer/core-concepts/media.md +3 -3
  30. package/dist/developer/core-concepts/metafields.md +6 -6
  31. package/dist/developer/core-concepts/orders.md +14 -14
  32. package/dist/developer/core-concepts/payments.md +9 -9
  33. package/dist/developer/core-concepts/pricing.md +10 -10
  34. package/dist/developer/core-concepts/products.md +10 -10
  35. package/dist/developer/core-concepts/promotions.md +5 -5
  36. package/dist/developer/core-concepts/reports.md +2 -2
  37. package/dist/developer/core-concepts/search-filtering.md +7 -7
  38. package/dist/developer/core-concepts/shipments.md +13 -13
  39. package/dist/developer/core-concepts/slugs.md +3 -3
  40. package/dist/developer/core-concepts/staff-roles.md +7 -7
  41. package/dist/developer/core-concepts/store-credits-gift-cards.md +4 -4
  42. package/dist/developer/core-concepts/stores.md +15 -15
  43. package/dist/developer/core-concepts/taxes.md +11 -11
  44. package/dist/developer/core-concepts/translations.md +6 -6
  45. package/dist/developer/core-concepts/users.md +12 -12
  46. package/dist/developer/core-concepts/webhooks.md +8 -8
  47. package/dist/developer/create-spree-app/quickstart.md +5 -5
  48. package/dist/developer/customization/api.md +2 -2
  49. package/dist/developer/customization/authentication.md +2 -2
  50. package/dist/developer/customization/checkout.md +7 -7
  51. package/dist/developer/customization/decorators.md +24 -24
  52. package/dist/developer/customization/dependencies.md +1 -1
  53. package/dist/developer/customization/metadata.md +3 -3
  54. package/dist/developer/customization/permissions.md +1 -1
  55. package/dist/developer/customization/quickstart.md +9 -9
  56. package/dist/developer/customization/v4/checkout.md +3 -3
  57. package/dist/developer/customization/v4/deface.md +1 -1
  58. package/dist/developer/deployment/assets.md +1 -1
  59. package/dist/developer/deployment/aws.md +5 -5
  60. package/dist/developer/deployment/docker.md +2 -2
  61. package/dist/developer/deployment/environment_variables.md +1 -1
  62. package/dist/developer/deployment/render.md +5 -5
  63. package/dist/developer/getting-started/quickstart.md +2 -2
  64. package/dist/developer/how-to/custom-payment-method.md +6 -6
  65. package/dist/developer/how-to/custom-promotion.md +7 -7
  66. package/dist/developer/how-to/custom-report.md +3 -3
  67. package/dist/developer/how-to/custom-search-provider.md +7 -7
  68. package/dist/developer/multi-store/quickstart.md +1 -1
  69. package/dist/developer/multi-tenant/quickstart.md +1 -1
  70. package/dist/developer/sdk/authentication.md +1 -1
  71. package/dist/developer/sdk/configuration.md +1 -1
  72. package/dist/developer/sdk/store/markets.md +3 -3
  73. package/dist/developer/storefront/nextjs/customization.md +1 -1
  74. package/dist/developer/storefront/nextjs/quickstart.md +2 -2
  75. package/dist/developer/tutorial/admin.md +2 -2
  76. package/dist/developer/tutorial/extending-models.md +15 -15
  77. package/dist/developer/tutorial/file-uploads.md +1 -1
  78. package/dist/developer/tutorial/introduction.md +7 -7
  79. package/dist/developer/tutorial/rich-text.md +1 -1
  80. package/dist/developer/tutorial/testing.md +5 -61
  81. package/dist/developer/upgrades/3.7-to-4.0.md +1 -1
  82. package/dist/developer/upgrades/4.0-to-4.1.md +1 -1
  83. package/dist/developer/upgrades/4.10-to-5.0.md +1 -1
  84. package/dist/developer/upgrades/4.5-to-4.6.md +4 -4
  85. package/dist/developer/upgrades/4.8-to-4.9.md +1 -1
  86. package/dist/developer/upgrades/4.9-to-4.10.md +1 -1
  87. package/dist/developer/upgrades/5.0-to-5.1.md +1 -1
  88. package/dist/developer/upgrades/5.1-to-5.2.md +2 -2
  89. package/dist/developer/upgrades/5.2-to-5.3.md +2 -2
  90. package/dist/developer/upgrades/5.3-to-5.4.md +5 -5
  91. package/dist/developer/upgrades/quickstart.md +1 -1
  92. package/dist/integrations/integrations.md +10 -10
  93. package/dist/integrations/payments/adyen.md +1 -1
  94. package/dist/integrations/search/meilisearch.md +2 -2
  95. package/package.json +7 -2
  96. package/dist/developer/storefront/blocks.md +0 -285
  97. package/dist/developer/storefront/custom-css.md +0 -260
  98. package/dist/developer/storefront/custom-javascript.md +0 -166
  99. package/dist/developer/storefront/helper-methods.md +0 -1288
  100. package/dist/developer/storefront/links.md +0 -298
  101. package/dist/developer/storefront/pages.md +0 -163
  102. package/dist/developer/storefront/sections.md +0 -569
  103. package/dist/developer/storefront/storefront.md +0 -56
  104. package/dist/developer/storefront/themes.md +0 -161
  105. package/dist/developer/tutorial/page-builder.md +0 -487
  106. package/dist/developer/tutorial/seo.md +0 -332
  107. package/dist/developer/tutorial/storefront.md +0 -352
@@ -13,7 +13,7 @@ Markets → Countries → Zones → Tax Rates & Shipping Methods
13
13
  ↘ Addresses
14
14
  ```
15
15
 
16
- - [**Markets**](/developer/core-concepts/markets) group countries into selling regions with their own currency and locale
16
+ - [**Markets**](markets.md) group countries into selling regions with their own currency and locale
17
17
  - **Countries** and **States** provide the geographic data for addresses
18
18
  - **Zones** group countries or states together to define where tax rates and shipping methods apply
19
19
  - **Addresses** tie a customer to a specific location, determining which zones — and therefore which taxes and shipping options — apply to their order
@@ -156,7 +156,7 @@ curl -X PATCH 'https://api.mystore.com/api/v3/store/carts/cart_xxx' \
156
156
 
157
157
  ## Countries
158
158
 
159
- Countries are the foundation of Spree's geographic system. They connect to [Markets](/developer/core-concepts/markets), contain states, and belong to zones.
159
+ Countries are the foundation of Spree's geographic system. They connect to [Markets](markets.md), contain states, and belong to zones.
160
160
 
161
161
  Each country includes metadata that drives address form behavior:
162
162
 
@@ -170,7 +170,7 @@ Each country includes metadata that drives address form behavior:
170
170
 
171
171
  ### Which Countries Are Available?
172
172
 
173
- Only countries assigned to a [Market](/developer/core-concepts/markets) are available during checkout. This lets you control exactly where you sell.
173
+ Only countries assigned to a [Market](markets.md) are available during checkout. This lets you control exactly where you sell.
174
174
 
175
175
 
176
176
  ```typescript SDK
@@ -229,7 +229,7 @@ For countries without predefined states, addresses accept a free-text `state_nam
229
229
 
230
230
  ## Zones
231
231
 
232
- Zones group countries or states together for [tax](/developer/core-concepts/taxes) and [shipping](/developer/core-concepts/shipments) rules. A zone is either **country-based** or **state-based**.
232
+ Zones group countries or states together for [tax](taxes.md) and [shipping](shipments.md) rules. A zone is either **country-based** or **state-based**.
233
233
 
234
234
  **Examples:**
235
235
  - **EU VAT** (country zone) — Germany, France, Italy, Spain, ... → applies EU VAT rates
@@ -237,14 +237,14 @@ Zones group countries or states together for [tax](/developer/core-concepts/taxe
237
237
  - **Domestic Shipping** (country zone) — US, CA → enables domestic shipping methods
238
238
 
239
239
  When a customer enters their address at checkout, Spree matches it against zones to determine:
240
- 1. Which **tax rates** apply (see [Taxes](/developer/core-concepts/taxes))
241
- 2. Which **shipping methods** are available (see [Shipments](/developer/core-concepts/shipments))
240
+ 1. Which **tax rates** apply (see [Taxes](taxes.md))
241
+ 2. Which **shipping methods** are available (see [Shipments](shipments.md))
242
242
 
243
243
  Zones are configured in the admin dashboard — storefront developers don't interact with them directly via the API.
244
244
 
245
245
  ### Tax Zones and Markets
246
246
 
247
- Each [Market](/developer/core-concepts/markets) resolves a tax zone from its default country. This means product prices display the correct tax treatment (inclusive or exclusive) before the customer enters an address — just from knowing their market.
247
+ Each [Market](markets.md) resolves a tax zone from its default country. This means product prices display the correct tax treatment (inclusive or exclusive) before the customer enters an address — just from knowing their market.
248
248
 
249
249
  ## How It All Fits Together
250
250
 
@@ -259,7 +259,7 @@ Here's how geography flows through a typical checkout:
259
259
 
260
260
  ## Related Documentation
261
261
 
262
- - [Markets](/developer/core-concepts/markets) — Multi-region commerce with currency, locale, and country grouping
263
- - [Taxes](/developer/core-concepts/taxes) — How zones and addresses affect taxation
264
- - [Shipments](/developer/core-concepts/shipments) — How zones and addresses affect shipping availability
265
- - [Orders](/developer/core-concepts/orders) — Order billing and shipping addresses
262
+ - [Markets](markets.md) — Multi-region commerce with currency, locale, and country grouping
263
+ - [Taxes](taxes.md) — How zones and addresses affect taxation
264
+ - [Shipments](shipments.md) — How zones and addresses affect shipping availability
265
+ - [Orders](orders.md) — Order billing and shipping addresses
@@ -5,7 +5,7 @@ description: How taxes, promotions, and other price modifications are applied to
5
5
 
6
6
  ## Overview
7
7
 
8
- An Adjustment modifies the price of an [Order](/developer/core-concepts/orders), a [Line Item](/developer/core-concepts/orders#line-items), or a [Shipment](/developer/core-concepts/shipments). Adjustments can be positive (charges) or negative (credits).
8
+ An Adjustment modifies the price of an [Order](orders.md), a [Line Item](orders.md#line-items), or a [Shipment](shipments.md). Adjustments can be positive (charges) or negative (credits).
9
9
 
10
10
  ```mermaid
11
11
  erDiagram
@@ -31,7 +31,7 @@ erDiagram
31
31
 
32
32
  **Key relationships:**
33
33
  - **Adjustment** modifies prices on orders, line items, or shipments
34
- - **Source** is where the adjustment comes from ([Tax Rate](/developer/core-concepts/taxes) or [Promotion Action](/developer/core-concepts/promotions))
34
+ - **Source** is where the adjustment comes from ([Tax Rate](taxes.md) or [Promotion Action](promotions.md))
35
35
  - **Adjustable** is what's being adjusted (Order, LineItem, or Shipment)
36
36
  - Positive amounts are charges, negative amounts are credits
37
37
 
@@ -48,8 +48,8 @@ Adjustments are created by two sources:
48
48
 
49
49
  | Source | Example | Typical Amount |
50
50
  |--------|---------|----------------|
51
- | [Tax Rate](/developer/core-concepts/taxes) | Sales tax, VAT | Positive (charge) |
52
- | [Promotion Action](/developer/core-concepts/promotions) | Coupon discount, free shipping | Negative (credit) |
51
+ | [Tax Rate](taxes.md) | Sales tax, VAT | Positive (charge) |
52
+ | [Promotion Action](promotions.md) | Coupon discount, free shipping | Negative (credit) |
53
53
 
54
54
  ## Adjustment Attributes
55
55
 
@@ -101,7 +101,7 @@ curl 'https://api.mystore.com/api/v3/store/orders/or_abc123?expand=items,shipmen
101
101
 
102
102
  ## Related Documentation
103
103
 
104
- - [Promotions](/developer/core-concepts/promotions) — Promotion-based adjustments
105
- - [Taxes](/developer/core-concepts/taxes) — Tax adjustments
106
- - [Shipments](/developer/core-concepts/shipments) — Shipping adjustments
107
- - [Orders](/developer/core-concepts/orders) — How adjustments affect order totals
104
+ - [Promotions](promotions.md) — Promotion-based adjustments
105
+ - [Taxes](taxes.md) — Tax adjustments
106
+ - [Shipments](shipments.md) — Shipping adjustments
107
+ - [Orders](orders.md) — How adjustments affect order totals
@@ -7,7 +7,7 @@ description: How Spree's core models, APIs, and packages work together
7
7
 
8
8
  Spree is a commerce engine built around interconnected models that represent the core concepts of commerce: products, orders, payments, and shipments. It adapts to your stack — use it as a headless API for any frontend, embed it into an existing application, or scale it from a single storefront to a global multi-vendor marketplace.
9
9
 
10
- > **INFO:** Spree supports PostgreSQL, MySQL, and SQLite. PostgreSQL is recommended for production. [Learn more about database configuration](/developer/deployment/database).
10
+ > **INFO:** Spree supports PostgreSQL, MySQL, and SQLite. PostgreSQL is recommended for production. [Learn more about database configuration](../deployment/database.md).
11
11
 
12
12
  ## Core Commerce Flow
13
13
 
@@ -53,15 +53,15 @@ flowchart TB
53
53
 
54
54
  **How it works:**
55
55
 
56
- 1. **Catalog** — [Products](/developer/core-concepts/products) have [Variants](/developer/core-concepts/products#variants) (SKUs) with prices and inventory tracked at [Stock Locations](/developer/core-concepts/inventory#stock-locations)
56
+ 1. **Catalog** — [Products](products.md) have [Variants](products.md#variants) (SKUs) with prices and inventory tracked at [Stock Locations](inventory.md#stock-locations)
57
57
 
58
- 2. **Shopping** — Customers add Variants to their cart, creating an [Order](/developer/core-concepts/orders) with Line Items
58
+ 2. **Shopping** — Customers add Variants to their cart, creating an [Order](orders.md) with Line Items
59
59
 
60
- 3. **Checkout** — The Order collects [Addresses](/developer/core-concepts/addresses), calculates [Shipping](/developer/core-concepts/shipments) options, and processes [Payments](/developer/core-concepts/payments)
60
+ 3. **Checkout** — The Order collects [Addresses](addresses.md), calculates [Shipping](shipments.md) options, and processes [Payments](payments.md)
61
61
 
62
- 4. **Fulfillment** — [Shipments](/developer/core-concepts/shipments) are created from Stock Locations, tracking individual [Inventory Units](/developer/core-concepts/inventory#inventory-units)
62
+ 4. **Fulfillment** — [Shipments](shipments.md) are created from Stock Locations, tracking individual [Inventory Units](inventory.md#inventory-units)
63
63
 
64
- 5. **Pricing & Adjustments** — [Taxes](/developer/core-concepts/taxes) and [Promotions](/developer/core-concepts/promotions) create [Adjustments](/developer/core-concepts/adjustments) that modify order totals
64
+ 5. **Pricing & Adjustments** — [Taxes](taxes.md) and [Promotions](promotions.md) create [Adjustments](adjustments.md) that modify order totals
65
65
 
66
66
  ## Core Model Relationships
67
67
 
@@ -110,16 +110,16 @@ Spree exposes two REST APIs, both under API v3:
110
110
 
111
111
  | API | Purpose | Authentication |
112
112
  |-----|---------|----------------|
113
- | [**Store API**](/api-reference/introduction) | Customer-facing — cart, checkout, products, account | Publishable API key + JWT |
113
+ | [**Store API**](../../api-reference/introduction.md) | Customer-facing — cart, checkout, products, account | Publishable API key + JWT |
114
114
  | **Admin API** | Operational — manage products, orders, customers, settings | Secret API key |
115
115
 
116
- Both APIs use [prefixed IDs](/api-reference/introduction) (e.g., `prod_86Rf07xd4z`, `or_m3Rp9wXz`), flat JSON request/response structures, and full TypeScript types via the [@spree/sdk](/developer/sdk/quickstart).
116
+ Both APIs use [prefixed IDs](../../api-reference/introduction.md) (e.g., `prod_86Rf07xd4z`, `or_m3Rp9wXz`), flat JSON request/response structures, and full TypeScript types via the [@spree/sdk](../sdk/quickstart.md).
117
117
 
118
- Events from both APIs can trigger [Webhooks](/developer/core-concepts/webhooks) to notify external systems in real time.
118
+ Events from both APIs can trigger [Webhooks](webhooks.md) to notify external systems in real time.
119
119
 
120
120
  ## Multi-Store Architecture
121
121
 
122
- Spree supports [multiple stores](/developer/multi-store/quickstart) from a single installation. Each Store can have:
122
+ Spree supports [multiple stores](../multi-store/quickstart.md) from a single installation. Each Store can have:
123
123
 
124
124
  - Its own domain and branding
125
125
  - Different currencies and locales
@@ -135,10 +135,10 @@ Spree is designed to be customized without modifying core code. The main extensi
135
135
 
136
136
  | Mechanism | Use Case | Documentation |
137
137
  |-----------|----------|---------------|
138
- | **Events & Subscribers** | React to order completion, payment, shipment events | [Events Guide](/developer/core-concepts/events) |
139
- | **Webhooks** | Notify external systems of changes | [Webhooks Guide](/developer/core-concepts/webhooks) |
140
- | **Dependencies** | Swap out services (tax calculation, shipping estimation) | [Dependencies Guide](/developer/customization/dependencies) |
141
- | **Decorators** | Modify existing model/controller behavior (use sparingly) | [Decorators Guide](/developer/customization/decorators) |
138
+ | **Events & Subscribers** | React to order completion, payment, shipment events | [Events Guide](events.md) |
139
+ | **Webhooks** | Notify external systems of changes | [Webhooks Guide](webhooks.md) |
140
+ | **Dependencies** | Swap out services (tax calculation, shipping estimation) | [Dependencies Guide](../customization/dependencies.md) |
141
+ | **Decorators** | Modify existing model/controller behavior (use sparingly) | [Decorators Guide](../customization/decorators.md) |
142
142
 
143
143
  > **INFO:** For most customizations, prefer **Events** and **Dependencies** over Decorators. They're easier to maintain and won't break during upgrades.
144
144
 
@@ -163,15 +163,15 @@ Spree is distributed as a set of packages:
163
163
 
164
164
  | Package | Purpose |
165
165
  |---------|---------|
166
- | [`@spree/sdk`](/developer/sdk/quickstart) | TypeScript SDK for Store API and Admin API |
167
- | [`@spree/next`](/developer/storefront/nextjs/spree-next-package) | Next.js integration — server actions, caching, cookie-based auth |
166
+ | [`@spree/sdk`](../sdk/quickstart.md) | TypeScript SDK for Store API and Admin API |
167
+ | [`@spree/next`](../storefront/nextjs/spree-next-package.md) | Next.js integration — server actions, caching, cookie-based auth |
168
168
 
169
169
  > **INFO:** For headless commerce, you only need the `spree` package. Build your customer-facing frontend with any technology (Next.js, Nuxt, mobile apps) using the Store API and SDK.
170
170
 
171
171
  ## Related Documentation
172
172
 
173
- - [Products](/developer/core-concepts/products) — Product catalog and variants
174
- - [Orders](/developer/core-concepts/orders) — Order lifecycle and state machine
175
- - [Payments](/developer/core-concepts/payments) — Payment processing
176
- - [Shipments](/developer/core-concepts/shipments) — Shipping and fulfillment
177
- - [Customization Quickstart](/developer/customization/quickstart) — How to extend Spree
173
+ - [Products](products.md) — Product catalog and variants
174
+ - [Orders](orders.md) — Order lifecycle and state machine
175
+ - [Payments](payments.md) — Payment processing
176
+ - [Shipments](shipments.md) — Shipping and fulfillment
177
+ - [Customization Quickstart](../customization/quickstart.md) — How to extend Spree
@@ -44,9 +44,9 @@ erDiagram
44
44
 
45
45
  **Key relationships:**
46
46
  - **Calculator** computes amounts for various features
47
- - Used by **[Tax Rates](/developer/core-concepts/taxes)** to calculate tax amounts
48
- - Used by **[Shipping Methods](/developer/core-concepts/shipments)** to calculate shipping costs
49
- - Used by **[Promotion Actions](/developer/core-concepts/promotions)** to calculate discounts
47
+ - Used by **[Tax Rates](taxes.md)** to calculate tax amounts
48
+ - Used by **[Shipping Methods](shipments.md)** to calculate shipping costs
49
+ - Used by **[Promotion Actions](promotions.md)** to calculate discounts
50
50
  - Calculators store preferences (rates, percentages, etc.) for their calculations
51
51
 
52
52
  Spree makes extensive use of the `Spree::Calculator` model and there are several subclasses provided to deal with various types of calculations flat rate, percentage discount, sales tax, VAT, etc. All calculators extend the `Spree::Calculator` class and must provide the following methods:
@@ -69,7 +69,7 @@ The following are descriptions of the currently available calculators in Spree.
69
69
 
70
70
  ### Default Tax
71
71
 
72
- For information about this calculator, please read the [Taxes](/developer/core-concepts/taxes) guide.
72
+ For information about this calculator, please read the [Taxes](taxes.md) guide.
73
73
 
74
74
  ### Flat Percent Per Item Total
75
75
 
@@ -137,9 +137,9 @@ curl -X POST 'https://api.mystore.com/api/v3/store/customer/password_resets' \
137
137
  ```
138
138
 
139
139
 
140
- The optional `redirect_url` parameter specifies where the password reset link in the email should point to. The token will be appended as a query parameter (e.g., `https://myshop.com/reset-password?token=...`). If the store has [Allowed Origins](/developer/core-concepts/allowed-origins) configured, the `redirect_url` must match one of them.
140
+ The optional `redirect_url` parameter specifies where the password reset link in the email should point to. The token will be appended as a query parameter (e.g., `https://myshop.com/reset-password?token=...`). If the store has [Allowed Origins](allowed-origins.md) configured, the `redirect_url` must match one of them.
141
141
 
142
- This fires a `customer.password_reset_requested` event with the reset token in the payload. If you're using the `spree_emails` package, the email is sent automatically. Otherwise, subscribe to this event to send the reset email yourself (see [Events](/developer/core-concepts/events)).
142
+ This fires a `customer.password_reset_requested` event with the reset token in the payload. If you're using the `spree_emails` package, the email is sent automatically. Otherwise, subscribe to this event to send the reset email yourself (see [Events](events.md)).
143
143
 
144
144
  ### Step 2: Reset Password
145
145
 
@@ -210,8 +210,8 @@ Authenticated customers have access to these resources:
210
210
 
211
211
  | Resource | Description |
212
212
  |----------|-------------|
213
- | [**Addresses**](/developer/core-concepts/addresses#customer-address-book) | Billing and shipping addresses with default selection |
214
- | [**Orders**](/developer/core-concepts/orders#order-history) | Past order history |
213
+ | [**Addresses**](addresses.md#customer-address-book) | Billing and shipping addresses with default selection |
214
+ | [**Orders**](orders.md#order-history) | Past order history |
215
215
  | **Credit Cards** | Saved credit cards for checkout |
216
216
  | **Payment Sources** | Other saved payment methods (PayPal, Klarna, etc.) |
217
217
  | **Store Credits** | Balance assigned by the store, usable at checkout |
@@ -220,11 +220,11 @@ Authenticated customers have access to these resources:
220
220
 
221
221
  ## Guest Checkout
222
222
 
223
- Customers don't need to register to purchase. Guest checkout uses an order token (`X-Spree-Token`) to identify the cart. See [Orders — Cart](/developer/core-concepts/orders#cart) for details.
223
+ Customers don't need to register to purchase. Guest checkout uses an order token (`X-Spree-Token`) to identify the cart. See [Orders — Cart](orders.md#cart) for details.
224
224
 
225
225
  ## Related Documentation
226
226
 
227
- - [Addresses](/developer/core-concepts/addresses) — Customer address management
228
- - [Orders](/developer/core-concepts/orders) — Order history and checkout
229
- - [Authentication](/developer/customization/authentication) — Custom authentication setup
230
- - [Staff & Roles](/developer/core-concepts/staff-roles) — Admin users and permissions
227
+ - [Addresses](addresses.md) — Customer address management
228
+ - [Orders](orders.md) — Order history and checkout
229
+ - [Authentication](../customization/authentication.md) — Custom authentication setup
230
+ - [Staff & Roles](staff-roles.md) — Admin users and permissions
@@ -279,7 +279,7 @@ Spree::Events.publish(
279
279
 
280
280
  ## Event Serializers
281
281
 
282
- Event payloads are generated using the same [Store API V3 serializers](/api-reference/introduction) used by the REST API. This means webhook payloads and API responses share the same schema, making it easy to reuse types in your integrations.
282
+ Event payloads are generated using the same [Store API V3 serializers](../../api-reference/introduction.md) used by the REST API. This means webhook payloads and API responses share the same schema, making it easy to reuse types in your integrations.
283
283
 
284
284
  ### How Serializers Work
285
285
 
@@ -618,7 +618,7 @@ The base class also provides helper methods:
618
618
 
619
619
  ## Related Documentation
620
620
 
621
- - [Webhooks](/developer/core-concepts/webhooks) - HTTP callbacks for external integrations
622
- - [Customization Quickstart](/developer/customization/quickstart) - Overview of all customization options
623
- - [Decorators](/developer/customization/decorators) - When to use decorators vs events
624
- - [Checkout Flow](/developer/customization/checkout) - Using events in checkout customization
621
+ - [Webhooks](webhooks.md) - HTTP callbacks for external integrations
622
+ - [Customization Quickstart](../customization/quickstart.md) - Overview of all customization options
623
+ - [Decorators](../customization/decorators.md) - When to use decorators vs events
624
+ - [Checkout Flow](../customization/checkout.md) - Using events in checkout customization
@@ -5,7 +5,7 @@ description: Stock locations, stock items, stock movements, and inventory tracki
5
5
 
6
6
  ## Overview
7
7
 
8
- Each [Variant](/developer/core-concepts/products#variants) has a `StockItem` that tracks its inventory at a specific location. A variant can have multiple stock items if it's available at multiple stock locations.
8
+ Each [Variant](products.md#variants) has a `StockItem` that tracks its inventory at a specific location. A variant can have multiple stock items if it's available at multiple stock locations.
9
9
 
10
10
  When products are sold or returned, individual `InventoryUnit` records track each unit through the fulfillment process.
11
11
 
@@ -68,7 +68,7 @@ erDiagram
68
68
  - **Stock Item** → Tracks quantity (`count_on_hand`) for a specific Variant at a specific Stock Location
69
69
  - **Stock Movement** → Records changes to Stock Item quantities (purchases, returns, transfers)
70
70
  - **Stock Transfer** → Moves inventory between Stock Locations, creating Stock Movements at source and destination
71
- - **Inventory Unit** → Represents individual units in [Orders](/developer/core-concepts/orders) and [Shipments](/developer/core-concepts/shipments)
71
+ - **Inventory Unit** → Represents individual units in [Orders](orders.md) and [Shipments](shipments.md)
72
72
 
73
73
  ## Inventory Management
74
74
 
@@ -186,6 +186,6 @@ If you don't need to track inventory, you can disable it:
186
186
 
187
187
  ## Related Documentation
188
188
 
189
- - [Products](/developer/core-concepts/products) - Product and variant management
190
- - [Shipments](/developer/core-concepts/shipments) - How inventory relates to shipments
191
- - [Orders](/developer/core-concepts/orders) - How inventory is allocated to orders
189
+ - [Products](products.md) - Product and variant management
190
+ - [Shipments](shipments.md) - How inventory relates to shipments
191
+ - [Orders](orders.md) - How inventory is allocated to orders
@@ -5,7 +5,7 @@ description: Multi-region commerce with Markets — bundle geography, currency,
5
5
 
6
6
  ## Overview
7
7
 
8
- Markets let you segment a single [Store](/developer/core-concepts/stores) into distinct geographic regions, each with its own currency, locale, and set of countries. For example, an international store might define:
8
+ Markets let you segment a single [Store](stores.md) into distinct geographic regions, each with its own currency, locale, and set of countries. For example, an international store might define:
9
9
 
10
10
  - **North America** — USD, English, ships to US and Canada
11
11
  - **Europe** — EUR, German, ships to DE, FR, AT, NL
@@ -193,7 +193,7 @@ curl 'https://api.mystore.com/api/v3/store/locales' \
193
193
  ```
194
194
 
195
195
 
196
- See [Localization](/api-reference/store-api/localization) for details on how to pass locale, currency, and country headers in API requests.
196
+ See [Localization](../../api-reference/store-api/localization.md) for details on how to pass locale, currency, and country headers in API requests.
197
197
 
198
198
  ## Tax Behavior
199
199
 
@@ -204,15 +204,15 @@ The `tax_inclusive` flag on a market controls how prices are displayed and calcu
204
204
 
205
205
  Each market also resolves a **tax zone** from its default country. This zone determines which tax rates apply when browsing products — before the customer enters a shipping address. Once the customer provides an address at checkout, the actual shipping address takes over for tax calculation.
206
206
 
207
- See [Taxes](/developer/core-concepts/taxes) for details on tax zones and rates.
207
+ See [Taxes](taxes.md) for details on tax zones and rates.
208
208
 
209
209
  ## Pricing Integration
210
210
 
211
- Markets integrate with the [Pricing](/developer/core-concepts/pricing) system, enabling market-specific pricing through **Price Lists** with a **Market Rule**. This lets you set different prices for the same product in different markets — beyond just currency conversion.
211
+ Markets integrate with the [Pricing](pricing.md) system, enabling market-specific pricing through **Price Lists** with a **Market Rule**. This lets you set different prices for the same product in different markets — beyond just currency conversion.
212
212
 
213
213
  For example, you could price a product at $29.99 in North America and €24.99 in Europe, rather than relying on exchange rate conversion.
214
214
 
215
- See [Pricing — Price Rules](/developer/core-concepts/pricing#price-rules) for details on configuring market-specific price lists.
215
+ See [Pricing — Price Rules](pricing.md#price-rules) for details on configuring market-specific price lists.
216
216
 
217
217
  ## Setting Up Markets
218
218
 
@@ -243,8 +243,8 @@ current_store.markets.create!(
243
243
 
244
244
  ## Related Documentation
245
245
 
246
- - [Stores](/developer/core-concepts/stores) — Multi-store setup and configuration
247
- - [Pricing](/developer/core-concepts/pricing) — Price Lists, Price Rules, and the Pricing Context
248
- - [Addresses](/developer/core-concepts/addresses) — Countries, States, and Zones
249
- - [Localization](/api-reference/store-api/localization) — Locale, currency, and country headers in API requests
250
- - [Translations](/developer/core-concepts/translations) — Resource and UI translations
246
+ - [Stores](stores.md) — Multi-store setup and configuration
247
+ - [Pricing](pricing.md) — Price Lists, Price Rules, and the Pricing Context
248
+ - [Addresses](addresses.md) — Countries, States, and Zones
249
+ - [Localization](../../api-reference/store-api/localization.md) — Locale, currency, and country headers in API requests
250
+ - [Translations](translations.md) — Resource and UI translations
@@ -152,7 +152,7 @@ Spree supports two storage service types:
152
152
  | Public storage | Product images, logos, taxon images | S3 public bucket, CDN |
153
153
  | Private storage | CSV exports, digital downloads | S3 private bucket |
154
154
 
155
- > **INFO:** For production deployments, use cloud storage (S3, GCS, Azure) instead of local disk storage. See [Asset Deployment](/developer/deployment/assets) for configuration details.
155
+ > **INFO:** For production deployments, use cloud storage (S3, GCS, Azure) instead of local disk storage. See [Asset Deployment](../deployment/assets.md) for configuration details.
156
156
 
157
157
  ## Best Practices
158
158
 
@@ -163,5 +163,5 @@ Spree supports two storage service types:
163
163
 
164
164
  ## Related Documentation
165
165
 
166
- - [Products](/developer/core-concepts/products) — Product catalog and media
167
- - [Deployment — Assets](/developer/deployment/assets) — Storage and CDN configuration
166
+ - [Products](products.md) — Product catalog and media
167
+ - [Deployment — Assets](../deployment/assets.md) — Storage and CDN configuration
@@ -5,7 +5,7 @@ description: Add custom structured data to products, orders, and other resources
5
5
 
6
6
  ## Overview
7
7
 
8
- Metafields provide a flexible, type-safe system for adding custom structured data to Spree resources. Unlike [metadata](/developer/customization/metadata) which is simple JSON storage, metafields are schema-defined with strong typing, validation, and visibility controls.
8
+ Metafields provide a flexible, type-safe system for adding custom structured data to Spree resources. Unlike [metadata](../customization/metadata.md) which is simple JSON storage, metafields are schema-defined with strong typing, validation, and visibility controls.
9
9
 
10
10
  Use metafields for:
11
11
 
@@ -87,7 +87,7 @@ Metafields support three visibility levels via the `display_on` attribute:
87
87
 
88
88
  Metafields can be attached to most Spree resources including Products, Variants, Orders, Line Items, Taxons, Payments, Shipments, Gift Cards, Store Credits, and more.
89
89
 
90
- > **INFO:** Custom resources can also support metafields. See the [Customization Quickstart](/developer/customization/quickstart) for details.
90
+ > **INFO:** Custom resources can also support metafields. See the [Customization Quickstart](../customization/quickstart.md) for details.
91
91
 
92
92
  ## Namespaces
93
93
 
@@ -178,10 +178,10 @@ When editing a resource (e.g., a product), metafields appear in a dedicated sect
178
178
 
179
179
  **Use Metadata** for external system IDs, tracking attribution, or simple write-and-forget data.
180
180
 
181
- > **WARNING:** Product Properties are deprecated and will be removed in Spree 6.0. For new projects, always use Metafields. For existing projects, plan to migrate using the [migration guide](/developer/upgrades/5.1-to-5.2#3-migrate-to-metafields-or-keep-using-properties).
181
+ > **WARNING:** Product Properties are deprecated and will be removed in Spree 6.0. For new projects, always use Metafields. For existing projects, plan to migrate using the [migration guide](../upgrades/5.1-to-5.2.md#3-migrate-to-metafields-or-keep-using-properties).
182
182
 
183
183
  ## Related Documentation
184
184
 
185
- - [Metadata](/developer/customization/metadata) — Simple key-value metadata
186
- - [Products](/developer/core-concepts/products) — Product catalog
187
- - [Events](/developer/core-concepts/events) — Subscribe to metafield events
185
+ - [Metadata](../customization/metadata.md) — Simple key-value metadata
186
+ - [Products](products.md) — Product catalog
187
+ - [Events](events.md) — Subscribe to metafield events
@@ -49,11 +49,11 @@ erDiagram
49
49
  ```
50
50
 
51
51
  **Key relationships:**
52
- - **Line Items** link orders to [Variants](/developer/core-concepts/products#variants) (what was purchased)
53
- - **[Shipments](/developer/core-concepts/shipments)** handle fulfillment from stock locations
54
- - **[Payments](/developer/core-concepts/payments)** track payment attempts and their states
55
- - **[Adjustments](/developer/core-concepts/adjustments)** apply taxes, promotions, and shipping costs
56
- - **[Addresses](/developer/core-concepts/addresses)** store billing and shipping information
52
+ - **Line Items** link orders to [Variants](products.md#variants) (what was purchased)
53
+ - **[Shipments](shipments.md)** handle fulfillment from stock locations
54
+ - **[Payments](payments.md)** track payment attempts and their states
55
+ - **[Adjustments](adjustments.md)** apply taxes, promotions, and shipping costs
56
+ - **[Addresses](addresses.md)** store billing and shipping information
57
57
 
58
58
  ## Order Attributes
59
59
 
@@ -288,13 +288,13 @@ curl 'https://api.mystore.com/api/v3/store/orders/or_xxx?expand=items,shipments,
288
288
 
289
289
  ## Line Items
290
290
 
291
- Line items represent individual products in an order. Each line item links to a [Variant](/developer/core-concepts/products#variants) and tracks the quantity and price at the time of purchase.
291
+ Line items represent individual products in an order. Each line item links to a [Variant](products.md#variants) and tracks the quantity and price at the time of purchase.
292
292
 
293
293
  When a variant is added to an order, the price is locked on the line item. If the variant's price changes later, existing orders are unaffected.
294
294
 
295
295
  ## Adjustments
296
296
 
297
- [Adjustments](/developer/core-concepts/adjustments) modify an order's total — promotions decrease it, taxes and shipping increase it. Adjustments can be applied at the order level, the line item level, or the shipment level.
297
+ [Adjustments](adjustments.md) modify an order's total — promotions decrease it, taxes and shipping increase it. Adjustments can be applied at the order level, the line item level, or the shipment level.
298
298
 
299
299
  ## Payment States
300
300
 
@@ -316,13 +316,13 @@ When a variant is added to an order, the price is locked on the line item. If th
316
316
  | `shipped` | All shipments have been shipped |
317
317
  | `backorder` | Some inventory is on backorder |
318
318
 
319
- For more details, see [Shipments](/developer/core-concepts/shipments) and [Payments](/developer/core-concepts/payments).
319
+ For more details, see [Shipments](shipments.md) and [Payments](payments.md).
320
320
 
321
321
  ## Related Documentation
322
322
 
323
- - [Payments](/developer/core-concepts/payments) — Payment processing and payment sessions
324
- - [Shipments](/developer/core-concepts/shipments) — Fulfillment and shipping rates
325
- - [Addresses](/developer/core-concepts/addresses) — Billing and shipping addresses
326
- - [Promotions](/developer/core-concepts/promotions) — Discounts and coupon codes
327
- - [Checkout Customization](/developer/customization/checkout) — Customizing the checkout flow
328
- - [Events](/developer/core-concepts/events) — Subscribe to order events (e.g., `order.completed`)
323
+ - [Payments](payments.md) — Payment processing and payment sessions
324
+ - [Shipments](shipments.md) — Fulfillment and shipping rates
325
+ - [Addresses](addresses.md) — Billing and shipping addresses
326
+ - [Promotions](promotions.md) — Discounts and coupon codes
327
+ - [Checkout Customization](../customization/checkout.md) — Customizing the checkout flow
328
+ - [Events](events.md) — Subscribe to order events (e.g., `order.completed`)
@@ -107,7 +107,7 @@ erDiagram
107
107
  ```
108
108
 
109
109
  **Key relationships:**
110
- - **Payment** tracks each payment attempt against an [Order](/developer/core-concepts/orders)
110
+ - **Payment** tracks each payment attempt against an [Order](orders.md)
111
111
  - **Payment Method** defines how payments are processed (Stripe, Adyen, PayPal, Check, etc.)
112
112
  - **Payment Session** manages the gateway-side payment lifecycle (e.g., Stripe PaymentIntent, Adyen Session)
113
113
  - **Payment Setup Session** manages saving payment methods for future use without an immediate charge (e.g., Stripe SetupIntent)
@@ -652,11 +652,11 @@ Spree will verify the result with the provider and create a saved payment source
652
652
 
653
653
  Spree team maintains several payment gateway integrations. All of these gateways are **fully PCI compliant**, using native gateway SDKs, meaning no sensitive payment data is stored or processed through Spree.
654
654
 
655
- - [Stripe](/integrations/payments/stripe) — Stripe integration, supports all Stripe payment methods, including credit cards, bank transfers, Apple Pay, Google Pay, Klarna, Afterpay, and more. Also supports quick checkout.
655
+ - [Stripe](../../integrations/payments/stripe.md) — Stripe integration, supports all Stripe payment methods, including credit cards, bank transfers, Apple Pay, Google Pay, Klarna, Afterpay, and more. Also supports quick checkout.
656
656
 
657
- - [Adyen](/integrations/payments/adyen) — Adyen integration, supports all Adyen payment methods, including credit cards, bank transfers, Apple Pay, Google Pay, Klarna, and more.
657
+ - [Adyen](../../integrations/payments/adyen.md) — Adyen integration, supports all Adyen payment methods, including credit cards, bank transfers, Apple Pay, Google Pay, Klarna, and more.
658
658
 
659
- - [PayPal](/integrations/payments/paypal) — Native PayPal integration, supports PayPal, PayPal Credit, and PayPal Pay Later.
659
+ - [PayPal](../../integrations/payments/paypal.md) — Native PayPal integration, supports PayPal, PayPal Credit, and PayPal Pay Later.
660
660
 
661
661
  ## Payment Events
662
662
 
@@ -684,14 +684,14 @@ Spree publishes events throughout the payment lifecycle that you can subscribe t
684
684
  | `payment_setup_session.failed` | Setup failed |
685
685
  | `payment_setup_session.canceled` | Setup was canceled |
686
686
 
687
- See [Events](/developer/core-concepts/events) for more details on subscribing to events.
687
+ See [Events](events.md) for more details on subscribing to events.
688
688
 
689
689
  ## Related Documentation
690
690
 
691
- - [Build a Custom Payment Method](/developer/how-to/custom-payment-method) - Step-by-step guide to creating your own payment gateway integration
692
- - [Orders](/developer/core-concepts/orders) - Order management and state machine
693
- - [Checkout Customization](/developer/customization/checkout) - Customizing the checkout flow
694
- - [Events](/developer/core-concepts/events) - Subscribe to payment events
691
+ - [Build a Custom Payment Method](../how-to/custom-payment-method.md) - Step-by-step guide to creating your own payment gateway integration
692
+ - [Orders](orders.md) - Order management and state machine
693
+ - [Checkout Customization](../customization/checkout.md) - Customizing the checkout flow
694
+ - [Events](events.md) - Subscribe to payment events
695
695
 
696
696
  ## Key Services
697
697
 
@@ -5,11 +5,11 @@ description: Prices, Price Lists, Price Rules, and the Pricing Context — Spree
5
5
 
6
6
  ## Overview
7
7
 
8
- Spree's pricing system supports both simple single-currency pricing and advanced multi-currency, rule-based pricing through Price Lists. Every [Variant](/developer/core-concepts/products#variants) can have multiple prices — a base price per currency, plus additional prices from Price Lists that apply conditionally based on rules like geography, customer segment, or quantity.
8
+ Spree's pricing system supports both simple single-currency pricing and advanced multi-currency, rule-based pricing through Price Lists. Every [Variant](products.md#variants) can have multiple prices — a base price per currency, plus additional prices from Price Lists that apply conditionally based on rules like geography, customer segment, or quantity.
9
9
 
10
10
  ## Prices
11
11
 
12
- Each variant has one or more `Price` records — one per currency. The API automatically returns the correct price based on the current currency and [Market](/developer/core-concepts/markets) context.
12
+ Each variant has one or more `Price` records — one per currency. The API automatically returns the correct price based on the current currency and [Market](markets.md) context.
13
13
 
14
14
  | Attribute | Description | Example |
15
15
  |-----------|-------------|---------|
@@ -55,7 +55,7 @@ curl 'https://api.mystore.com/api/v3/store/products/spree-tote?expand=variants'
55
55
 
56
56
  Price Lists allow you to create different pricing strategies based on various conditions. This enables advanced pricing scenarios like:
57
57
 
58
- - **Market-based pricing** — different prices for different [Markets](/developer/core-concepts/markets) (e.g., North America vs Europe)
58
+ - **Market-based pricing** — different prices for different [Markets](markets.md) (e.g., North America vs Europe)
59
59
  - **Regional pricing** — different prices for different geographic zones
60
60
  - **Wholesale/B2B pricing** — special prices for business customers
61
61
  - **Volume discounts** — tiered pricing based on quantity purchased
@@ -90,7 +90,7 @@ Price Rules define conditions that must be met for a Price List to apply. Spree
90
90
 
91
91
  | Rule | Description | Use Case |
92
92
  |------|-------------|----------|
93
- | **Market Rule** | Matches based on the current [Market](/developer/core-concepts/markets) | Regional pricing across markets |
93
+ | **Market Rule** | Matches based on the current [Market](markets.md) | Regional pricing across markets |
94
94
  | **Zone Rule** | Matches based on the customer's geographic zone | Country or state-level pricing |
95
95
  | **User Rule** | Matches specific customer accounts | VIP customers, wholesale accounts |
96
96
  | **Customer Group Rule** | Matches members of customer groups | Loyalty tiers, membership pricing |
@@ -124,7 +124,7 @@ Applies based on quantity purchased. Supports `min_quantity` and `max_quantity`
124
124
  | Bulk Tier 1 | 10–49 | $8.50 |
125
125
  | Bulk Tier 2 | 50+ | $7.00 |
126
126
 
127
- > **INFO:** Custom Price Rules can be created for specialized pricing logic. See the [Customization Quickstart](/developer/customization/quickstart) for details.
127
+ > **INFO:** Custom Price Rules can be created for specialized pricing logic. See the [Customization Quickstart](../customization/quickstart.md) for details.
128
128
 
129
129
  ## Pricing Context
130
130
 
@@ -133,7 +133,7 @@ When resolving prices, Spree considers the full context of the request:
133
133
  | Context | Source | Description |
134
134
  |---------|--------|-------------|
135
135
  | Currency | Market or request header | The currency to price in |
136
- | Market | Customer's country | The [Market](/developer/core-concepts/markets) for market-based rules |
136
+ | Market | Customer's country | The [Market](markets.md) for market-based rules |
137
137
  | Zone | Customer's address | The geographic zone for zone-based rules |
138
138
  | Customer | JWT authentication | The logged-in customer for user-based rules |
139
139
  | Quantity | Cart line item | The quantity for volume-based rules |
@@ -157,7 +157,7 @@ Each Price List contains prices for specific variants and currencies. Products c
157
157
 
158
158
  ## Related Documentation
159
159
 
160
- - [Products](/developer/core-concepts/products) — Products, Variants, and base prices
161
- - [Markets](/developer/core-concepts/markets) — Geographic regions with currency and locale
162
- - [Taxes](/developer/core-concepts/taxes) — Tax categories, tax rates, and zones
163
- - [Promotions](/developer/core-concepts/promotions) — Discount-based pricing via promotion rules
160
+ - [Products](products.md) — Products, Variants, and base prices
161
+ - [Markets](markets.md) — Geographic regions with currency and locale
162
+ - [Taxes](taxes.md) — Tax categories, tax rates, and zones
163
+ - [Promotions](promotions.md) — Discount-based pricing via promotion rules