PHPackages                             ajlan/module-custom-catalog - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Admin Panels](/categories/admin)
4. /
5. ajlan/module-custom-catalog

ActiveMagento2-module[Admin Panels](/categories/admin)

ajlan/module-custom-catalog
===========================

Ajlan's Case Study Module

00PHP

Since Nov 13Pushed 6y ago1 watchersCompare

[ Source](https://github.com/Hanthana09/custom-catalog)[ Packagist](https://packagist.org/packages/ajlan/module-custom-catalog)[ RSS](/packages/ajlan-module-custom-catalog/feed)WikiDiscussions master Synced 6d ago

READMEChangelogDependenciesVersions (1)Used By (0)

Case Study - Namal Dissanayake
==============================

[](#case-study---namal-dissanayake)

By Namal Dissanayake for Ajalan's case study.

Installation
------------

[](#installation)

- Create magento project

```
composer create-project --repository=https://repo.magento.com/ magento/project-community-edition
```

- Create a DB, setup virtual hosts and setup RabbitMQ.
- Navigate to project directory inside the cloned repository.
- Install composer packages.

```
composer install
```

- Install Magento using below command

```
php bin/magento setup:install --base-url=http://magento2.local/ --base-url-secure=https://magento2.local/ \
--db-host=localhost --db-name=db_name --db-user=db_user --db-password=db_pw \
--admin-firstname=FirstName --admin-lastname=LastName --admin-email=john.doe@example.com \
--admin-user=admin_uname --admin-password=admin_pword --use-rewrites=1 --backend-frontname=admin \
--amqp-host="localhost" --amqp-port="5672" --amqp-user="rabbitmq_user" --amqp-password="rabbitmq_pword" --amqp-virtualhost="/"
```

- Run setup upgrade.

```
php bin/magento setup:upgrade
```

Case 2 - CustomCatalog module
-----------------------------

[](#case-2---customcatalog-module)

As requested, custom module have been developed for install using composer package manager. Respository only containing the module have been submited to packagist.org. So you can use below command to install the package to your project.

```
composer require ajlan/module-custom-catalog
```

### Case 2.1 -Magento Admin Customisation

[](#case-21--magento-admin-customisation)

#### Case 2.1.1

[](#case-211)

It should add a "CustomCatalog" menu on PRODUCTS section

[![Imgur](https://camo.githubusercontent.com/d773f32ca0ef4ea05fda557596a733d3b8ab652b01f4c2476b3de2e70b334cf9/68747470733a2f2f692e696d6775722e636f6d2f594d4536716c492e706e67)](https://camo.githubusercontent.com/d773f32ca0ef4ea05fda557596a733d3b8ab652b01f4c2476b3de2e70b334cf9/68747470733a2f2f692e696d6775722e636f6d2f594d4536716c492e706e67)

#### Case 2.1.2

[](#case-212)

When we click on CustomCatalog link it should list all added products. And it should also have filtering options.

[![Imgur](https://camo.githubusercontent.com/db13fbaf1207aba68a368da9270cc14ebe1279c159e5b39fa8ace109b4a1c28a/68747470733a2f2f692e696d6775722e636f6d2f4a5931464356432e706e67)](https://camo.githubusercontent.com/db13fbaf1207aba68a368da9270cc14ebe1279c159e5b39fa8ace109b4a1c28a/68747470733a2f2f692e696d6775722e636f6d2f4a5931464356432e706e67)

#### Case 2.1.3

[](#case-213)

We should be able to add/edit products.

[![Imgur](https://camo.githubusercontent.com/3a54518b06bb7cfea0d0e60dfe28c2ad33697b655f214190ba2dee40c39f5aee/68747470733a2f2f692e696d6775722e636f6d2f774854613166682e706e67)](https://camo.githubusercontent.com/3a54518b06bb7cfea0d0e60dfe28c2ad33697b655f214190ba2dee40c39f5aee/68747470733a2f2f692e696d6775722e636f6d2f774854613166682e706e67)

In the screenshots we have many fields. Just need to cover these fields. ProductID,SKU,CopyWriteInfo,VPN for this case.

- ProductID (a unique identifier of a product, string) \\ scope = global
- CopyWriteInfo (copy write information, text) \\ scope = store
- VPN ( Vendor Product Number, string) \\ scope = global
- SKU( string) \\ scope = global

You just need to add above 4 fields to be listed, added and edited. Admin should be able to search with particular VPN and perform CRUD operations.

### Case 2.2 - API Customisation

[](#case-22---api-customisation)

Below custom endpoints developed as per the requirement specified. On case 2.2.2, I have altered payload to match with magento default payload for a product save.

#### Case 2.2.1 - Get product(s) data by VPN

[](#case-221---get-products-data-by-vpn)

Endpoint: **rest/V1/product/getByVPN/:VPN**

Method: **GET**

#### Case 2.2.2 - MQ product creation

[](#case-222---mq-product-creation)

Endpoint: **rest/V1/product/update**

Method: **PUT**

Sample payload:

**Note:** The payload here is bit different than the provided example since I used Magento's product entity

```
{
  "product": {
    "sku": "product-sku",
    "name": "Product Name",
    "price": 99,
    "status": 1,
    "visibility": 4,
    "type_id": "simple",
    "attribute_set_id": 4,
    "custom_attributes": [
      {
        "attribute_code": "description",
        "value": "product description"
      },
      {
        "attribute_code": "tax_class_id",
        "value": "2"
      },
      {
        "attribute_code": "ProductID",
        "value": "PUID_1"
      },
      {
        "attribute_code": "CopyWriteInfo",
        "value": "Copy Write Information"
      },
      {
        "attribute_code": "VPN",
        "value": "VPN1"
      }
    ]
  }
}
```

###  Health Score

16

—

LowBetter than 5% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity0

Limited adoption so far

Community4

Small or concentrated contributor base

Maturity35

Early-stage or recently created project

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/682902611f0d7e2a0b9150be8aeb1960d2785d9df4be281284e58d14251942eb?d=identicon)[namaldiz](/maintainers/namaldiz)

### Embed Badge

![Health badge](/badges/ajlan-module-custom-catalog/health.svg)

```
[![Health](https://phpackages.com/badges/ajlan-module-custom-catalog/health.svg)](https://phpackages.com/packages/ajlan-module-custom-catalog)
```

###  Alternatives

[jeroennoten/laravel-adminlte

Easy AdminLTE integration with Laravel

4.0k4.8M43](/packages/jeroennoten-laravel-adminlte)[dmstr/yii2-adminlte-asset

AdminLTE backend theme asset bundle for Yii 2.0 Framework

1.1k1.8M67](/packages/dmstr-yii2-adminlte-asset)[dwij/laraadmin

LaraAdmin is a Open source Laravel Admin Panel / CMS which can be used as Admin Backend, Data Management Tool or CRM boilerplate for Laravel with features like CRUD Generation, Module Manager, Media, Menus, Backups and much more

1.6k68.7k](/packages/dwij-laraadmin)[filament/spatie-laravel-media-library-plugin

Filament support for `spatie/laravel-medialibrary`.

1764.8M125](/packages/filament-spatie-laravel-media-library-plugin)[bezhansalleh/filament-exceptions

A Simple &amp; Beautiful Pluggable Exception Viewer for FilamentPHP's Admin Panel

193195.9k13](/packages/bezhansalleh-filament-exceptions)[filament/infolists

Easily add beautiful read-only infolists to any Livewire component.

1220.8M36](/packages/filament-infolists)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
