+ 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 8535ed7e77..43c73a685a 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 4ef61ae0f0..c1a14cd970 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 f297b99835..7225d90473 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 8d866b5447..127a06426a 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 0000000000..88d8166f9f
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 0000000000..c3afa03d74
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 0000000000..b186b87dce
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 0000000000..ed5e7e9b39
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 0000000000..75a37f623d
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 0000000000..fef1c2f7e2
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 0000000000..b1deb68afc
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 0000000000..efbf148a01
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 0000000000..cf78ad0c31
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 0000000000..2b1910e9d3
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 0000000000..5b05ed9b27
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 0000000000..7632438bac
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 0000000000..8869a30ec8
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 0000000000..124d62965d
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 0000000000..ae0e8ad462
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 0000000000..8fdb4f0d0c
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 0000000000..640200620b
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 0000000000..72fb2b63e6
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 0000000000..47867c1508
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 0000000000..61674b2f5b
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 0000000000..2be16099b4
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 0000000000..bff05107f0
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 814073317a..eabd10db4e 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 d582b22247..488af7843f 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 318fd4c740..e341e09387 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 fc3b34fbd1..469dcae57d 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 a190e10bb8..b37100870f 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 e80fad2108..7d671ff0dd 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 6bbf7a358b..b3914e75dd 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 e69b068af8..78e2a80bf7 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 abdd9847fb..97686aaf3e 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 7ee078e186..0ccd725d31 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 e640962ef4..ec86d4bac9 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 43bc70cde5..9ac8e49266 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 83ed961f99..e7d6acd853 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 dc5ab1665b..332c426aa0 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 350f99c576..33aac00fa9 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 c4d81f61cc..cc09b4c4ac 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 099f6dabcf..c145165551 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 75b8776d6c..24d2aa7db0 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 ed288ac27d..e3d26b715d 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 7066dcb65f..d618c1a7f3 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 58fd69fd66..30219e2113 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 78cd91dab5..a7d3bf6ac1 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 770df82dcc..3706e90cfd 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 bdf952ff8a..ede20126fe 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 64019230e4..c84b95d82b 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 && (
-