<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Nils Tyrberg</title>
    <description>The latest articles on Forem by Nils Tyrberg (@ntyrberg).</description>
    <link>https://forem.com/ntyrberg</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1080155%2Fded7510e-ab20-4c02-88f6-687ccd7129be.jpeg</url>
      <title>Forem: Nils Tyrberg</title>
      <link>https://forem.com/ntyrberg</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ntyrberg"/>
    <language>en</language>
    <item>
      <title>Medusa (4/4): An In-depth Look at Their Admin</title>
      <dc:creator>Nils Tyrberg</dc:creator>
      <pubDate>Fri, 12 May 2023 07:01:43 +0000</pubDate>
      <link>https://forem.com/ntyrberg/medusa-44-an-in-depth-look-at-their-admin-14h1</link>
      <guid>https://forem.com/ntyrberg/medusa-44-an-in-depth-look-at-their-admin-14h1</guid>
      <description>&lt;p&gt;The Medusa admin is what developers and other users can use to manage operational and e-commerce tasks for their website. The Medusa admin allows non-technical users to click their way through and manage the website without any code. This article is the last of a four part series and gives an overview of what can be achieved using the admin page. More in depth information of what can be done how to use the Medusa admin can be found &lt;a href="https://docs.medusajs.com/user-guide"&gt;here&lt;/a&gt;. &lt;/p&gt;

&lt;h3&gt;
  
  
  Orders
&lt;/h3&gt;

&lt;p&gt;When a customer buys a product, it appears on the orders page in the Medusa admin. From there, users can view order information, capture payment, create shipments and fulfillments, exchange the order and more. From here it is also possible to view, manage and create new draft orders. &lt;/p&gt;

&lt;h3&gt;
  
  
  Products
&lt;/h3&gt;

&lt;p&gt;Products are managed, created and edited from the products page. Information that can be managed includes basic info, sales channels, inventory management, pricing and much more. Products can be managed into categories and different hierarchies as well as collections of products such as “Summer collections” etc. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--V9Ig8tsh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vqyi268j034iu4vi1as1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--V9Ig8tsh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vqyi268j034iu4vi1as1.png" alt="Image description" width="800" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Customers
&lt;/h3&gt;

&lt;p&gt;The admin contains a list of all signed up customers in the store. For each customer, there is information on details such as orders and personal information. Customers can easily be grouped (e.g., VIP customers) to allow different pricing and marketing efforts. &lt;/p&gt;

&lt;h3&gt;
  
  
  Multi-warehouse inventory and stock
&lt;/h3&gt;

&lt;p&gt;Inventory and stock are managed together with the multi-warehouse feature directly through the Medusa admin. This allows users to define multiple locations where stock is available, and for each location specify the quantity of the item. Locations can also be associated with multiple sales channels (see descriptions of a sales channel in the article on commerce modules). Users can fulfill orders from different locations as well as manage returns through the admin page. &lt;/p&gt;

&lt;h3&gt;
  
  
  Discounts and gift cards
&lt;/h3&gt;

&lt;p&gt;Discounts and gift cards can be created and managed directly through the admin page. Discounts come in different default versions such as percentage discounts, fixed discounts and free shipping. Users can specify specific conditions for discounts and apply them for specific products or shipping options. Gift cards can be created using the default version or be custom made and sent directly to a customers email. &lt;/p&gt;

&lt;h3&gt;
  
  
  Pricing
&lt;/h3&gt;

&lt;p&gt;Pricing can be handled both directly using the products page or over a batch of products using a price list. A price list can be added over a set of products and would then change the prices of all products at once based on a set of conditions. It is also possible to target specific groups of customers using price lists in the admin page. &lt;/p&gt;

&lt;h3&gt;
  
  
  Currencies and regions
&lt;/h3&gt;

&lt;p&gt;Currencies are added and managed in the settings of the Medusa Admin. By adding a currency to a region, all prices will be reflected in that currencies for customers in that region. Regions are also added and managed using the Admin, allowing the user to set specific rules for each region, including currencies used and available plugins. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lzqMWJny--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tdwgmwbfd3m6revxlh16.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lzqMWJny--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tdwgmwbfd3m6revxlh16.png" alt="Image description" width="800" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Bottom line
&lt;/h3&gt;

&lt;p&gt;Through the admin page the user can control almost all parts of a storefront built on top of a Medusa back-end. As outlined in this article, the Medusa admin is organized in close accordance with the different commerce modules, and can be used to handle the features available in each of them. This concludes the four part series on Medusa.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Medusa (3/4): Commerce Modules and Features</title>
      <dc:creator>Nils Tyrberg</dc:creator>
      <pubDate>Fri, 12 May 2023 07:01:31 +0000</pubDate>
      <link>https://forem.com/ntyrberg/medusa-34-commerce-modules-and-features-2da2</link>
      <guid>https://forem.com/ntyrberg/medusa-34-commerce-modules-and-features-2da2</guid>
      <description>&lt;p&gt;Medusa offers an impressive amount of e-commerce features all available in the medusa package or separately as independent modules. This is the third part of a four part series where the previous parts covered the basics of Medusa and their vision and history. This part will give a an outline of some of the commerce modules and what features they offer. The final part will go into detail on how the Medusa Admin works. &lt;/p&gt;

&lt;h2&gt;
  
  
  Modules and Features
&lt;/h2&gt;

&lt;p&gt;For more technical details on how Medusa’s commerce modules and features work, you can visit the team’s Documentation at: &lt;a href="https://docs.medusajs.com/"&gt;https://docs.medusajs.com/&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Cart &amp;amp; Checkout
&lt;/h3&gt;

&lt;p&gt;Comes with basic cart functionality allowing users to add, update and remove items easily. Developers can choose to integrate any third-party provider of shipping and payment options during checkout, either through existing plug-ins or by creating their own. &lt;/p&gt;

&lt;h3&gt;
  
  
  Orders
&lt;/h3&gt;

&lt;p&gt;Customers place orders to purchase a product. Admins can manage orders, for example capture payment and fulfill items in the order. Admins are also able to edit the order by adding, removing, or updating the order, either by force or by confirmation from the customer. It is also possible to create draft orders as well as returning, swapping and replace orders with new ones. &lt;/p&gt;

&lt;h3&gt;
  
  
  Multi-Warehouse
&lt;/h3&gt;

&lt;p&gt;Medusa recently updated its Multi-Warehouse module that allows merchants to manage inventory and store products in multiple locations within the same commerce application. Through the admin page (see next article), it is also simple to manage from which location to allocate a product to an order or where to return items. &lt;/p&gt;

&lt;h3&gt;
  
  
  Customers
&lt;/h3&gt;

&lt;p&gt;Customers can choose to shop as guests or create an account. They are able to make purchases as guests but can also manage order history and details as account holders. Admins can segment customers into groups, allowing for easily directed marketing and discounts for specific groups. &lt;/p&gt;

&lt;h3&gt;
  
  
  Products
&lt;/h3&gt;

&lt;p&gt;Admins using Medusa can manage an unlimited amount of product variants. Products can be managed through changes in price, inventory, product details etc, and developers are able to implement custom product information as well. Products can also be organized into categories, allowing customers to navigate and filter while browsing. &lt;/p&gt;

&lt;h3&gt;
  
  
  Gift cards
&lt;/h3&gt;

&lt;p&gt;Medusa handles gift cards in a versatile way. Customers can both purchase and use gift cards on the storefront. Developers are able to implement custom logic to send gift cards to specific customers as well as implement shipping profiles that specifically handle the fulfillment of the card. It is also possible to create custom gift cards using the admin page. &lt;/p&gt;

&lt;h3&gt;
  
  
  Price lists
&lt;/h3&gt;

&lt;p&gt;Price lists are special prices applied to products based on a set of conditions. Price lists can be used to add special prices or override current prices for specific products simultaneously. Developers are able to change the default pricing logic and implement custom solutions of how customers view prices this way, which can speed up admin work compared to changing prices on individual products. &lt;/p&gt;

&lt;h3&gt;
  
  
  Regions &amp;amp; Currencies
&lt;/h3&gt;

&lt;p&gt;Regions are handled very flexibly using Medusa. Admins are able to specify an unlimited amount of custom regions. Each region can have a custom set of settings such as currency, payment gateways, tax providers etc. Currencies can be associated with one or many regions, and developers are in full control of the price of a product per currency and per region. A customer within a specific region will automatically get products, prices, shipping options, taxes and more specified for that region. &lt;/p&gt;

&lt;h3&gt;
  
  
  Taxes
&lt;/h3&gt;

&lt;p&gt;Taxes are closely related to regions since they often differ geographically. Medusa provides default tax provider to calculate rates, but developers are able to integrate custom solutions as well. &lt;/p&gt;

&lt;h3&gt;
  
  
  Sales channels
&lt;/h3&gt;

&lt;p&gt;Medusa allows for a large amount of different sales channels, such as the web storefront, mobile apps or selling directly through social media platforms. For each channel, it is possible to choose which products belong to the channel, and products can be made available on multiple channels simultaneously. Each order is associated with a given channel, allowing for easy management and follow-up. &lt;/p&gt;

&lt;h2&gt;
  
  
  The mechanics of Medusa
&lt;/h2&gt;

&lt;p&gt;Within each module described above, Medusa utilizes a set of abstractions in its architecture. This section aims to explain the overall architecture of Medusas commerce modules. &lt;/p&gt;

&lt;h3&gt;
  
  
  Headless architecture
&lt;/h3&gt;

&lt;p&gt;As mentioned earlier, Medusa is a headless backend and is built in Node.js on top of Express. In the Medusa core package, you get access to all commerce modules such as orders, inventory, cart and products. &lt;/p&gt;

&lt;h3&gt;
  
  
  Entities and Services
&lt;/h3&gt;

&lt;p&gt;The backend connects to a database that stores the e-commerce store’s data. Tables in the database are represented by &lt;em&gt;entities&lt;/em&gt; built on top of Typeorm. An example would be the order-entity which represents the order table in the database. To manipulate e*ntities*, &lt;em&gt;services&lt;/em&gt; are created as TypeScript or JavaScript classes with utility methods for retrieval and other purposes. The &lt;em&gt;services&lt;/em&gt; can be accessed throughout the Medusa backend through dependency injection and are a sort of a bundled helper methods that represent a certain &lt;em&gt;entity&lt;/em&gt; of functionality in Medusa. &lt;/p&gt;

&lt;h3&gt;
  
  
  Endpoints
&lt;/h3&gt;

&lt;p&gt;Rather than having a tightly-coupled frontend which is the case for traditional e-commerce platforms, the Medusa backend provides &lt;em&gt;endpoints&lt;/em&gt;, which are REST APIs used by frontends like storefront or admin interfaces. Each commerce module contains a set of &lt;em&gt;endpoints&lt;/em&gt; specific to the functionalities that it provides and are available within the Medusa backend.&lt;/p&gt;

&lt;h3&gt;
  
  
  Events
&lt;/h3&gt;

&lt;p&gt;Medusa also uses an event-driven architecture to manage events. When an action occur, such as an order being placed, an &lt;em&gt;event&lt;/em&gt; is triggered. To handle an &lt;em&gt;event&lt;/em&gt;, Medusa connects to a &lt;em&gt;service&lt;/em&gt; that implements a pub/sub model. Messages sent by the pub/sub model are received by &lt;em&gt;subscribers&lt;/em&gt;. &lt;em&gt;Subscribers&lt;/em&gt; are TypeScript or JavaScript classes that add their methods as handlers for specific events. These handler methods are then executed only when an &lt;em&gt;event&lt;/em&gt; is triggered. Using the example of an order being placed, a &lt;em&gt;service&lt;/em&gt; specific to ordering (the &lt;em&gt;publisher&lt;/em&gt;) then sends a message to the warehouse (the &lt;em&gt;subscriber&lt;/em&gt;) that initiate shipping, update the inventory and notify customers. &lt;/p&gt;

&lt;h3&gt;
  
  
  Loaders and plugins
&lt;/h3&gt;

&lt;p&gt;The Medusa backend architecture can be tailored to suit individual requirements, with resources like &lt;em&gt;entities&lt;/em&gt;, &lt;em&gt;services&lt;/em&gt; and &lt;em&gt;endpoints&lt;/em&gt; created without modifying the backend. Loaders are used to load both Medusa and custom resources such as plugins, which can be packaged for reuse in other Medusa backends or published for others to use. Existing plugins can also be installed into a Medusa backend. &lt;/p&gt;

&lt;p&gt;To learn more about the Medusa Admin, read the next article:&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Medusa (2/4): Vision, History, and Product</title>
      <dc:creator>Nils Tyrberg</dc:creator>
      <pubDate>Fri, 12 May 2023 07:01:13 +0000</pubDate>
      <link>https://forem.com/ntyrberg/medusa-24-vision-history-and-product-207j</link>
      <guid>https://forem.com/ntyrberg/medusa-24-vision-history-and-product-207j</guid>
      <description>&lt;p&gt;This is the second of a four part series on Medusa and their e-commerce platform offering. Part one gave an introduction to what Medusa is and why it is relevant in the space, and this part will give a more in depth view of their vision, history and product. Parts three and four will deep dive further into Medusas commerce modules and the Medusa admin. &lt;/p&gt;

&lt;h3&gt;
  
  
  Vision
&lt;/h3&gt;

&lt;p&gt;Medusa is built on the idea that there is something inherently wrong with the tools available to developers in the e-commerce space today. With a fast-evolving market and an increasing need for custom solutions, the traditional platforms are too rigid and require constant workarounds to meet demand. &lt;/p&gt;

&lt;p&gt;The vision of Medusa is to enable businesses and developers to create their envisioned commerce experiences in a quick and reliable way, without degrading future possibilities of customization. &lt;/p&gt;

&lt;p&gt;Medusa aims to achieve this by offering commerce building blocks. This means they provide commerce modules that can be consumed collectively or as separate entities depending on the business needs. All modules are open source to enable full developer flexibility.&lt;/p&gt;

&lt;h3&gt;
  
  
  Product
&lt;/h3&gt;

&lt;p&gt;Using a modular architecture, Medusa provides the backend building blocks for commerce logic, such as &lt;a href="https://docs.medusajs.com/modules/carts-and-checkout/overview"&gt;carts and payment&lt;/a&gt;, &lt;a href="https://docs.medusajs.com/modules/products/overview"&gt;product&lt;/a&gt; and &lt;a href="https://docs.medusajs.com/modules/orders/overview"&gt;order management&lt;/a&gt;, &lt;a href="https://docs.medusajs.com/modules/multiwarehouse/overview"&gt;inventory and multi-stock locations&lt;/a&gt;, &lt;a href="https://docs.medusajs.com/modules/price-lists/overview"&gt;discounts&lt;/a&gt;, &lt;a href="https://docs.medusajs.com/modules/regions-and-currencies/overview"&gt;multi-currency&lt;/a&gt;, and &lt;a href="https://docs.medusajs.com/modules/overview"&gt;much more&lt;/a&gt;. All of it can be managed from the Medusa admin, which is shipped as an npm package. Medusa is built in Javascript/Typescript and is entirely open source. All modules are made available to developers for free on npm. &lt;/p&gt;

&lt;h3&gt;
  
  
  Key differentiators
&lt;/h3&gt;

&lt;p&gt;Traditional platforms such as Shopify or WooCommerce provide monolithic all-in-one solutions. This provides businesses and developers with a quick out-of-the-box solution that allows e-commerce websites to be up and running very fast, but it comes with the trade-off of high rigidity and limited customization options. &lt;/p&gt;

&lt;p&gt;A solution like Medusa requires more developer involvement and has a less extensive app library. However, it does provide much greater flexibility due to its modular architecture. For complex businesses with higher customization needs, a solution like Medusa is an excellent alternative, as it gives developers a better prerequisite for incorporating custom logic and integrating with third-party systems.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;History of Medusa&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Medusa first became an idea when Medusa founders, Sebastian Rindom and Oliver Juhl were working on the e-commerce platform of Tekla during 2018. Tekla used WooCommerce but needed a more flexible architecture to scale their e-commerce offering further. While figuring out the best platform for Tekla, Oliver and Sebastian quickly realized that most of the traditional solutions would require too many hacky workarounds to scale efficiently. They therefore decided that a deeper rebuilding of the architecture to something more flexible and completely customizable would be more future-proof. This became the foundation of Medusa.&lt;/p&gt;

&lt;p&gt;In 2021, Sebastian and Oliver teamed up with Nicklas Gellner to raise money in a pre-seed round for the solution built for Tekla that they had since open sourced as one of a few JS-based backend e-commerce projects on GitHub. The project quickly gained traction and became one of the fastest-growing projects on GitHub during its first year. In the Summer of 2022 they raised a &lt;a href="https://techcrunch.com/2022/07/15/medusa-shopify-open-source-e-commerce-javascript-developers/?guccounter=1"&gt;$8M seed round&lt;/a&gt; and today, they have a community of +5,000 developers and between 10,000 to 30,000 weekly downloads. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Plugins&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Flexibility and extensibility are key aspects of Medusa. Since Medusa is built to allow developers the freedom to choose the services or features they want to implement, plugins are a key part of that. Plugins allow developers to implement custom features through third-party services into the Medusa backend. &lt;/p&gt;

&lt;p&gt;Medusa recently introduced a &lt;a href="https://medusajs.com/plugins/"&gt;library&lt;/a&gt; of pre-built plugins supporting a solid amount of third party solutions such as payment, notifications, search, shipping, CMS and storage. They currently have solutions made for (among others) Klarna, Paypal, Mailchimp and Contentful, and more are being added continuously.&lt;/p&gt;

&lt;p&gt;The pre-built plugins allow developers to get started quickly, while it as also possible to create custom made plug-ins directly in the Medusa backend or use community made plugins. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Community &amp;amp; supporting environment&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Medusa has a large community of 5k+ currently active developers. This is a big plus, since it makes it easy to get support when needed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://discord.gg/medusajs"&gt;Discord&lt;/a&gt;: a place to chat with fellow Medusa developers, ask for help or share your builds. The Discord is moderated and maintained by community members.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/medusajs/medusa/discussions"&gt;GitHub&lt;/a&gt;: a place for more in-depth discussions of issues, features etc. The core Medusa team is present on GitHub and often sharing their view when needed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Aside from the community forums, Medusa has extensive &lt;a href="https://docs.medusajs.com/"&gt;documentation&lt;/a&gt; for developers to get started with the project.&lt;/p&gt;

&lt;p&gt;To learn more about the commerce modules and features they offer, read the next article: &lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Medusa(1/4) - The future of e-commerce?</title>
      <dc:creator>Nils Tyrberg</dc:creator>
      <pubDate>Fri, 12 May 2023 07:01:02 +0000</pubDate>
      <link>https://forem.com/ntyrberg/medusa14-the-future-of-e-commerce-2fae</link>
      <guid>https://forem.com/ntyrberg/medusa14-the-future-of-e-commerce-2fae</guid>
      <description>&lt;p&gt;The world of e-commerce is quickly evolving and new technology is allowing developers to create experiences much greater than just a few years back. One of the more interesting solutions is Medusa which is the leading open source infrastructure in the open source space.&lt;/p&gt;

&lt;p&gt;In this first part, I will do a quick introduction to Medusa and give my point of view on why I think Medusa is part of the future of e-commerce. In the following parts, I will go deeper into Medusa’s offering, its commerce modules, and its Admin page.&lt;/p&gt;

&lt;h3&gt;
  
  
  The basics of Medusa
&lt;/h3&gt;

&lt;p&gt;Medusa's offering enables businesses and developers to create customized commerce experiences quickly and reliably through their open source commerce infrastructure. It handles all the core backend elements of commerce, such as carts, orders, customers, products etc.&lt;/p&gt;

&lt;p&gt;In a rapidly evolving digital commerce landscape, Medusa is built for developer teams and companies that want to invest in their commerce setup. In turn, they offer a scalable foundation that they can easily take ownership of as they grow.&lt;/p&gt;

&lt;h3&gt;
  
  
  Medusa’s modular approach
&lt;/h3&gt;

&lt;p&gt;The core of Medusa’s offering is its modular approach to building commerce applications. By unlocking the core commerce logic within platforms, Medusa's open-source npm packages allow developers to install and modify commerce modules without accruing large amounts of technical debt. &lt;/p&gt;

&lt;p&gt;This approach allows for a more flexible and extensible commerce stack, enabling developers to build bespoke commerce experiences while getting a great starting point using Medusa’s infrastructure. &lt;/p&gt;

&lt;h3&gt;
  
  
  Who is Medusa for?
&lt;/h3&gt;

&lt;p&gt;Medusa's approach may not be for mom-and-pop shops as it does require developer resources to get started. Instead, it could very well be the solution for brands and companies that want to create new, innovative commerce experiences and believe that having control over their commerce stack will give them an edge. &lt;/p&gt;

&lt;p&gt;For businesses that value ownership over their tech stack, Medusa's modular approach provides a significant advantage over traditional, monolithic platforms, as its modular architecture caters much better to customization and scaleability.&lt;/p&gt;

&lt;p&gt;To understand more about their offering, visit the next article in this series:&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
