diff --git a/www/docs/content/recipes/b2b.mdx b/www/docs/content/recipes/b2b.mdx
index e2b9901bb2..2128f0117d 100644
--- a/www/docs/content/recipes/b2b.mdx
+++ b/www/docs/content/recipes/b2b.mdx
@@ -13,12 +13,9 @@ This document guides you through the different documentation resources that will
## Overview
-In a B2B store, the seller provides other businesses with wholesale products and prices. Medusa allows you to build a B2B store in different ways:
+In a B2B store, it’s essential to differentiate between customer types to provide them with relevant pricing, products, shopping experience, and more.
-1. **Fully B2B:** You can use Medusa as-is and cater to businesses only. You can also specify different pricing for different businesses using [Customer Groups](../user-guide/customers/groups.mdx) and [Price Lists](../user-guide/price-lists/index.md).
-2. **B2B and B2C:** You can serve both businesses and customers within the same store, supplying different products or prices for each.
-
-This recipe covers the high-level steps to implement the second case, a B2B and B2C store.
+Medusa’s commerce features, including sales channels, customer groups, and price lists, facilitate implementing this setup. Medusa’s architecture and extendible nature allow you to customize your store based on your use case.
@@ -26,9 +23,9 @@ This recipe covers the high-level steps to implement the second case, a B2B and
## Create B2B Sales Channel
-In Medusa, a sales channel allows you to set product availability per channel. In this case, you can create a B2B sales channel that will include only your wholesale products.
+In Medusa, a sales channel allows you to set product availability per channel. In this case, you can create a B2B sales channel that will include only B2B products.
-You can create a sales channel either through the Medusa admin or through the Admin REST APIs.
+You can create a sales channel through the Medusa admin or Admin REST APIs.
{
## Customize Admin Dashboard
-The Medusa admin dashboard provides merchants with an easy-to-use interface to manage their store’s data and settings. It’s also extendable to add widgets, pages, and setting pages relevant to your use case.
+The Medusa admin dashboard provides merchants with an easy-to-use interface to manage their store's data and settings. It's also extendable, so you can add widgets, pages, and setting pages relevant to your use case.
-To add an interface that allows the admin user to upload digital products, you can create custom widgets or pages that uses the routes you created. For the actual file upload, you can use the [Protected Files Upload endpoint](https://docs.medusajs.com/api/admin#uploads_postuploadsprotected).
+To add an interface that allows the admin user to upload digital products, you can create custom widgets or pages that use the routes you created. You can use the [Protected Files Upload endpoint](https://docs.medusajs.com/api/admin#uploads_postuploadsprotected).
-
----
-
## Multi-Warehouse Support
-Medusa provides Multi-warehouse features that allow you to manage your inventory across different locations. Merchants can then control which location an item in an order is fulfilled from, allowing them to keep a correct inventory count across locations and selling channels.
+Medusa provides Multi-warehouse features that allow you to manage your inventory across different locations. Merchants can then control which location an item in an order is fulfilled, allowing them to keep a correct inventory count across locations and sales channels.
-In a multi-regional setup, this can allow you to manage your inventory through Medusa across the different regions you serve. Your products’ inventory and availability aren’t bound to a single stock location, and customers are always shown accurate inventory information based on the location associated with their sales channel.
+A multi-regional setup lets you manage your inventory through Medusa across the different regions you serve. Your products’ inventory and availability aren't bound to a single stock location, and customers are always shown accurate inventory information based on the location associated with their sales channel.
+
+---
+
## Handle Returns, Exchanges, and Edits
-Medusa provides advanced order features that make it an ideal OMS choice and allow you to provide a great customer experience.
+In Medusa, items in an order can be returned or exchanged; they can be created by the merchant or requested by the customer. A merchant can also edit an order to add, update, or delete items.
-Items in an order can be returned or exchanged. The return or exchange can either be requested by the customer or created by an admin. Once created, they reflect changes in the order’s total and inventory and allow the admin to issue a refund to the customer as well if necessary. In the case of exchanges, the fulfillment provider will be used to fulfill the new item sent to the customer.
+When changes are made to an order by any of the mentioned actions, the changes are reflected on the order's totals and associated inventory. The integrated fulfillment and payment providers are used if fulfillment or payment actions are required, such as fulfilling exchanged items.
-Orders can also be edited to add, update, or delete items in an order. Additional payment can be authorized, or a refund can be issued, if necessary. Once an order edit is confirmed, the changes are reflected on the order’s totals and inventory.
-
-These features can be used through the [Admin](https://docs.medusajs.com/api/admin) and [Store REST APIs](https://docs.medusajs.com/api/store). You can also perform these actions in your custom endpoints or services using the [core services](../references/services/index.md) and their methods.
-
-Once these actions occur, events, such as `order.return_requested` are triggered by Medusa’s event bus. So, you can listen to different events to perform asynchronous actions, for example, to communicate with third-party services or tools.
+Medusa also emits events related to these actions, such as `order.return_requested`. So, you can listen to these events and perform asynchronous actions, such as communicating with third-party services.
-
----
-
## Additional Development and Commerce Features
Medusa provides more commerce features that you can learn about in the [Commerce Modules](../modules/overview.mdx) section of this documentation.
diff --git a/www/docs/content/recipes/personalized-products.mdx b/www/docs/content/recipes/personalized-products.mdx
index 2d27171d33..61daa06c7a 100644
--- a/www/docs/content/recipes/personalized-products.mdx
+++ b/www/docs/content/recipes/personalized-products.mdx
@@ -7,11 +7,11 @@ import Icons from '@theme/Icon';
# Personalized Products
-This document guides you through the different documentation resources that will help you build personalized products with Medusa.
+This document guides you through the different documentation resources to help you build personalized products with Medusa.
## Overview
-Commerce stores that provide personalized products allow customers to pick and choose how the product looks or what features it includes. For example, they can upload an image to print on a shirt or provide a message to include in a letter.
+Personalized products are products that customers can customize based on their need. For example, they can upload an image to print on a shirt or provide a message to include in a letter.
Medusa’s customizable architecture allows you to customize its entities or create your own to implement and store personalized products. Also, as the Medusa backend is headless, you have freedom in how you choose to implement the storefront. This is essential for ecommerce stores that provide personalized products, as you typically build a unique experience around your products.
@@ -19,7 +19,7 @@ Medusa’s customizable architecture allows you to customize its entities or cre
## Store Personalized Data
-Most of the entities in Medusa’s core include a `metadata` attribute. This attribute is helpful for storing custom data in the core entities.
+Most of the entities in Medusa’s core include a `metadata` attribute. This attribute helps store custom data in the core entities.
The `Product` entity represents the main product, whereas the `ProductVariant` is the different saleable options of that product. For example, a shirt is a `Product`, and each different color of the shirt is the `ProductVariant`. The `LineItem` entity is the product variant added to the cart.
@@ -27,6 +27,8 @@ So, you can use the `metadata` attribute of the `LineItem` entity to store the c
For example, if you’re asking customers to enter a message to put in a letter they’re purchasing, you can use the `metadata` attribute of the `LineItem` entity to set the personalized information entered by the customer.
+Note that two Line Items in the cart having different `metadata` attributes are not considered the same item. So, each Line Item is managed separately and can have its own quantity.
+
In more complex cases, you can extend entities from the core, such as the `Product` entity, to add more attributes. You can also create new custom entities to hold your personalized data and logic.
+
+---
+
## Additional Development
You can find other resources for your personalized products development in the [Medusa Development section](../development/overview.mdx) of this documentation.
diff --git a/www/docs/content/recipes/pos.mdx b/www/docs/content/recipes/pos.mdx
index fa6cfff339..577ac321f2 100644
--- a/www/docs/content/recipes/pos.mdx
+++ b/www/docs/content/recipes/pos.mdx
@@ -7,15 +7,13 @@ import Icons from '@theme/Icon';
# POS
-This document guides you through the different features and resources available in Medusa to create a point-of-sale (POS) system.
+This document guides you through Medusa's different features and resources to create a point-of-sale (POS) system.
## Overview
-A POS system can be used in a business’s retail or offline stores to access and manage products and their inventories, and place orders for customers. Based on your use case, you can provide more features that can improve the customer experience. For example, customer discounts or Return Merchandise Authorization (RMA) features.
+Building a POS system on top of an ecommerce engine introduces challenges related to the tech stack used, data sync across channels, and feature availability relevant to offline sales in a POS, not just online sales.
-Medusa’s architecture, commerce features, and customization capabilities allow you to build a POS system without any limitations or restrictions.
-
-Medusa’s headless backend facilitates creating any type of frontend that can communicate with the backend, including a POS system. Also, Medusa’s commerce features, including mutli-warehouse, sales channels, and order management features, can power your POS system to provide essential features for both store operators and customers making their purchase.
+Medusa's modular architecture solves these challenges. Any frontend can utilize Medusa's commerce features through its REST APIs. Medusa's commerce features include multi-warehouse and sales channel features that facilitate integrating a POS system.
:::tip
@@ -27,11 +25,11 @@ Recommended read: [How Tekla built a POS system with Medusa](https://medusajs.co
## Freedom in Choosing Your POS Tech Stack
-When you decide to build a POS system, you have to make an important choice of which programming framework, language, or tool you want to use. In most cases, this can be interdependent on the commerce engine, as it can limit your choices.
+When you build a POS system, you must choose which programming framework, language, or tool you want to use.
-Medusa’s modular architecture removes any restrictions you may have while making this choice. Regardless of what you choose, any client or front end can connect to the Medusa backend using its headless REST APIs. So, when building the POS system, you’ll be interacting with the [Admin REST APIs](https://docs.medusajs.com/api/admin).
+Medusa's modular architecture removes any restrictions you may have while making this choice. Any client or front end can connect to the Medusa backend using its headless REST APIs.
-For example, you can use [Expo](https://expo.dev/) with [React Native](https://reactnative.dev/) to build a cross-platform POS app. In this case, you can also utilize [Medusa’s JavaScript client](../js-client/overview.md) to make it even easier to send requests to the backend.
+
{
const router = Router()
router.get(
- "/store/search-barcode",
+ "/pos/search-barcode",
cors(storeCorsOptions),
wrapHandler(
async (req: Request, res: Response) => {
@@ -174,15 +172,13 @@ export default (rootDirectory: string): Router | Router[] => {
## Access Accurate Inventory Details
-As you manage an online and offline store, it’s important to make a separation between inventory quantity across different locations. For example, when an online order is made, the change in the inventory quantity of the order items should be made from the warehouse’s inventory, and not from the retail store’s.
+As you manage an online and offline store, it's essential to separate inventory quantity across different locations.
-Medusa’s multi-warehouse features allow you to manage the inventory items and their availability across locations and sales channels. You can create a sales channel for your online store and a sales channel for your POS system, then manage the inventory quantity of product variants in each of those sales channels. You can also have different sales channels for different retail stores that use the POS system.
+Using Medusa's multi-warehouse features, merchants can manage the inventory items and their availability across locations and sales channels. They can create a sales channel for their online store and a sales channel for their POS system, then manage the inventory quantity of product variants in each channel.
-When a customer browses your online store and wants to make a purchase, they can only buy items that are available in stock in the location associated with the online store’s channel.
+
-In the POS system, you can use the admin [stock location](https://docs.medusajs.com/api/admin#stock-locations) and [inventory item APIs](https://docs.medusajs.com/api/admin#inventory-items) to check whether an item is available in inventory or not. This helps store operators provide better and quicker customer service.
-
-This also opens the door for other business opportunities, such as an endless aisle experience. If a product isn’t available in-store but is available in other warehouses, you can allow a customer to purchase that item in-store and have it delivered to their address.
+This also opens the door for other business opportunities, such as an endless aisle experience. Suppose a product isn't available in-store but is available in different warehouses. In that case, you can allow customers to purchase that item in-store and deliver it to their address.