# How to create a new module in VC v3

**URL:** <https://www.virtocommerce.org/t/how-to-create-a-new-module-in-vc-v3/89>\
**Category:** howto\
**Tags:** module, platform-v3\
**Created:** [November 14, 2019, 12:29pm UTC](https://www.virtocommerce.org/t/how-to-create-a-new-module-in-vc-v3/89 "2019-11-14T12:29:12Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![eMazeika](https://yyz2.discourse-cdn.com/flex032/user_avatar/www.virtocommerce.org/emazeika/32/28_2.png) [@eMazeika](https://www.virtocommerce.org/u/eMazeika)\
**Post date:** [November 14, 2019, 12:29pm UTC](https://www.virtocommerce.org/t/how-to-create-a-new-module-in-vc-v3/89/1 "2019-11-14T12:29:12Z")

</div>

How to create a new module for Virto Commerce Platform v3 from scratch? Follow the steps to create a “Dummy module”.

## 1. Create a well-structured solution and projects

1. Create empty **_DummyModule_** solution: [https://docs.microsoft.com/en-us/visualstudio/get-started/tutorial-projects-solutions?view=vs-2019##create-a-solution](https://docs.microsoft.com/en-us/visualstudio/get-started/tutorial-projects-solutions?view=vs-2019##create-a-solution)
2. Add **_src_** and **_tests_** Solution Folders (using Visual Studio)
3. In **_src_** add project using “_Class library (.NET Core)_” template:
  1. Project name: **_DummyModule.Core_**
  2. Location: …\_DummyModule\ **src** _ folder (create the missing **src** folder).

4. Add **_DummyModule.Data_** and **_DummyModule.Web_** projects in the same way, just ensure they are located under **src** folder.
5. Delete the auto-generated Class1.cs from all projects.
6. In **_tests_** add project using “_xUnit Test Project (.NET Core)_” template:
  1. Project name: **_DummyModule.Tests_**
  2. Location: …\_DummyModule\ **tests** _ folder (create the missing **tests** folder).

7. Set “Target framework” to “.NET Core 2.2” for all 4 projects.
8. References to projects:
  1. **DummyModule.Data** : add reference to DummyModule.Core project
  2. **DummyModule.Web** : add references to DummyModule.Core, DummyModule.Data projects
  3. **DummyModule.Tests** : add references to DummyModule.Core, DummyModule.Data, DummyModule.Web projects

9. References to NuGet packages:
  1. **DummyModule.Core** : add reference to latest version 3 (3.x) **_VirtoCommerce.Platform.Core_** package.
  2. **DummyModule.Data** : add reference to latest version 3 (3.x) **_VirtoCommerce.Platform.Data_** package.

10. References to NuGet packages in **_VirtoCommerce.Platform.Web_** :
  1. (Double click in Visual Studio to) open _DummyModule.Web.csproj_ file for editing;
  2. Add new ItemGroup:

```auto
<ItemGroup>
  <PackageReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>

```

11. Compile the solution (there should be no warnings).

## 2. DummyModule.Core

1. ModuleConstants.cs (permissions, settings)
2. Models
3. Services
4. Events
5. Notifications

## 3. DummyModule.Data

1. Models
2. Repositories
  1. DbContext
  2. DesignTimeDbContextFactory,
  3. IRepository, Repository

3. Migrations
4. Caching
5. Services
6. ExportImport
7. Handlers
8. Search
9. Authorization (resource based authorization). Sample: [https://github.com/VirtoCommerce/vc-module-store/tree/release/3.0.0/src/VirtoCommerce.StoreModule.Data/Authorization](https://github.com/VirtoCommerce/vc-module-store/tree/release/3.0.0/src/VirtoCommerce.StoreModule.Data/Authorization)

## 4. DummyModule.Web

1. module.manifest
2. JsonConverters
3. Module.cs
4. API controllers
5. Content
6. Scripts
7. webPack: [https://github.com/VirtoCommerce/vc-module-order/blob/release/3.0.0/src/VirtoCommerce.OrdersModule.Web/webpack.config.js](https://github.com/VirtoCommerce/vc-module-order/blob/release/3.0.0/src/VirtoCommerce.OrdersModule.Web/webpack.config.js)
8. Localizations

## 5. DummyModule.Tests

1. Unit tests
2. Integration tests

## 6. Pack the module (using VirtoCommerce.GlobalTool)

1. dotnet tool install VirtoCommerce.GlobalTool -g --version 3.0.0-beta0008
2. copy and edit .nuke
3. vc-build compress

---

<div class="post-metadata">

**Author:** ![NomanaReveation](https://yyz2.discourse-cdn.com/flex032/user_avatar/www.virtocommerce.org/nomanareveation/32/595_2.png) [@NomanaReveation](https://www.virtocommerce.org/u/NomanaReveation)\
**Post date:** [July 20, 2022, 12:34pm UTC](https://www.virtocommerce.org/t/how-to-create-a-new-module-in-vc-v3/89/2 "2022-07-20T12:34:37Z")

</div>

vc-buid compress delete the localization folder so it’s not picking up the value so how to resolve this ?

---

<div class="post-metadata">

**Author:** ![OlegoO](https://yyz2.discourse-cdn.com/flex032/user_avatar/www.virtocommerce.org/olegoo/32/27_2.png) [@OlegoO](https://www.virtocommerce.org/u/OlegoO)\
**Post date:** [July 21, 2022, 6:58am UTC](https://www.virtocommerce.org/t/how-to-create-a-new-module-in-vc-v3/89/3 "2022-07-21T06:58:04Z")

</div>

Did you use latest version fo vc-build?  
Did you add localizaion file to project?

Could you share with us your source code? We will check what’s wrong.

Most of the VC modules has localization file, like [Catalog Module](https://github.com/VirtoCommerce/vc-module-catalog/tree/dev/src/VirtoCommerce.CatalogModule.Web/Localizations) and we use Virto Commerce CLI (vc-build) to create package.

![image](https://canada1.discourse-cdn.com/flex032/uploads/virtocommerce/original/2X/a/a1febf405357a9a3e697111904b10010376c6fa6.png)

---

<div class="post-metadata">

**Author:** ![OlegoO](https://yyz2.discourse-cdn.com/flex032/user_avatar/www.virtocommerce.org/olegoo/32/27_2.png) [@OlegoO](https://www.virtocommerce.org/u/OlegoO)\
**Post date:** [July 22, 2022, 9:14am UTC](https://www.virtocommerce.org/t/how-to-create-a-new-module-in-vc-v3/89/4 "2022-07-22T09:14:35Z")

</div>

Latest actual version you can find in [Developer guide - Create a new module - Virto Commerce Documentation](https://docs.virtocommerce.org/developer-guide/create-new-module/)

---

<div class="post-metadata">

**Author:** ![Koshalgarg155](https://yyz2.discourse-cdn.com/flex032/user_avatar/www.virtocommerce.org/koshalgarg155/32/1053_2.png) [@Koshalgarg155](https://www.virtocommerce.org/u/Koshalgarg155)\
**Post date:** [July 25, 2022, 5:02am UTC](https://www.virtocommerce.org/t/how-to-create-a-new-module-in-vc-v3/89/5 "2022-07-25T05:02:20Z")

</div>

Hi  
this issue is resolved when we change the localization file name file name was en.PrescriptionModule.json but module name is NB.PrescsriptionModule so we change the name of localization file name to en.NB.PrescriptionModule.json after changing the name it was resolved

Thanks
