+ All commerce features are provided as extendable modules in Medusa.
+
+
+ Click on any of the commerce modules below to learn more about their
+ commerce features, and how to extend and use them for your custom
+ use-case.
+
+
+ Learn how to build Medusa projects. Explore our guides.
+
+
+
+
+
+
+ }
+ />
+
+ A digital commerce platform with a built-in framework for
+ customizations.
+
+
+ Unlike other platforms, Medusa allows you to easily customize and
+ extend the behavior of your commerce platform to always fit your
+ business needs.
+
+
+
+
+ )
+}
+
+export default HomepageTopSection
diff --git a/www/apps/book/config/index.ts b/www/apps/book/config/index.ts
index 8535ed7e77402..43c73a685acaa 100644
--- a/www/apps/book/config/index.ts
+++ b/www/apps/book/config/index.ts
@@ -4,7 +4,7 @@ import { sidebarConfig } from "./sidebar"
const baseUrl = process.env.NEXT_PUBLIC_BASE_URL || "http://localhost:3000"
export const config: DocsConfig = {
- titleSuffix: "Medusa v2 Docs",
+ titleSuffix: "Medusa v2 Documentation",
baseUrl,
basePath: process.env.NEXT_PUBLIC_BASE_PATH,
sidebar: sidebarConfig,
diff --git a/www/apps/book/generated/edit-dates.mjs b/www/apps/book/generated/edit-dates.mjs
index 4ef61ae0f0dfd..c1a14cd970ae9 100644
--- a/www/apps/book/generated/edit-dates.mjs
+++ b/www/apps/book/generated/edit-dates.mjs
@@ -1,116 +1,116 @@
export const generatedEditDates = {
- "app/basics/scheduled-jobs/page.mdx": "2024-09-30T08:43:53.132Z",
- "app/basics/workflows/page.mdx": "2024-09-30T08:43:53.132Z",
- "app/deployment/page.mdx": "2024-08-05T07:24:05+00:00",
- "app/page.mdx": "2024-09-03T07:09:09.034Z",
- "app/basics/commerce-modules/page.mdx": "2024-09-30T08:43:53.131Z",
- "app/advanced-development/workflows/retry-failed-steps/page.mdx": "2024-09-30T08:43:53.130Z",
- "app/advanced-development/workflows/workflow-hooks/page.mdx": "2024-09-30T08:43:53.131Z",
- "app/cheatsheet/page.mdx": "2024-07-11T13:53:40+03:00",
- "app/debugging-and-testing/logging/page.mdx": "2024-09-30T08:43:53.135Z",
- "app/more-resources/page.mdx": "2024-07-04T17:26:03+03:00",
- "app/storefront-development/page.mdx": "2024-09-11T10:58:59.290Z",
- "app/storefront-development/nextjs-starter/page.mdx": "2024-07-04T17:26:03+03:00",
- "app/basics/page.mdx": "2024-09-03T07:11:06.879Z",
- "app/basics/admin-customizations/page.mdx": "2024-10-07T12:41:39.218Z",
- "app/advanced-development/workflows/workflow-timeout/page.mdx": "2024-09-30T08:43:53.131Z",
- "app/advanced-development/workflows/parallel-steps/page.mdx": "2024-09-30T08:43:53.130Z",
- "app/advanced-development/page.mdx": "2024-07-04T17:26:03+03:00",
- "app/first-customizations/page.mdx": "2024-09-11T10:48:42.374Z",
- "app/debugging-and-testing/page.mdx": "2024-05-03T17:36:38+03:00",
- "app/basics/medusa-container/page.mdx": "2024-09-30T08:43:53.132Z",
- "app/basics/project-directories-files/page.mdx": "2024-10-03T12:46:52.762Z",
- "app/basics/api-routes/page.mdx": "2024-09-11T10:48:31.777Z",
- "app/basics/modules-directory-structure/page.mdx": "2024-10-03T13:03:35.957Z",
- "app/advanced-development/workflows/access-workflow-errors/page.mdx": "2024-09-18T12:54:04.695Z",
- "app/basics/events-and-subscribers/page.mdx": "2024-09-30T08:43:53.131Z",
- "app/advanced-development/modules/container/page.mdx": "2024-09-30T08:43:53.125Z",
- "app/advanced-development/workflows/execute-another-workflow/page.mdx": "2024-09-30T08:43:53.129Z",
- "app/basics/loaders/page.mdx": "2024-09-03T08:00:45.993Z",
- "app/advanced-development/admin/widgets/page.mdx": "2024-10-07T12:51:09.969Z",
- "app/advanced-development/data-models/page.mdx": "2024-09-19T07:26:43.535Z",
- "app/advanced-development/modules/remote-link/page.mdx": "2024-09-30T08:43:53.127Z",
- "app/advanced-development/api-routes/protected-routes/page.mdx": "2024-09-30T08:43:53.121Z",
- "app/advanced-development/workflows/add-workflow-hook/page.mdx": "2024-09-30T08:43:53.128Z",
- "app/advanced-development/events-and-subscribers/data-payload/page.mdx": "2024-07-16T17:12:05+01:00",
- "app/advanced-development/data-models/default-properties/page.mdx": "2024-09-19T07:32:06.118Z",
- "app/advanced-development/workflows/advanced-example/page.mdx": "2024-09-11T10:46:59.975Z",
- "app/advanced-development/events-and-subscribers/emit-event/page.mdx": "2024-09-30T08:43:53.125Z",
- "app/advanced-development/workflows/conditions/page.mdx": "2024-09-30T08:43:53.128Z",
- "app/advanced-development/modules/module-link-directions/page.mdx": "2024-07-24T09:16:01+02:00",
- "app/advanced-development/admin/page.mdx": "2024-10-07T12:39:13.178Z",
- "app/advanced-development/workflows/long-running-workflow/page.mdx": "2024-09-30T08:43:53.129Z",
- "app/advanced-development/workflows/constructor-constraints/page.mdx": "2024-10-04T08:40:14.867Z",
- "app/advanced-development/data-models/write-migration/page.mdx": "2024-07-15T17:46:10+02:00",
- "app/advanced-development/data-models/manage-relationships/page.mdx": "2024-09-10T11:39:51.167Z",
- "app/advanced-development/modules/remote-query/page.mdx": "2024-07-21T21:20:24+02:00",
- "app/advanced-development/modules/options/page.mdx": "2024-10-16T08:49:27.162Z",
- "app/advanced-development/data-models/relationships/page.mdx": "2024-09-30T08:43:53.125Z",
- "app/advanced-development/workflows/compensation-function/page.mdx": "2024-09-30T08:43:53.128Z",
- "app/advanced-development/modules/service-factory/page.mdx": "2024-09-30T08:43:53.127Z",
- "app/advanced-development/data-models/primary-key/page.mdx": "2024-09-30T08:43:53.123Z",
- "app/advanced-development/modules/module-links/page.mdx": "2024-09-30T08:43:53.126Z",
- "app/advanced-development/data-models/searchable-property/page.mdx": "2024-09-30T08:43:53.125Z",
- "app/advanced-development/scheduled-jobs/execution-number/page.mdx": "2024-07-02T09:41:15+00:00",
- "app/advanced-development/api-routes/parameters/page.mdx": "2024-09-11T10:44:13.491Z",
- "app/advanced-development/api-routes/http-methods/page.mdx": "2024-09-11T10:43:33.169Z",
- "app/advanced-development/admin/tips/page.mdx": "2024-10-07T12:50:36.335Z",
- "app/advanced-development/api-routes/cors/page.mdx": "2024-09-30T08:43:53.121Z",
- "app/advanced-development/admin/ui-routes/page.mdx": "2024-10-07T12:52:37.509Z",
- "app/advanced-development/api-routes/middlewares/page.mdx": "2024-09-11T10:45:31.861Z",
- "app/advanced-development/modules/isolation/page.mdx": "2024-07-04T17:26:03+03:00",
- "app/advanced-development/data-models/configure-properties/page.mdx": "2024-09-30T08:43:53.122Z",
- "app/advanced-development/data-models/index/page.mdx": "2024-09-30T08:43:53.122Z",
- "app/advanced-development/custom-cli-scripts/page.mdx": "2024-09-30T08:43:53.122Z",
- "app/advanced-development/data-models/property-types/page.mdx": "2024-09-30T08:43:53.124Z",
- "app/debugging-and-testing/testing-tools/integration-tests/api-routes/page.mdx": "2024-09-30T08:43:53.136Z",
- "app/debugging-and-testing/testing-tools/integration-tests/page.mdx": "2024-09-10T11:39:51.170Z",
- "app/debugging-and-testing/testing-tools/integration-tests/workflows/page.mdx": "2024-09-30T08:43:53.139Z",
- "app/debugging-and-testing/testing-tools/page.mdx": "2024-09-30T08:43:53.139Z",
- "app/debugging-and-testing/testing-tools/unit-tests/module-example/page.mdx": "2024-09-02T11:04:27.232Z",
- "app/debugging-and-testing/testing-tools/unit-tests/page.mdx": "2024-09-02T11:03:26.997Z",
- "app/advanced-development/modules/service-constraints/page.mdx": "2024-09-30T08:43:53.127Z",
- "app/advanced-development/api-routes/page.mdx": "2024-09-04T09:36:33.961Z",
- "app/advanced-development/api-routes/responses/page.mdx": "2024-09-11T10:44:37.016Z",
- "app/advanced-development/api-routes/validation/page.mdx": "2024-09-11T10:46:31.476Z",
- "app/advanced-development/api-routes/errors/page.mdx": "2024-09-30T08:43:53.121Z",
- "app/advanced-development/admin/constraints/page.mdx": "2024-09-10T11:39:51.165Z",
- "app/debugging-and-testing/testing-tools/modules-tests/module-example/page.mdx": "2024-10-16T08:50:03.061Z",
- "app/debugging-and-testing/testing-tools/modules-tests/page.mdx": "2024-10-16T08:50:23.232Z",
- "app/advanced-development/module-links/custom-columns/page.mdx": "2024-09-16T15:51:33.570Z",
- "app/advanced-development/module-links/directions/page.mdx": "2024-09-16T15:37:51.441Z",
- "app/advanced-development/module-links/page.mdx": "2024-09-16T15:36:48.190Z",
- "app/advanced-development/module-links/query/page.mdx": "2024-09-16T12:42:27.579Z",
- "app/advanced-development/module-links/remote-link/page.mdx": "2024-09-16T12:42:27.581Z",
- "app/advanced-development/modules/db-operations/page.mdx": "2024-09-16T14:38:29.150Z",
- "app/advanced-development/modules/multiple-services/page.mdx": "2024-09-16T14:41:32.975Z",
- "app/advanced-development/modules/page.mdx": "2024-09-16T14:33:48.217Z",
- "app/debugging-and-testing/instrumentation/page.mdx": "2024-09-17T08:53:15.910Z",
- "app/advanced-development/api-routes/additional-data/page.mdx": "2024-09-30T08:43:53.120Z",
- "app/advanced-development/workflows/page.mdx": "2024-09-18T08:00:57.364Z",
- "app/advanced-development/workflows/variable-manipulation/page.mdx": "2024-09-30T08:43:53.130Z",
- "app/customization/custom-features/api-route/page.mdx": "2024-09-12T12:42:34.201Z",
- "app/customization/custom-features/module/page.mdx": "2024-10-16T08:49:44.676Z",
- "app/customization/custom-features/workflow/page.mdx": "2024-09-30T08:43:53.133Z",
- "app/customization/extend-models/create-links/page.mdx": "2024-09-30T08:43:53.133Z",
- "app/customization/extend-models/extend-create-product/page.mdx": "2024-09-30T08:43:53.134Z",
- "app/customization/custom-features/page.mdx": "2024-09-12T11:18:13.271Z",
- "app/customization/customize-admin/page.mdx": "2024-09-12T12:25:29.853Z",
- "app/customization/customize-admin/route/page.mdx": "2024-10-07T12:43:11.335Z",
- "app/customization/customize-admin/widget/page.mdx": "2024-10-07T12:44:24.538Z",
- "app/customization/extend-models/define-link/page.mdx": "2024-09-30T08:43:53.134Z",
- "app/customization/extend-models/page.mdx": "2024-09-12T12:38:57.394Z",
- "app/customization/extend-models/query-linked-records/page.mdx": "2024-09-30T08:43:53.134Z",
- "app/customization/integrate-systems/handle-event/page.mdx": "2024-09-30T08:43:53.135Z",
- "app/customization/integrate-systems/page.mdx": "2024-09-12T12:33:29.827Z",
- "app/customization/integrate-systems/schedule-task/page.mdx": "2024-09-30T08:43:53.135Z",
- "app/customization/integrate-systems/service/page.mdx": "2024-10-16T08:49:50.899Z",
- "app/customization/next-steps/page.mdx": "2024-09-12T10:50:04.873Z",
- "app/customization/page.mdx": "2024-09-12T11:16:18.504Z",
- "app/more-resources/cheatsheet/page.mdx": "2024-07-11T16:11:26.480Z",
- "app/architecture/architectural-modules/page.mdx": "2024-09-23T12:51:04.520Z",
- "app/architecture/overview/page.mdx": "2024-09-23T12:55:01.339Z",
- "app/advanced-development/data-models/infer-type/page.mdx": "2024-09-30T08:43:53.123Z",
- "app/advanced-development/custom-cli-scripts/seed-data/page.mdx": "2024-10-03T11:11:07.181Z",
- "app/basics/modules/page.mdx": "2024-10-16T08:49:39.997Z"
+ "app/learn/basics/scheduled-jobs/page.mdx": "2024-09-30T08:43:53.132Z",
+ "app/learn/basics/workflows/page.mdx": "2024-09-30T08:43:53.132Z",
+ "app/learn/deployment/page.mdx": "2024-08-05T07:24:05+00:00",
+ "app/learn/page.mdx": "2024-09-03T07:09:09.034Z",
+ "app/learn/basics/commerce-modules/page.mdx": "2024-09-30T08:43:53.131Z",
+ "app/learn/advanced-development/workflows/retry-failed-steps/page.mdx": "2024-09-30T08:43:53.130Z",
+ "app/learn/advanced-development/workflows/workflow-hooks/page.mdx": "2024-09-30T08:43:53.131Z",
+ "app/learn/cheatsheet/page.mdx": "2024-07-11T13:53:40+03:00",
+ "app/learn/debugging-and-testing/logging/page.mdx": "2024-09-30T08:43:53.135Z",
+ "app/learn/more-resources/page.mdx": "2024-07-04T17:26:03+03:00",
+ "app/learn/storefront-development/page.mdx": "2024-09-11T10:58:59.290Z",
+ "app/learn/storefront-development/nextjs-starter/page.mdx": "2024-07-04T17:26:03+03:00",
+ "app/learn/basics/page.mdx": "2024-09-03T07:11:06.879Z",
+ "app/learn/basics/admin-customizations/page.mdx": "2024-10-07T12:41:39.218Z",
+ "app/learn/advanced-development/workflows/workflow-timeout/page.mdx": "2024-09-30T08:43:53.131Z",
+ "app/learn/advanced-development/workflows/parallel-steps/page.mdx": "2024-09-30T08:43:53.130Z",
+ "app/learn/advanced-development/page.mdx": "2024-07-04T17:26:03+03:00",
+ "app/learn/first-customizations/page.mdx": "2024-09-11T10:48:42.374Z",
+ "app/learn/debugging-and-testing/page.mdx": "2024-05-03T17:36:38+03:00",
+ "app/learn/basics/medusa-container/page.mdx": "2024-09-30T08:43:53.132Z",
+ "app/learn/basics/project-directories-files/page.mdx": "2024-10-03T12:46:52.762Z",
+ "app/learn/basics/api-routes/page.mdx": "2024-09-11T10:48:31.777Z",
+ "app/learn/basics/modules-directory-structure/page.mdx": "2024-10-03T13:03:35.957Z",
+ "app/learn/advanced-development/workflows/access-workflow-errors/page.mdx": "2024-09-18T12:54:04.695Z",
+ "app/learn/basics/events-and-subscribers/page.mdx": "2024-09-30T08:43:53.131Z",
+ "app/learn/advanced-development/modules/container/page.mdx": "2024-09-30T08:43:53.125Z",
+ "app/learn/advanced-development/workflows/execute-another-workflow/page.mdx": "2024-09-30T08:43:53.129Z",
+ "app/learn/basics/loaders/page.mdx": "2024-09-03T08:00:45.993Z",
+ "app/learn/advanced-development/admin/widgets/page.mdx": "2024-10-07T12:51:09.969Z",
+ "app/learn/advanced-development/data-models/page.mdx": "2024-09-19T07:26:43.535Z",
+ "app/learn/advanced-development/modules/remote-link/page.mdx": "2024-09-30T08:43:53.127Z",
+ "app/learn/advanced-development/api-routes/protected-routes/page.mdx": "2024-09-30T08:43:53.121Z",
+ "app/learn/advanced-development/workflows/add-workflow-hook/page.mdx": "2024-09-30T08:43:53.128Z",
+ "app/learn/advanced-development/events-and-subscribers/data-payload/page.mdx": "2024-07-16T17:12:05+01:00",
+ "app/learn/advanced-development/data-models/default-properties/page.mdx": "2024-09-19T07:32:06.118Z",
+ "app/learn/advanced-development/workflows/advanced-example/page.mdx": "2024-09-11T10:46:59.975Z",
+ "app/learn/advanced-development/events-and-subscribers/emit-event/page.mdx": "2024-09-30T08:43:53.125Z",
+ "app/learn/advanced-development/workflows/conditions/page.mdx": "2024-09-30T08:43:53.128Z",
+ "app/learn/advanced-development/modules/module-link-directions/page.mdx": "2024-07-24T09:16:01+02:00",
+ "app/learn/advanced-development/admin/page.mdx": "2024-10-07T12:39:13.178Z",
+ "app/learn/advanced-development/workflows/long-running-workflow/page.mdx": "2024-09-30T08:43:53.129Z",
+ "app/learn/advanced-development/workflows/constructor-constraints/page.mdx": "2024-10-04T08:40:14.867Z",
+ "app/learn/advanced-development/data-models/write-migration/page.mdx": "2024-07-15T17:46:10+02:00",
+ "app/learn/advanced-development/data-models/manage-relationships/page.mdx": "2024-09-10T11:39:51.167Z",
+ "app/learn/advanced-development/modules/remote-query/page.mdx": "2024-07-21T21:20:24+02:00",
+ "app/learn/advanced-development/modules/options/page.mdx": "2024-10-16T08:49:27.162Z",
+ "app/learn/advanced-development/data-models/relationships/page.mdx": "2024-09-30T08:43:53.125Z",
+ "app/learn/advanced-development/workflows/compensation-function/page.mdx": "2024-09-30T08:43:53.128Z",
+ "app/learn/advanced-development/modules/service-factory/page.mdx": "2024-09-30T08:43:53.127Z",
+ "app/learn/advanced-development/data-models/primary-key/page.mdx": "2024-09-30T08:43:53.123Z",
+ "app/learn/advanced-development/modules/module-links/page.mdx": "2024-09-30T08:43:53.126Z",
+ "app/learn/advanced-development/data-models/searchable-property/page.mdx": "2024-09-30T08:43:53.125Z",
+ "app/learn/advanced-development/scheduled-jobs/execution-number/page.mdx": "2024-07-02T09:41:15+00:00",
+ "app/learn/advanced-development/api-routes/parameters/page.mdx": "2024-09-11T10:44:13.491Z",
+ "app/learn/advanced-development/api-routes/http-methods/page.mdx": "2024-09-11T10:43:33.169Z",
+ "app/learn/advanced-development/admin/tips/page.mdx": "2024-10-07T12:50:36.335Z",
+ "app/learn/advanced-development/api-routes/cors/page.mdx": "2024-09-30T08:43:53.121Z",
+ "app/learn/advanced-development/admin/ui-routes/page.mdx": "2024-10-07T12:52:37.509Z",
+ "app/learn/advanced-development/api-routes/middlewares/page.mdx": "2024-09-11T10:45:31.861Z",
+ "app/learn/advanced-development/modules/isolation/page.mdx": "2024-07-04T17:26:03+03:00",
+ "app/learn/advanced-development/data-models/configure-properties/page.mdx": "2024-09-30T08:43:53.122Z",
+ "app/learn/advanced-development/data-models/index/page.mdx": "2024-09-30T08:43:53.122Z",
+ "app/learn/advanced-development/custom-cli-scripts/page.mdx": "2024-09-30T08:43:53.122Z",
+ "app/learn/advanced-development/data-models/property-types/page.mdx": "2024-09-30T08:43:53.124Z",
+ "app/learn/debugging-and-testing/testing-tools/integration-tests/api-routes/page.mdx": "2024-09-30T08:43:53.136Z",
+ "app/learn/debugging-and-testing/testing-tools/integration-tests/page.mdx": "2024-09-10T11:39:51.170Z",
+ "app/learn/debugging-and-testing/testing-tools/integration-tests/workflows/page.mdx": "2024-09-30T08:43:53.139Z",
+ "app/learn/debugging-and-testing/testing-tools/page.mdx": "2024-09-30T08:43:53.139Z",
+ "app/learn/debugging-and-testing/testing-tools/unit-tests/module-example/page.mdx": "2024-09-02T11:04:27.232Z",
+ "app/learn/debugging-and-testing/testing-tools/unit-tests/page.mdx": "2024-09-02T11:03:26.997Z",
+ "app/learn/advanced-development/modules/service-constraints/page.mdx": "2024-09-30T08:43:53.127Z",
+ "app/learn/advanced-development/api-routes/page.mdx": "2024-09-04T09:36:33.961Z",
+ "app/learn/advanced-development/api-routes/responses/page.mdx": "2024-09-11T10:44:37.016Z",
+ "app/learn/advanced-development/api-routes/validation/page.mdx": "2024-09-11T10:46:31.476Z",
+ "app/learn/advanced-development/api-routes/errors/page.mdx": "2024-09-30T08:43:53.121Z",
+ "app/learn/advanced-development/admin/constraints/page.mdx": "2024-09-10T11:39:51.165Z",
+ "app/learn/debugging-and-testing/testing-tools/modules-tests/module-example/page.mdx": "2024-10-16T08:50:03.061Z",
+ "app/learn/debugging-and-testing/testing-tools/modules-tests/page.mdx": "2024-10-16T08:50:23.232Z",
+ "app/learn/advanced-development/module-links/custom-columns/page.mdx": "2024-09-16T15:51:33.570Z",
+ "app/learn/advanced-development/module-links/directions/page.mdx": "2024-09-16T15:37:51.441Z",
+ "app/learn/advanced-development/module-links/page.mdx": "2024-09-16T15:36:48.190Z",
+ "app/learn/advanced-development/module-links/query/page.mdx": "2024-09-16T12:42:27.579Z",
+ "app/learn/advanced-development/module-links/remote-link/page.mdx": "2024-09-16T12:42:27.581Z",
+ "app/learn/advanced-development/modules/db-operations/page.mdx": "2024-09-16T14:38:29.150Z",
+ "app/learn/advanced-development/modules/multiple-services/page.mdx": "2024-09-16T14:41:32.975Z",
+ "app/learn/advanced-development/modules/page.mdx": "2024-09-16T14:33:48.217Z",
+ "app/learn/debugging-and-testing/instrumentation/page.mdx": "2024-09-17T08:53:15.910Z",
+ "app/learn/advanced-development/api-routes/additional-data/page.mdx": "2024-09-30T08:43:53.120Z",
+ "app/learn/advanced-development/workflows/page.mdx": "2024-09-18T08:00:57.364Z",
+ "app/learn/advanced-development/workflows/variable-manipulation/page.mdx": "2024-09-30T08:43:53.130Z",
+ "app/learn/customization/custom-features/api-route/page.mdx": "2024-09-12T12:42:34.201Z",
+ "app/learn/customization/custom-features/module/page.mdx": "2024-10-16T08:49:44.676Z",
+ "app/learn/customization/custom-features/workflow/page.mdx": "2024-09-30T08:43:53.133Z",
+ "app/learn/customization/extend-models/create-links/page.mdx": "2024-09-30T08:43:53.133Z",
+ "app/learn/customization/extend-models/extend-create-product/page.mdx": "2024-09-30T08:43:53.134Z",
+ "app/learn/customization/custom-features/page.mdx": "2024-09-12T11:18:13.271Z",
+ "app/learn/customization/customize-admin/page.mdx": "2024-09-12T12:25:29.853Z",
+ "app/learn/customization/customize-admin/route/page.mdx": "2024-10-07T12:43:11.335Z",
+ "app/learn/customization/customize-admin/widget/page.mdx": "2024-10-07T12:44:24.538Z",
+ "app/learn/customization/extend-models/define-link/page.mdx": "2024-09-30T08:43:53.134Z",
+ "app/learn/customization/extend-models/page.mdx": "2024-09-12T12:38:57.394Z",
+ "app/learn/customization/extend-models/query-linked-records/page.mdx": "2024-09-30T08:43:53.134Z",
+ "app/learn/customization/integrate-systems/handle-event/page.mdx": "2024-09-30T08:43:53.135Z",
+ "app/learn/customization/integrate-systems/page.mdx": "2024-09-12T12:33:29.827Z",
+ "app/learn/customization/integrate-systems/schedule-task/page.mdx": "2024-09-30T08:43:53.135Z",
+ "app/learn/customization/integrate-systems/service/page.mdx": "2024-10-16T08:49:50.899Z",
+ "app/learn/customization/next-steps/page.mdx": "2024-09-12T10:50:04.873Z",
+ "app/learn/customization/page.mdx": "2024-09-12T11:16:18.504Z",
+ "app/learn/more-resources/cheatsheet/page.mdx": "2024-07-11T16:11:26.480Z",
+ "app/learn/architecture/architectural-modules/page.mdx": "2024-09-23T12:51:04.520Z",
+ "app/learn/architecture/overview/page.mdx": "2024-09-23T12:55:01.339Z",
+ "app/learn/advanced-development/data-models/infer-type/page.mdx": "2024-09-30T08:43:53.123Z",
+ "app/learn/advanced-development/custom-cli-scripts/seed-data/page.mdx": "2024-10-03T11:11:07.181Z",
+ "app/learn/basics/modules/page.mdx": "2024-10-16T08:49:39.997Z"
}
\ No newline at end of file
diff --git a/www/apps/book/next.config.mjs b/www/apps/book/next.config.mjs
index f297b998358ba..7225d90473a06 100644
--- a/www/apps/book/next.config.mjs
+++ b/www/apps/book/next.config.mjs
@@ -130,48 +130,43 @@ const nextConfig = {
async redirects() {
return [
{
- source: "/advanced-development/modules/remote-query",
- destination: "/advanced-development/module-links/query",
+ source: "/advanced-development/:path*",
+ destination: "/learn/advanced-development/:path*",
permanent: true,
},
{
- source: "/advanced-development/modules/query",
- destination: "/advanced-development/module-links/query",
+ source: "/basics/:path*",
+ destination: "/learn/basics/:path*",
permanent: true,
},
{
- source: "/advanced-development/modules/module-links",
- destination: "/advanced-development/module-links",
+ source: "/customization/:path*",
+ destination: "/learn/customization/:path*",
permanent: true,
},
{
- source: "/advanced-development/modules/module-link-directions",
- destination: "/advanced-development/module-links/directions",
+ source: "/debugging-and-testing/:path*",
+ destination: "/learn/debugging-and-testing/:path*",
permanent: true,
},
{
- source: "/advanced-development/modules/remote-link",
- destination: "/advanced-development/module-links/remote-link",
+ source: "/deployment/:path*",
+ destination: "/learn/deployment/:path*",
permanent: true,
},
{
- source: "/cheatsheet",
- destination: "/more-resources/cheatsheet",
+ source: "/first-customizations/:path*",
+ destination: "/learn/first-customizations/:path*",
permanent: true,
},
{
- source: "/architectural-modules",
- destination: "/advanced-development/architecture/architectural-modules",
+ source: "/more-resources/:path*",
+ destination: "/learn/more-resources/:path*",
permanent: true,
},
{
- source: "/basics/modules-and-services",
- destination: "/basics/modules",
- permanent: true,
- },
- {
- source: "/basics/data-models",
- destination: "/basics/modules",
+ source: "/storefront-development/:path*",
+ destination: "/learn/storefront-development/:path*",
permanent: true,
},
{
diff --git a/www/apps/book/package.json b/www/apps/book/package.json
index 8d866b5447ac1..127a06426a526 100644
--- a/www/apps/book/package.json
+++ b/www/apps/book/package.json
@@ -16,6 +16,7 @@
"dependencies": {
"@mdx-js/loader": "^3.0.0",
"@mdx-js/react": "^3.0.0",
+ "@medusajs/icons": "rc",
"@next/mdx": "^14.2.14",
"clsx": "^2.1.0",
"docs-ui": "*",
diff --git a/www/apps/book/public/images/api-key-icon.png b/www/apps/book/public/images/api-key-icon.png
new file mode 100644
index 0000000000000..88d8166f9f5cb
Binary files /dev/null and b/www/apps/book/public/images/api-key-icon.png differ
diff --git a/www/apps/book/public/images/auth-icon.png b/www/apps/book/public/images/auth-icon.png
new file mode 100644
index 0000000000000..c3afa03d747a2
Binary files /dev/null and b/www/apps/book/public/images/auth-icon.png differ
diff --git a/www/apps/book/public/images/bg-stripes-dark.png b/www/apps/book/public/images/bg-stripes-dark.png
new file mode 100644
index 0000000000000..b186b87dcebff
Binary files /dev/null and b/www/apps/book/public/images/bg-stripes-dark.png differ
diff --git a/www/apps/book/public/images/bg-stripes.png b/www/apps/book/public/images/bg-stripes.png
new file mode 100644
index 0000000000000..ed5e7e9b39ae3
Binary files /dev/null and b/www/apps/book/public/images/bg-stripes.png differ
diff --git a/www/apps/book/public/images/cart-icon.png b/www/apps/book/public/images/cart-icon.png
new file mode 100644
index 0000000000000..75a37f623db3d
Binary files /dev/null and b/www/apps/book/public/images/cart-icon.png differ
diff --git a/www/apps/book/public/images/currency-icon.png b/www/apps/book/public/images/currency-icon.png
new file mode 100644
index 0000000000000..fef1c2f7e2f4b
Binary files /dev/null and b/www/apps/book/public/images/currency-icon.png differ
diff --git a/www/apps/book/public/images/customer-icon.png b/www/apps/book/public/images/customer-icon.png
new file mode 100644
index 0000000000000..b1deb68afcab8
Binary files /dev/null and b/www/apps/book/public/images/customer-icon.png differ
diff --git a/www/apps/book/public/images/fulfillment-icon.png b/www/apps/book/public/images/fulfillment-icon.png
new file mode 100644
index 0000000000000..efbf148a010c8
Binary files /dev/null and b/www/apps/book/public/images/fulfillment-icon.png differ
diff --git a/www/apps/book/public/images/get-started-card-dark.png b/www/apps/book/public/images/get-started-card-dark.png
new file mode 100644
index 0000000000000..cf78ad0c31585
Binary files /dev/null and b/www/apps/book/public/images/get-started-card-dark.png differ
diff --git a/www/apps/book/public/images/get-started-card-md.png b/www/apps/book/public/images/get-started-card-md.png
new file mode 100644
index 0000000000000..2b1910e9d3eba
Binary files /dev/null and b/www/apps/book/public/images/get-started-card-md.png differ
diff --git a/www/apps/book/public/images/get-started-card.png b/www/apps/book/public/images/get-started-card.png
new file mode 100644
index 0000000000000..5b05ed9b27e1c
Binary files /dev/null and b/www/apps/book/public/images/get-started-card.png differ
diff --git a/www/apps/book/public/images/inventory-icon.png b/www/apps/book/public/images/inventory-icon.png
new file mode 100644
index 0000000000000..7632438baca89
Binary files /dev/null and b/www/apps/book/public/images/inventory-icon.png differ
diff --git a/www/apps/book/public/images/order-icon.png b/www/apps/book/public/images/order-icon.png
new file mode 100644
index 0000000000000..8869a30ec8d15
Binary files /dev/null and b/www/apps/book/public/images/order-icon.png differ
diff --git a/www/apps/book/public/images/payment-icon.png b/www/apps/book/public/images/payment-icon.png
new file mode 100644
index 0000000000000..124d62965d210
Binary files /dev/null and b/www/apps/book/public/images/payment-icon.png differ
diff --git a/www/apps/book/public/images/pricing-icon.png b/www/apps/book/public/images/pricing-icon.png
new file mode 100644
index 0000000000000..ae0e8ad462c20
Binary files /dev/null and b/www/apps/book/public/images/pricing-icon.png differ
diff --git a/www/apps/book/public/images/product-icon.png b/www/apps/book/public/images/product-icon.png
new file mode 100644
index 0000000000000..8fdb4f0d0cd55
Binary files /dev/null and b/www/apps/book/public/images/product-icon.png differ
diff --git a/www/apps/book/public/images/promotion-icon.png b/www/apps/book/public/images/promotion-icon.png
new file mode 100644
index 0000000000000..640200620b0ab
Binary files /dev/null and b/www/apps/book/public/images/promotion-icon.png differ
diff --git a/www/apps/book/public/images/region-icon.png b/www/apps/book/public/images/region-icon.png
new file mode 100644
index 0000000000000..72fb2b63e68ee
Binary files /dev/null and b/www/apps/book/public/images/region-icon.png differ
diff --git a/www/apps/book/public/images/sales-channel-icon.png b/www/apps/book/public/images/sales-channel-icon.png
new file mode 100644
index 0000000000000..47867c1508c9c
Binary files /dev/null and b/www/apps/book/public/images/sales-channel-icon.png differ
diff --git a/www/apps/book/public/images/stock-location-icon.png b/www/apps/book/public/images/stock-location-icon.png
new file mode 100644
index 0000000000000..61674b2f5b0eb
Binary files /dev/null and b/www/apps/book/public/images/stock-location-icon.png differ
diff --git a/www/apps/book/public/images/tax-icon.png b/www/apps/book/public/images/tax-icon.png
new file mode 100644
index 0000000000000..2be16099b4441
Binary files /dev/null and b/www/apps/book/public/images/tax-icon.png differ
diff --git a/www/apps/book/public/images/user-icon.png b/www/apps/book/public/images/user-icon.png
new file mode 100644
index 0000000000000..bff05107f027d
Binary files /dev/null and b/www/apps/book/public/images/user-icon.png differ
diff --git a/www/apps/book/sidebar.mjs b/www/apps/book/sidebar.mjs
index 814073317ad46..eabd10db4e527 100644
--- a/www/apps/book/sidebar.mjs
+++ b/www/apps/book/sidebar.mjs
@@ -6,193 +6,193 @@ export const sidebar = numberSidebarItems(
sidebarAttachHrefCommonOptions([
{
type: "link",
- path: "/",
+ path: "/learn",
title: "Introduction",
},
{
type: "link",
- path: "/first-customizations",
+ path: "/learn/first-customizations",
title: "Your First Customizations",
chapterTitle: "First Customization",
},
{
type: "link",
- path: "/basics",
+ path: "/learn/basics",
title: "The Basics",
chapterTitle: "Basics",
children: [
{
type: "link",
- path: "/basics/project-directories-files",
+ path: "/learn/basics/project-directories-files",
title: "Project Conventions",
},
{
type: "link",
- path: "/basics/medusa-container",
+ path: "/learn/basics/medusa-container",
title: "Medusa Container",
},
{
type: "link",
- path: "/basics/modules",
+ path: "/learn/basics/modules",
title: "Modules",
},
{
type: "link",
- path: "/basics/api-routes",
+ path: "/learn/basics/api-routes",
title: "API Routes",
},
{
type: "link",
- path: "/basics/commerce-modules",
+ path: "/learn/basics/commerce-modules",
title: "Commerce Modules",
},
{
type: "link",
- path: "/basics/modules-directory-structure",
+ path: "/learn/basics/modules-directory-structure",
title: "Modules Directory Structure",
},
{
type: "link",
- path: "/basics/loaders",
+ path: "/learn/basics/loaders",
title: "Loaders",
},
{
type: "link",
- path: "/basics/events-and-subscribers",
+ path: "/learn/basics/events-and-subscribers",
title: "Events and Subscribers",
},
{
type: "link",
- path: "/basics/scheduled-jobs",
+ path: "/learn/basics/scheduled-jobs",
title: "Scheduled Jobs",
},
{
type: "link",
- path: "/basics/workflows",
+ path: "/learn/basics/workflows",
title: "Workflows",
},
{
type: "link",
- path: "/basics/admin-customizations",
+ path: "/learn/basics/admin-customizations",
title: "Admin Customizations",
},
],
},
{
type: "link",
- path: "/customization",
+ path: "/learn/customization",
title: "Custom Development",
chapterTitle: "Customization",
children: [
{
type: "link",
title: "Build Custom Features",
- path: "/customization/custom-features",
+ path: "/learn/customization/custom-features",
children: [
{
type: "link",
title: "Brand Module",
- path: "/customization/custom-features/module",
+ path: "/learn/customization/custom-features/module",
},
{
type: "link",
title: "Create Brand Workflow",
- path: "/customization/custom-features/workflow",
+ path: "/learn/customization/custom-features/workflow",
},
{
type: "link",
title: "Create Brand API Route",
- path: "/customization/custom-features/api-route",
+ path: "/learn/customization/custom-features/api-route",
},
],
},
{
type: "link",
title: "Extend Models",
- path: "/customization/extend-models",
+ path: "/learn/customization/extend-models",
children: [
{
type: "link",
title: "Define Link",
- path: "/customization/extend-models/define-link",
+ path: "/learn/customization/extend-models/define-link",
},
{
type: "link",
title: "Create Links Between Records",
- path: "/customization/extend-models/create-links",
+ path: "/learn/customization/extend-models/create-links",
},
{
type: "link",
title: "Extend Route",
- path: "/customization/extend-models/extend-create-product",
+ path: "/learn/customization/extend-models/extend-create-product",
},
{
type: "link",
title: "Query Linked Records",
- path: "/customization/extend-models/query-linked-records",
+ path: "/learn/customization/extend-models/query-linked-records",
},
],
},
{
type: "link",
title: "Customize Admin",
- path: "/customization/customize-admin",
+ path: "/learn/customization/customize-admin",
children: [
{
type: "link",
title: "Add Widgets",
- path: "/customization/customize-admin/widget",
+ path: "/learn/customization/customize-admin/widget",
},
{
type: "link",
title: "Add UI Route",
- path: "/customization/customize-admin/route",
+ path: "/learn/customization/customize-admin/route",
},
],
},
{
type: "link",
title: "Integrate Systems",
- path: "/customization/integrate-systems",
+ path: "/learn/customization/integrate-systems",
children: [
{
type: "link",
title: "Integrate with Service",
- path: "/customization/integrate-systems/service",
+ path: "/learn/customization/integrate-systems/service",
},
{
type: "link",
title: "Handle Event",
- path: "/customization/integrate-systems/handle-event",
+ path: "/learn/customization/integrate-systems/handle-event",
},
{
type: "link",
title: "Schedule Task",
- path: "/customization/integrate-systems/schedule-task",
+ path: "/learn/customization/integrate-systems/schedule-task",
},
],
},
{
type: "link",
title: "Next Steps",
- path: "/customization/next-steps",
+ path: "/learn/customization/next-steps",
},
],
},
{
type: "link",
- path: "/advanced-development",
+ path: "/learn/advanced-development",
title: "Advanced Development",
chapterTitle: "Advanced",
children: [
{
type: "link",
title: "Architecture",
- path: "/advanced-development/architecture/overview",
+ path: "/learn/advanced-development/architecture/overview",
children: [
{
type: "link",
- path: "/advanced-development/architecture/architectural-modules",
+ path: "/learn/advanced-development/architecture/architectural-modules",
title: "Architectural Modules",
},
],
@@ -200,177 +200,177 @@ export const sidebar = numberSidebarItems(
{
type: "link",
title: "API Routes",
- path: "/advanced-development/api-routes",
+ path: "/learn/advanced-development/api-routes",
children: [
{
type: "link",
- path: "/advanced-development/api-routes/http-methods",
+ path: "/learn/advanced-development/api-routes/http-methods",
title: "HTTP Methods",
},
{
type: "link",
- path: "/advanced-development/api-routes/parameters",
+ path: "/learn/advanced-development/api-routes/parameters",
title: "Parameters",
},
{
type: "link",
- path: "/advanced-development/api-routes/responses",
+ path: "/learn/advanced-development/api-routes/responses",
title: "Response",
},
{
type: "link",
- path: "/advanced-development/api-routes/middlewares",
+ path: "/learn/advanced-development/api-routes/middlewares",
title: "Middlewares",
},
{
type: "link",
- path: "/advanced-development/api-routes/validation",
+ path: "/learn/advanced-development/api-routes/validation",
title: "Validation",
},
{
type: "link",
- path: "/advanced-development/api-routes/protected-routes",
+ path: "/learn/advanced-development/api-routes/protected-routes",
title: "Protected Routes",
},
{
type: "link",
- path: "/advanced-development/api-routes/errors",
+ path: "/learn/advanced-development/api-routes/errors",
title: "Errors",
},
{
type: "link",
- path: "/advanced-development/api-routes/cors",
+ path: "/learn/advanced-development/api-routes/cors",
title: "Handling CORS",
},
{
type: "link",
- path: "/advanced-development/api-routes/additional-data",
+ path: "/learn/advanced-development/api-routes/additional-data",
title: "Additional Data",
},
],
},
{
type: "link",
- path: "/advanced-development/modules",
+ path: "/learn/advanced-development/modules",
title: "Modules",
children: [
{
type: "link",
- path: "/advanced-development/modules/isolation",
+ path: "/learn/advanced-development/modules/isolation",
title: "Module Isolation",
},
{
type: "link",
- path: "/advanced-development/modules/container",
+ path: "/learn/advanced-development/modules/container",
title: "Module's Container",
},
{
type: "link",
- path: "/advanced-development/modules/options",
+ path: "/learn/advanced-development/modules/options",
title: "Module Options",
},
{
type: "link",
- path: "/advanced-development/modules/service-factory",
+ path: "/learn/advanced-development/modules/service-factory",
title: "Service Factory",
},
{
type: "link",
- path: "/advanced-development/modules/service-constraints",
+ path: "/learn/advanced-development/modules/service-constraints",
title: "Service Constraints",
},
{
type: "link",
- path: "/advanced-development/modules/db-operations",
+ path: "/learn/advanced-development/modules/db-operations",
title: "Database Operations",
},
{
type: "link",
- path: "/advanced-development/modules/multiple-services",
+ path: "/learn/advanced-development/modules/multiple-services",
title: "Multiple Services",
},
],
},
{
type: "link",
- path: "/advanced-development/module-links",
+ path: "/learn/advanced-development/module-links",
title: "Module Links",
children: [
{
type: "link",
- path: "/advanced-development/module-links/directions",
+ path: "/learn/advanced-development/module-links/directions",
title: "Module Link Direction",
},
{
type: "link",
- path: "/advanced-development/module-links/remote-link",
+ path: "/learn/advanced-development/module-links/remote-link",
title: "Remote Link",
},
{
type: "link",
- path: "/advanced-development/module-links/query",
+ path: "/learn/advanced-development/module-links/query",
title: "Query",
},
{
type: "link",
- path: "/advanced-development/module-links/custom-columns",
+ path: "/learn/advanced-development/module-links/custom-columns",
title: "Custom Columns",
},
],
},
{
type: "link",
- path: "/advanced-development/data-models",
+ path: "/learn/advanced-development/data-models",
title: "Data Models",
children: [
{
type: "link",
- path: "/advanced-development/data-models/infer-type",
+ path: "/learn/advanced-development/data-models/infer-type",
title: "Infer Type",
},
{
type: "link",
- path: "/advanced-development/data-models/property-types",
+ path: "/learn/advanced-development/data-models/property-types",
title: "Property Types",
},
{
type: "link",
- path: "/advanced-development/data-models/primary-key",
+ path: "/learn/advanced-development/data-models/primary-key",
title: "Primary Key",
},
{
type: "link",
- path: "/advanced-development/data-models/default-properties",
+ path: "/learn/advanced-development/data-models/default-properties",
title: "Default Properties",
},
{
type: "link",
- path: "/advanced-development/data-models/configure-properties",
+ path: "/learn/advanced-development/data-models/configure-properties",
title: "Configure Properties",
},
{
type: "link",
- path: "/advanced-development/data-models/relationships",
+ path: "/learn/advanced-development/data-models/relationships",
title: "Relationships",
},
{
type: "link",
- path: "/advanced-development/data-models/manage-relationships",
+ path: "/learn/advanced-development/data-models/manage-relationships",
title: "Manage Relationships",
},
{
type: "link",
- path: "/advanced-development/data-models/index",
+ path: "/learn/advanced-development/data-models/index",
title: "Define Index",
},
{
type: "link",
- path: "/advanced-development/data-models/searchable-property",
+ path: "/learn/advanced-development/data-models/searchable-property",
title: "Searchable Property",
},
{
type: "link",
- path: "/advanced-development/data-models/write-migration",
+ path: "/learn/advanced-development/data-models/write-migration",
title: "Write Migration",
},
],
@@ -381,11 +381,11 @@ export const sidebar = numberSidebarItems(
children: [
{
type: "link",
- path: "/advanced-development/events-and-subscribers/data-payload",
+ path: "/learn/advanced-development/events-and-subscribers/data-payload",
title: "Events Data Payload",
},
{
- path: "/advanced-development/events-and-subscribers/emit-event",
+ path: "/learn/advanced-development/events-and-subscribers/emit-event",
title: "Emit an Event",
},
],
@@ -396,81 +396,81 @@ export const sidebar = numberSidebarItems(
children: [
{
type: "link",
- path: "/advanced-development/scheduled-jobs/execution-number",
+ path: "/learn/advanced-development/scheduled-jobs/execution-number",
title: "Execution Number",
},
],
},
{
type: "link",
- path: "/advanced-development/workflows",
+ path: "/learn/advanced-development/workflows",
title: "Workflows",
children: [
{
type: "link",
- path: "/advanced-development/workflows/variable-manipulation",
+ path: "/learn/advanced-development/workflows/variable-manipulation",
title: "Variable Manipulation",
},
{
type: "link",
- path: "/advanced-development/workflows/conditions",
+ path: "/learn/advanced-development/workflows/conditions",
title: "Using Conditions",
},
{
type: "link",
- path: "/advanced-development/workflows/constructor-constraints",
+ path: "/learn/advanced-development/workflows/constructor-constraints",
title: "Constructor Constraints",
},
{
type: "link",
- path: "/advanced-development/workflows/compensation-function",
+ path: "/learn/advanced-development/workflows/compensation-function",
title: "Compensation Function",
},
{
type: "link",
- path: "/advanced-development/workflows/workflow-hooks",
+ path: "/learn/advanced-development/workflows/workflow-hooks",
title: "Workflow Hooks",
},
{
type: "link",
- path: "/advanced-development/workflows/add-workflow-hook",
+ path: "/learn/advanced-development/workflows/add-workflow-hook",
title: "Expose a Hook",
},
{
type: "link",
- path: "/advanced-development/workflows/access-workflow-errors",
+ path: "/learn/advanced-development/workflows/access-workflow-errors",
title: "Access Workflow Errors",
},
{
type: "link",
- path: "/advanced-development/workflows/retry-failed-steps",
+ path: "/learn/advanced-development/workflows/retry-failed-steps",
title: "Retry Failed Steps",
},
{
type: "link",
- path: "/advanced-development/workflows/parallel-steps",
+ path: "/learn/advanced-development/workflows/parallel-steps",
title: "Run Steps in Parallel",
},
{
type: "link",
- path: "/advanced-development/workflows/workflow-timeout",
+ path: "/learn/advanced-development/workflows/workflow-timeout",
title: "Workflow Timeout",
},
{
type: "link",
- path: "/advanced-development/workflows/long-running-workflow",
+ path: "/learn/advanced-development/workflows/long-running-workflow",
title: "Long-Running Workflow",
},
{
type: "link",
- path: "/advanced-development/workflows/execute-another-workflow",
+ path: "/learn/advanced-development/workflows/execute-another-workflow",
title: "Execute Another Workflow",
},
],
},
{
type: "link",
- path: "/advanced-development/custom-cli-scripts",
+ path: "/learn/advanced-development/custom-cli-scripts",
title: "Custom CLI Scripts",
children: [
{
@@ -482,27 +482,27 @@ export const sidebar = numberSidebarItems(
},
{
type: "link",
- path: "/advanced-development/admin",
+ path: "/learn/advanced-development/admin",
title: "Admin Development",
children: [
{
type: "link",
- path: "/advanced-development/admin/widgets",
+ path: "/learn/advanced-development/admin/widgets",
title: "Admin Widgets",
},
{
type: "link",
- path: "/advanced-development/admin/ui-routes",
+ path: "/learn/advanced-development/admin/ui-routes",
title: "Admin UI Routes",
},
{
type: "link",
- path: "/advanced-development/admin/constraints",
+ path: "/learn/advanced-development/admin/constraints",
title: "Constraints",
},
{
type: "link",
- path: "/advanced-development/admin/tips",
+ path: "/learn/advanced-development/admin/tips",
title: "Tips",
},
],
@@ -511,87 +511,87 @@ export const sidebar = numberSidebarItems(
},
{
type: "link",
- path: "/storefront-development",
+ path: "/learn/storefront-development",
title: "Storefront Development",
chapterTitle: "Storefront",
children: [
{
type: "link",
- path: "/storefront-development/nextjs-starter",
+ path: "/learn/storefront-development/nextjs-starter",
title: "Next.js Starter",
},
],
},
{
type: "link",
- path: "/debugging-and-testing",
+ path: "/learn/debugging-and-testing",
title: "Debugging and Testing",
chapterTitle: "Debugging & Testing",
children: [
{
type: "link",
- path: "/debugging-and-testing/testing-tools",
+ path: "/learn/debugging-and-testing/testing-tools",
title: "Testing Tools",
},
{
type: "link",
- path: "/debugging-and-testing/testing-tools/integration-tests",
+ path: "/learn/debugging-and-testing/testing-tools/integration-tests",
title: "Integration Tests",
children: [
{
type: "link",
- path: "/debugging-and-testing/testing-tools/integration-tests/api-routes",
+ path: "/learn/debugging-and-testing/testing-tools/integration-tests/api-routes",
title: "Example: API Routes Tests",
},
{
type: "link",
- path: "/debugging-and-testing/testing-tools/integration-tests/workflows",
+ path: "/learn/debugging-and-testing/testing-tools/integration-tests/workflows",
title: "Example: Workflows Tests",
},
],
},
{
type: "link",
- path: "/debugging-and-testing/testing-tools/modules-tests",
+ path: "/learn/debugging-and-testing/testing-tools/modules-tests",
title: "Modules Tests",
children: [
{
type: "link",
- path: "/debugging-and-testing/testing-tools/modules-tests/module-example",
+ path: "/learn/debugging-and-testing/testing-tools/modules-tests/module-example",
title: "Example",
},
],
},
{
type: "link",
- path: "/debugging-and-testing/instrumentation",
+ path: "/learn/debugging-and-testing/instrumentation",
title: "Instrumentation",
},
{
type: "link",
- path: "/debugging-and-testing/logging",
+ path: "/learn/debugging-and-testing/logging",
title: "Logging",
},
],
},
{
type: "link",
- path: "/deployment",
+ path: "/learn/deployment",
title: "Deployment",
},
{
type: "link",
- path: "/more-resources",
+ path: "/learn/more-resources",
title: "More Resources",
children: [
{
type: "link",
- path: "/more-resources/cheatsheet",
+ path: "/learn/more-resources/cheatsheet",
title: "Cheat Sheet",
},
{
type: "link",
- path: "/more-resources/examples",
+ path: "/learn/more-resources/examples",
title: "Examples",
},
],
diff --git a/www/apps/book/tailwind.config.js b/www/apps/book/tailwind.config.js
index d582b22247162..488af7843f90a 100644
--- a/www/apps/book/tailwind.config.js
+++ b/www/apps/book/tailwind.config.js
@@ -32,6 +32,8 @@ module.exports = {
"search-no-result-dark": "url('/images/search-no-result.svg')",
"magnifying-glass": "url('/images/magnifying-glass.svg')",
"magnifying-glass-dark": "url('/images/magnifying-glass-dark.svg')",
+ "bg-stripes": "url('/v2/images/bg-stripes.png')",
+ "bg-stripes-dark": "url('/v2/images/bg-stripes-dark.png')",
},
},
}
diff --git a/www/apps/book/utils/number-sidebar-items.mjs b/www/apps/book/utils/number-sidebar-items.mjs
index 318fd4c740f9c..e341e09387a7e 100644
--- a/www/apps/book/utils/number-sidebar-items.mjs
+++ b/www/apps/book/utils/number-sidebar-items.mjs
@@ -5,7 +5,6 @@
* @returns {import("@/types").SidebarItem[]} The modified sidebar items
*/
export default function numberSidebarItems(sidebarItems, numbering = [1]) {
- // TODO generate chapter titles
if (!numbering.length) {
numbering.push(1)
}
@@ -24,7 +23,7 @@ export default function numberSidebarItems(sidebarItems, numbering = [1]) {
item.chapterTitle = `${item.number} ${
item.chapterTitle?.trim() || item.title?.trim()
}`
- item.title = `${item.number} ${item.title.trim()}`
+ item.title = item.title.trim()
if (isTopItems) {
// Add chapter category
diff --git a/www/apps/resources/app/admin-components/components/forms/page.mdx b/www/apps/resources/app/admin-components/components/forms/page.mdx
index fc3b34fbd1123..469dcae57d83c 100644
--- a/www/apps/resources/app/admin-components/components/forms/page.mdx
+++ b/www/apps/resources/app/admin-components/components/forms/page.mdx
@@ -175,7 +175,7 @@ You create the `CreateForm` component. For now, it uses `useForm` from `react-ho
You also define a `handleSubmit` function to perform an action when the form is submitted.
-You can replace the content of the function with sending a request to Medusa's routes. Refer to [this guide](!docs!/advanced-development/admin/tips#send-requests-to-api-routes) for more details on how to do that.
+You can replace the content of the function with sending a request to Medusa's routes. Refer to [this guide](!docs!/learn/advanced-development/admin/tips#send-requests-to-api-routes) for more details on how to do that.
### Render Components
@@ -454,7 +454,7 @@ You create the `EditForm` component. For now, it uses `useForm` from `react-hook
You also define a `handleSubmit` function to perform an action when the form is submitted.
-You can replace the content of the function with sending a request to Medusa's routes. Refer to [this guide](!docs!/advanced-development/admin/tips#send-requests-to-api-routes) for more details on how to do that.
+You can replace the content of the function with sending a request to Medusa's routes. Refer to [this guide](!docs!/learn/advanced-development/admin/tips#send-requests-to-api-routes) for more details on how to do that.
### Render Components
diff --git a/www/apps/resources/app/commerce-modules/auth/create-actor-type/page.mdx b/www/apps/resources/app/commerce-modules/auth/create-actor-type/page.mdx
index a190e10bb8dc1..b37100870fb29 100644
--- a/www/apps/resources/app/commerce-modules/auth/create-actor-type/page.mdx
+++ b/www/apps/resources/app/commerce-modules/auth/create-actor-type/page.mdx
@@ -12,7 +12,7 @@ Before creating an actor type, you must have a module with a data model represen
-Learn how to create a module in [this guide](!docs!/basics/modules).
+Learn how to create a module in [this guide](!docs!/learn/basics/modules).
diff --git a/www/apps/resources/app/commerce-modules/cart/extend/page.mdx b/www/apps/resources/app/commerce-modules/cart/extend/page.mdx
index e80fad21085c7..7d671ff0ddc0a 100644
--- a/www/apps/resources/app/commerce-modules/cart/extend/page.mdx
+++ b/www/apps/resources/app/commerce-modules/cart/extend/page.mdx
@@ -22,7 +22,7 @@ Consider you have a Hello Module defined in the `/src/modules/hello` directory.
-If you don't have a module, follow [this guide](!docs!/basics/modules) to create one.
+If you don't have a module, follow [this guide](!docs!/learn/basics/modules) to create one.
@@ -43,7 +43,7 @@ This creates a `Custom` data model that has the `id` and `custom_name` propertie
-Learn more about data models in [this guide](!docs!/data-models).
+Learn more about data models in [this guide](!docs!/learn/data-models).
@@ -55,7 +55,7 @@ Next, you'll define a module link between the `Custom` and `Cart` data model. A
-Learn more about module links in [this guide](!docs!/module-links).
+Learn more about module links in [this guide](!docs!/learn/module-links).
@@ -82,7 +82,7 @@ This defines a link between the `Cart` and `Custom` data models. Using this link
items={[
{
text: "Module must be registered in medusa-config.ts",
- link: "!docs!/basics/modules#4-add-module-to-configurations"
+ link: "!docs!/learn/basics/modules#4-add-module-to-configurations"
}
]}
/>
@@ -115,7 +115,7 @@ To do that, you'll consume the [cartCreated](/references/medusa-workflows/create
-Learn more about workflow hooks in [this guide](!docs!/advanced-development/workflows/workflow-hooks).
+Learn more about workflow hooks in [this guide](!docs!/learn/advanced-development/workflows/workflow-hooks).
@@ -150,7 +150,7 @@ In the snippet above, you add a validation rule indicating that `custom_name` is
-Learn more about additional data validation in [this guide](!docs!/advanced-development/api-routes/additional-data).
+Learn more about additional data validation in [this guide](!docs!/learn/advanced-development/api-routes/additional-data).
@@ -202,7 +202,7 @@ In the compensation function that undoes the step's actions in case of an error,
-Learn more about compensation functions in [this guide](!docs!/advanced-development/workflows/compensation-function).
+Learn more about compensation functions in [this guide](!docs!/learn/advanced-development/workflows/compensation-function).
@@ -260,9 +260,9 @@ The workflow accepts as an input the created cart and the `additional_data` para
In the workflow, you:
-1. Use the `transform` utility to get the value of `custom_name` based on whether it's set in `additional_data`. Learn more about why you can't use conditional operators in a workflow without using `transform` in [this guide](!docs!/advanced-development/workflows/conditions#why-if-conditions-arent-allowed-in-workflows).
+1. Use the `transform` utility to get the value of `custom_name` based on whether it's set in `additional_data`. Learn more about why you can't use conditional operators in a workflow without using `transform` in [this guide](!docs!/learn/advanced-development/workflows/conditions#why-if-conditions-arent-allowed-in-workflows).
2. Create the `Custom` record using the `createCustomStep`.
-3. Use the `when-then` utility to link the cart to the `Custom` record if it was created. Learn more about why you can't use if-then conditions in a workflow without using `when-then` in [this guide](!docs!/advanced-development/workflows/conditions#why-if-conditions-arent-allowed-in-workflows).
+3. Use the `when-then` utility to link the cart to the `Custom` record if it was created. Learn more about why you can't use if-then conditions in a workflow without using `when-then` in [this guide](!docs!/learn/advanced-development/workflows/conditions#why-if-conditions-arent-allowed-in-workflows).
You'll next call the workflow in the hook handler.
@@ -355,7 +355,7 @@ Among the returned `cart` object, you'll find a `custom` property which holds th
### Retrieve using Query
-You can also retrieve the `Custom` record linked to a cart in your code using [Query](!docs!/advanced-development/module-links/query).
+You can also retrieve the `Custom` record linked to a cart in your code using [Query](!docs!/learn/advanced-development/module-links/query).
For example:
@@ -369,7 +369,7 @@ const { data: [cart] } = await query.graph({
})
```
-Learn more about how to use Query in [this guide](!docs!/advanced-development/module-links/query).
+Learn more about how to use Query in [this guide](!docs!/learn/advanced-development/module-links/query).
---
diff --git a/www/apps/resources/app/commerce-modules/customer/extend/page.mdx b/www/apps/resources/app/commerce-modules/customer/extend/page.mdx
index 6bbf7a358b873..b3914e75dd13c 100644
--- a/www/apps/resources/app/commerce-modules/customer/extend/page.mdx
+++ b/www/apps/resources/app/commerce-modules/customer/extend/page.mdx
@@ -28,7 +28,7 @@ Consider you have a Hello Module defined in the `/src/modules/hello` directory.
-If you don't have a module, follow [this guide](!docs!/basics/modules) to create one.
+If you don't have a module, follow [this guide](!docs!/learn/basics/modules) to create one.
@@ -49,7 +49,7 @@ This creates a `Custom` data model that has the `id` and `custom_name` propertie
-Learn more about data models in [this guide](!docs!/data-models).
+Learn more about data models in [this guide](!docs!/learn/data-models).
@@ -61,7 +61,7 @@ Next, you'll define a module link between the `Custom` and `Customer` data model
-Learn more about module links in [this guide](!docs!/module-links).
+Learn more about module links in [this guide](!docs!/learn/module-links).
@@ -88,7 +88,7 @@ This defines a link between the `Customer` and `Custom` data models. Using this
items={[
{
text: "Module must be registered in medusa-config.ts",
- link: "!docs!/basics/modules#4-add-module-to-configurations"
+ link: "!docs!/learn/basics/modules#4-add-module-to-configurations"
}
]}
/>
@@ -121,7 +121,7 @@ To do that, you'll consume the [customersCreated](/resources/references/medusa-w
-Learn more about workflow hooks in [this guide](!docs!/advanced-development/workflows/workflow-hooks).
+Learn more about workflow hooks in [this guide](!docs!/learn/advanced-development/workflows/workflow-hooks).
@@ -156,7 +156,7 @@ In the snippet above, you add a validation rule indicating that `custom_name` is
-Learn more about additional data validation in [this guide](!docs!/advanced-development/api-routes/additional-data).
+Learn more about additional data validation in [this guide](!docs!/learn/advanced-development/api-routes/additional-data).
@@ -208,7 +208,7 @@ In the compensation function that undoes the step's actions in case of an error,
-Learn more about compensation functions in [this guide](!docs!/advanced-development/workflows/compensation-function).
+Learn more about compensation functions in [this guide](!docs!/learn/advanced-development/workflows/compensation-function).
@@ -266,9 +266,9 @@ The workflow accepts as an input the created customer and the `additional_data`
In the workflow, you:
-1. Use the `transform` utility to get the value of `custom_name` based on whether it's set in `additional_data`. Learn more about why you can't use conditional operators in a workflow without using `transform` in [this guide](!docs!/advanced-development/workflows/conditions#why-if-conditions-arent-allowed-in-workflows).
+1. Use the `transform` utility to get the value of `custom_name` based on whether it's set in `additional_data`. Learn more about why you can't use conditional operators in a workflow without using `transform` in [this guide](!docs!/learn/advanced-development/workflows/conditions#why-if-conditions-arent-allowed-in-workflows).
2. Create the `Custom` record using the `createCustomStep`.
-3. Use the `when-then` utility to link the customer to the `Custom` record if it was created. Learn more about why you can't use if-then conditions in a workflow without using `when-then` in [this guide](!docs!/advanced-development/workflows/conditions#why-if-conditions-arent-allowed-in-workflows).
+3. Use the `when-then` utility to link the customer to the `Custom` record if it was created. Learn more about why you can't use if-then conditions in a workflow without using `when-then` in [this guide](!docs!/learn/advanced-development/workflows/conditions#why-if-conditions-arent-allowed-in-workflows).
You'll next execute the workflow in the hook handler.
@@ -367,7 +367,7 @@ Among the returned `customer` object, you'll find a `custom` property which hold
### Retrieve using Query
-You can also retrieve the `Custom` record linked to a customer in your code using [Query](!docs!/advanced-development/module-links/query).
+You can also retrieve the `Custom` record linked to a customer in your code using [Query](!docs!/learn/advanced-development/module-links/query).
For example:
@@ -381,7 +381,7 @@ const { data: [customer] } = await query.graph({
})
```
-Learn more about how to use Query in [this guide](!docs!/advanced-development/module-links/query).
+Learn more about how to use Query in [this guide](!docs!/learn/advanced-development/module-links/query).
---
diff --git a/www/apps/resources/app/commerce-modules/product/guides/price/page.mdx b/www/apps/resources/app/commerce-modules/product/guides/price/page.mdx
index e69b068af834b..78e2a80bf7fb5 100644
--- a/www/apps/resources/app/commerce-modules/product/guides/price/page.mdx
+++ b/www/apps/resources/app/commerce-modules/product/guides/price/page.mdx
@@ -8,7 +8,7 @@ export const metadata = {
# {metadata.title}
-In this document, you'll learn how to retrieve product variant prices in the Medusa application using [Query](!docs!/advanced-development/module-links/query).
+In this document, you'll learn how to retrieve product variant prices in the Medusa application using [Query](!docs!/learn/advanced-development/module-links/query).
diff --git a/www/apps/resources/app/globals.css b/www/apps/resources/app/globals.css
index abdd9847fb297..97686aaf3e93e 100644
--- a/www/apps/resources/app/globals.css
+++ b/www/apps/resources/app/globals.css
@@ -5,11 +5,17 @@
@layer base {
html {
- -webkit-font-smoothing: antialiased;
+ --webkit-font-smoothing: antialiased;
+ overscroll-behavior-y: none;
}
body {
@apply overflow-x-hidden;
+ overscroll-behavior-y: none;
+ }
+
+ #main {
+ overscroll-behavior-y: contain;
}
*::selection {
@@ -22,6 +28,7 @@
aside * {
scrollbar-color: var(--docs-border-base) var(--docs-bg-subtle);
+ overscroll-behavior-y: contain;
}
body[data-modal="opened"] {
diff --git a/www/apps/resources/app/layout.tsx b/www/apps/resources/app/layout.tsx
index 7ee078e186bca..0ccd725d31292 100644
--- a/www/apps/resources/app/layout.tsx
+++ b/www/apps/resources/app/layout.tsx
@@ -2,7 +2,7 @@ import type { Metadata } from "next"
import { Inter, Roboto_Mono } from "next/font/google"
import Providers from "@/providers"
import "./globals.css"
-import { TightLayout } from "docs-ui"
+import { BareboneLayout, TightLayout } from "docs-ui"
import { config } from "@/config"
import clsx from "clsx"
import { Feedback } from "@/components/Feedback"
@@ -37,16 +37,17 @@ export default function RootLayout({
children: React.ReactNode
}) {
return (
- }
- editComponent={}
- >
- {children}
-
+
+ }
+ editComponent={}
+ ProvidersComponent={Providers}
+ >
+ {children}
+
+
)
}
diff --git a/www/apps/resources/app/medusa-cli/commands/exec/page.mdx b/www/apps/resources/app/medusa-cli/commands/exec/page.mdx
index e640962ef4bc9..ec86d4bac9cbf 100644
--- a/www/apps/resources/app/medusa-cli/commands/exec/page.mdx
+++ b/www/apps/resources/app/medusa-cli/commands/exec/page.mdx
@@ -11,7 +11,7 @@ export const metadata = {
# {metadata.title}
-Run a custom CLI script. Learn more about it in [this guide](!docs!/advanced-development/custom-cli-scripts).
+Run a custom CLI script. Learn more about it in [this guide](!docs!/learn/advanced-development/custom-cli-scripts).
```bash
npx medusa exec [file] [args...]
diff --git a/www/apps/resources/app/recipes/b2b/page.mdx b/www/apps/resources/app/recipes/b2b/page.mdx
index 43bc70cde5121..9ac8e49266f99 100644
--- a/www/apps/resources/app/recipes/b2b/page.mdx
+++ b/www/apps/resources/app/recipes/b2b/page.mdx
@@ -173,13 +173,13 @@ You can create a B2B module that adds necessary data models to represent a B2B c
{/*
- You can store the product's ID in the external system using the `metadata` property of the `Product` data model in the Product Module. Alternatively, you can create a [data model](!docs!/basics/modules#1-create-data-model) in your module to store data related to the external system.
+ You can store the product's ID in the external system using the `metadata` property of the `Product` data model in the Product Module. Alternatively, you can create a [data model](!docs!/learn/basics/modules#1-create-data-model) in your module to store data related to the external system.
@@ -150,7 +150,7 @@ Workflows can be executed from anywhere. So, taking the workflow described above
Workflows guarantee data consistency through their compensation feature. You can provide a compensation function to steps that roll back the actions of that step. Then, if an error occurs in any step, the actions of previous steps are rolled back using their compensation function.
-If you’re calling this API route from a frontend client, make sure to set the [CORS middleware](!docs!/advanced-development/api-routes/cors) on it since it’s not under the `/store` or `/admin` route prefixes.
+If you’re calling this API route from a frontend client, make sure to set the [CORS middleware](!docs!/learn/advanced-development/api-routes/cors) on it since it’s not under the `/store` or `/admin` route prefixes.
### Further Reads
-- [How to Create a Workflow](!docs!/basics/workflows)
-- [What is a Compensation Function](!docs!/advanced-development/workflows/compensation-function)
-- [How to Create an API route](!docs!/basics/api-routes)
+- [How to Create a Workflow](!docs!/learn/basics/workflows)
+- [What is a Compensation Function](!docs!/learn/advanced-development/workflows/compensation-function)
+- [How to Create an API route](!docs!/learn/basics/api-routes)
---
@@ -687,7 +687,7 @@ This returns the list of restaurants in the response.
### Further Reads
-- [What is and how to use it](!docs!/advanced-development/module-links/query)
+- [What is and how to use it](!docs!/learn/advanced-development/module-links/query)
- [How to Retrieve Prices for Product Variants](../../../../commerce-modules/product/guides/price/page.mdx)
---
@@ -1542,7 +1542,7 @@ In this step, you’ll create the workflow that handles the different stages of
For example, when a restaurant finishes preparing the order’s items, this workflow creates a fulfillment for the order.
-This workflow will be a [long-running workflow](!docs!/advanced-development/workflows/long-running-workflow) that runs asynchronously in the background. Its async steps only succeed once an outside action sets its status, allowing the workflow to move to the next step.
+This workflow will be a [long-running workflow](!docs!/learn/advanced-development/workflows/long-running-workflow) that runs asynchronously in the background. Its async steps only succeed once an outside action sets its status, allowing the workflow to move to the next step.
API routes that perform actions related to the delivery, which you’ll create later, will trigger the workflow to move to the next step.
@@ -2063,7 +2063,7 @@ In the next steps, you’ll execute the workflow and see it in action as you add
### Further Reads
-- [Long-Running Workflows](!docs!/advanced-development/workflows/long-running-workflow)
+- [Long-Running Workflows](!docs!/learn/advanced-development/workflows/long-running-workflow)
---
@@ -3459,7 +3459,7 @@ The next steps of this example depend on your use case. This section provides so
### Admin Development
-The Medusa Admin is extendable, allowing you to add widgets to existing pages or create new pages. Learn more about it in [this documentation](!docs!/advanced-development/admin).
+The Medusa Admin is extendable, allowing you to add widgets to existing pages or create new pages. Learn more about it in [this documentation](!docs!/learn/advanced-development/admin).
### Storefront Development
diff --git a/www/apps/resources/app/recipes/marketplace/examples/vendors/page.mdx b/www/apps/resources/app/recipes/marketplace/examples/vendors/page.mdx
index 83ed961f99e9a..e7d6acd853f1a 100644
--- a/www/apps/resources/app/recipes/marketplace/examples/vendors/page.mdx
+++ b/www/apps/resources/app/recipes/marketplace/examples/vendors/page.mdx
@@ -116,7 +116,7 @@ class MarketplaceModuleService extends MedusaService({
export default MarketplaceModuleService
```
-The service extends the [service factory](!docs!/advanced-development/modules/service-factory), which provides basic data-management features.
+The service extends the [service factory](!docs!/learn/advanced-development/modules/service-factory), which provides basic data-management features.
### Create Module Definition
@@ -150,8 +150,8 @@ module.exports = defineConfig({
### Further Reads
-- [How to Create a Module](!docs!/basics/modules)
-- [How to Create Data Models](!docs!/basics/modules#1-create-data-model)
+- [How to Create a Module](!docs!/learn/basics/modules)
+- [How to Create Data Models](!docs!/learn/basics/modules#1-create-data-model)
---
@@ -203,7 +203,7 @@ This adds a list link between the `Vendor` and `Order` data models, indicating t
### Further Read
-- [How to Define Module Links](!docs!/advanced-development/module-links)
+- [How to Define Module Links](!docs!/learn/advanced-development/module-links)
---
@@ -338,10 +338,10 @@ You return the created vendor admin.
### Further Read
-- [How to Create a Workflow](!docs!/basics/workflows)
+- [How to Create a Workflow](!docs!/learn/basics/workflows)
- [What is an Actor Type](../../../../commerce-modules/auth/auth-identity-and-actor-types/page.mdx)
- [How to Create an Actor Type](../../../../commerce-modules/auth/create-actor-type/page.mdx)
-- [What is a Compensation Function](!docs!/advanced-development/workflows/compensation-function)
+- [What is a Compensation Function](!docs!/learn/advanced-development/workflows/compensation-function)
---
@@ -513,7 +513,7 @@ This route is available because you created the `vendor` actor type previously.
-Don't include a trailing slash at the end of the URL. Learn more [here](!docs!/advanced-development/api-routes/middlewares).
+Don't include a trailing slash at the end of the URL. Learn more [here](!docs!/learn/advanced-development/api-routes/middlewares).
@@ -549,8 +549,8 @@ Use this token in the header of later requests that require authentication.
### Further Reads
-- [How to Create an API route](!docs!/basics/api-routes)
-- [How to Create a Middleware](!docs!/advanced-development/api-routes/middlewares)
+- [How to Create an API route](!docs!/learn/basics/api-routes)
+- [How to Create a Middleware](!docs!/learn/advanced-development/api-routes/middlewares)
- [Learn more about the /auth route](../../../../commerce-modules/auth/authentication-route/page.mdx)
---
@@ -778,8 +778,8 @@ curl 'http://localhost:9000/vendors/products' \
### Further Reads
-- [How to use Query](!docs!/advanced-development/module-links/query)
-- [How to use the Remote Link](!docs!/advanced-development/module-links/remote-link)
+- [How to use Query](!docs!/learn/advanced-development/module-links/query)
+- [How to use the Remote Link](!docs!/learn/advanced-development/module-links/remote-link)
---
@@ -1361,7 +1361,7 @@ For example, you can link sales channels to vendors or other settings.
-[Learn more about module links](!docs!/advanced-development/module-links).
+[Learn more about module links](!docs!/learn/advanced-development/module-links).
@@ -1373,6 +1373,6 @@ You can also create a custom storefront. Check out the [Storefront Development](
### Admin Development
-The Medusa Admin is extendable, allowing you to add widgets to existing pages or create new pages. Learn more about it in [this documentation](!docs!/advanced-development/admin).
+The Medusa Admin is extendable, allowing you to add widgets to existing pages or create new pages. Learn more about it in [this documentation](!docs!/learn/advanced-development/admin).
If your use case requires bigger customizations to the admin, such as showing different products and orders based on the logged-in vendor, use the [admin API routes](!api!/admin) to build a custom admin.
diff --git a/www/apps/resources/app/recipes/marketplace/page.mdx b/www/apps/resources/app/recipes/marketplace/page.mdx
index dc5ab1665bd4b..332c426aa0962 100644
--- a/www/apps/resources/app/recipes/marketplace/page.mdx
+++ b/www/apps/resources/app/recipes/marketplace/page.mdx
@@ -35,13 +35,13 @@ You can create a marketplace module that implements data models for vendors, the
-This applies to relations between data models of the same module. To retrieve linked records of different modules, use [Query](!docs!/advanced-development/module-links/query).
+This applies to relations between data models of the same module. To retrieve linked records of different modules, use [Query](!docs!/learn/advanced-development/module-links/query).
diff --git a/www/apps/resources/app/service-factory-reference/methods/listAndCount/page.mdx b/www/apps/resources/app/service-factory-reference/methods/listAndCount/page.mdx
index 350f99c57672e..33aac00fa951b 100644
--- a/www/apps/resources/app/service-factory-reference/methods/listAndCount/page.mdx
+++ b/www/apps/resources/app/service-factory-reference/methods/listAndCount/page.mdx
@@ -54,7 +54,7 @@ The method returns an array with two items:
-This applies to relations between data models of the same module. To retrieve linked records of different modules, use [Query](!docs!/advanced-development/module-links/query).
+This applies to relations between data models of the same module. To retrieve linked records of different modules, use [Query](!docs!/learn/advanced-development/module-links/query).
diff --git a/www/apps/resources/app/service-factory-reference/methods/retrieve/page.mdx b/www/apps/resources/app/service-factory-reference/methods/retrieve/page.mdx
index c4d81f61cc9fa..cc09b4c4ac42b 100644
--- a/www/apps/resources/app/service-factory-reference/methods/retrieve/page.mdx
+++ b/www/apps/resources/app/service-factory-reference/methods/retrieve/page.mdx
@@ -30,7 +30,7 @@ The method returns the record as an object.
-This applies to relations between data models of the same module. To retrieve linked records of different modules, use [Query](!docs!/advanced-development/module-links/query).
+This applies to relations between data models of the same module. To retrieve linked records of different modules, use [Query](!docs!/learn/advanced-development/module-links/query).
diff --git a/www/apps/resources/app/service-factory-reference/page.mdx b/www/apps/resources/app/service-factory-reference/page.mdx
index 099f6dabcfe47..c145165551066 100644
--- a/www/apps/resources/app/service-factory-reference/page.mdx
+++ b/www/apps/resources/app/service-factory-reference/page.mdx
@@ -10,7 +10,7 @@ This section of the documentation provides a reference of the methods generated
-Learn more about the service factory in [this documentation](!docs!/advanced-development/modules/service-factory).
+Learn more about the service factory in [this documentation](!docs!/learn/advanced-development/modules/service-factory).
diff --git a/www/apps/resources/app/storefront-development/products/price/examples/tax-price/page.mdx b/www/apps/resources/app/storefront-development/products/price/examples/tax-price/page.mdx
index 75b8776d6ce93..24d2aa7db0b9a 100644
--- a/www/apps/resources/app/storefront-development/products/price/examples/tax-price/page.mdx
+++ b/www/apps/resources/app/storefront-development/products/price/examples/tax-price/page.mdx
@@ -41,7 +41,7 @@ fetch(`http://localhost:9000/store/products/${id}?${queryParams.toString()}`, {
})
```
-You pass the selected region's ID and the code of its first country as query parameters to the [Get Product API route](https://docs.medusajs.com/v2/api/store#products_getproductsid).
+You pass the selected region's ID and the code of its first country as query parameters to the [Get Product API route](!api!/store#products_getproductsid).
@@ -248,6 +248,6 @@ export default function Product({ params: { id } }: Params) {
In this example, you:
-- Pass the selected region's ID and the code of its first country as query parameters to the [Get Product API route](https://docs.medusajs.com/v2/api/store#products_getproductsid).
+- Pass the selected region's ID and the code of its first country as query parameters to the [Get Product API route](!api!/store#products_getproductsid).
- You can instead allow the customer to choose their country.
- Display the selected variant's price by formatting its price's `calculated_amount_with_tax` property.
diff --git a/www/apps/resources/app/troubleshooting/medusa-admin/no-widget-route/page.mdx b/www/apps/resources/app/troubleshooting/medusa-admin/no-widget-route/page.mdx
index ed288ac27d7d1..e3d26b715d28a 100644
--- a/www/apps/resources/app/troubleshooting/medusa-admin/no-widget-route/page.mdx
+++ b/www/apps/resources/app/troubleshooting/medusa-admin/no-widget-route/page.mdx
@@ -18,7 +18,7 @@ Refer to the [Admin Widget Injection Zones list](../../../admin-widget-injection
Widget and UI routes must be defined as arrow functions. Any other type of declaration isn't accepted.
-Refer to the [Admin Development Constraints](!docs!/advanced-development/admin/constraints) documentation for more details.
+Refer to the [Admin Development Constraints](!docs!/learn/advanced-development/admin/constraints) documentation for more details.
---
@@ -34,7 +34,7 @@ export const config = defineWidgetConfig({
Any other usage leads to the widget not being shown.
-Refer to the [Admin Development Constraints](!docs!/advanced-development/admin/constraints) documentation for more details.
+Refer to the [Admin Development Constraints](!docs!/learn/advanced-development/admin/constraints) documentation for more details.
---
diff --git a/www/apps/ui/src/app/layout.tsx b/www/apps/ui/src/app/layout.tsx
index 7066dcb65f702..d618c1a7f3446 100644
--- a/www/apps/ui/src/app/layout.tsx
+++ b/www/apps/ui/src/app/layout.tsx
@@ -4,7 +4,7 @@ import { Providers } from "@/providers"
import { siteConfig } from "@/config/site"
import "../styles/globals.css"
-import { TightLayout } from "docs-ui"
+import { BareboneLayout, TightLayout } from "docs-ui"
import { Inter, Roboto_Mono } from "next/font/google"
import clsx from "clsx"
@@ -33,15 +33,16 @@ export default function RootLayout({
children: React.ReactNode
}) {
return (
-
- {children}
-
+
+
+ {children}
+
+
)
}
diff --git a/www/apps/user-guide/app/layout.tsx b/www/apps/user-guide/app/layout.tsx
index 58fd69fd66d3a..30219e21136c2 100644
--- a/www/apps/user-guide/app/layout.tsx
+++ b/www/apps/user-guide/app/layout.tsx
@@ -2,7 +2,7 @@ import type { Metadata } from "next"
import { Inter, Roboto_Mono } from "next/font/google"
import Providers from "@/providers"
import "../css/globals.css"
-import { TightLayout } from "docs-ui"
+import { BareboneLayout, TightLayout } from "docs-ui"
import { config } from "@/config"
import clsx from "clsx"
import Feedback from "../components/Feedback"
@@ -36,16 +36,17 @@ export default function RootLayout({
children: React.ReactNode
}) {
return (
-
- {children}
-
-
-
+
+
+ {children}
+
+
+
+
)
}
diff --git a/www/packages/docs-ui/package.json b/www/packages/docs-ui/package.json
index 78cd91dab5314..a7d3bf6ac1cab 100644
--- a/www/packages/docs-ui/package.json
+++ b/www/packages/docs-ui/package.json
@@ -60,7 +60,7 @@
"react-dom": "^18.2.0"
},
"dependencies": {
- "@medusajs/icons": "preview",
+ "@medusajs/icons": "rc",
"@medusajs/ui": "^3.0.0",
"@octokit/request": "^8.1.1",
"@react-hook/resize-observer": "^1.2.6",
diff --git a/www/packages/docs-ui/src/components/BorderedIcon/index.tsx b/www/packages/docs-ui/src/components/BorderedIcon/index.tsx
index 770df82dccd0d..3706e90cfdd86 100644
--- a/www/packages/docs-ui/src/components/BorderedIcon/index.tsx
+++ b/www/packages/docs-ui/src/components/BorderedIcon/index.tsx
@@ -1,6 +1,7 @@
import React from "react"
import clsx from "clsx"
import { IconProps } from "@medusajs/icons/dist/types"
+import Image from "next/image"
export type BorderedIconProps = {
icon?: string
@@ -29,9 +30,11 @@ export const BorderedIcon = ({
>
{!IconComponent && (
-
)}
diff --git a/www/packages/docs-ui/src/components/Breadcrumbs/index.tsx b/www/packages/docs-ui/src/components/Breadcrumbs/index.tsx
index bdf952ff8a327..ede20126fed5c 100644
--- a/www/packages/docs-ui/src/components/Breadcrumbs/index.tsx
+++ b/www/packages/docs-ui/src/components/Breadcrumbs/index.tsx
@@ -93,7 +93,7 @@ export const Breadcrumbs = () => {
className={clsx(
"flex items-center gap-docs_0.25",
"text-medusa-fg-muted text-compact-small",
- "mb-docs_1"
+ "mb-docs_1 flex-wrap"
)}
>
{Array.from(breadcrumbItems).map(([link, title], index) => (
diff --git a/www/packages/docs-ui/src/components/Card/Layout/Default/index.tsx b/www/packages/docs-ui/src/components/Card/Layout/Default/index.tsx
index 64019230e428b..c84b95d82b1d0 100644
--- a/www/packages/docs-ui/src/components/Card/Layout/Default/index.tsx
+++ b/www/packages/docs-ui/src/components/Card/Layout/Default/index.tsx
@@ -42,10 +42,7 @@ export const CardDefaultLayout = ({
)}
{image && (
)}
@@ -53,19 +50,17 @@ export const CardDefaultLayout = ({
className={clsx("flex flex-col flex-1 overflow-auto", contentClassName)}
>
{title && (
-