PHPackages                             firas/shopfinder - 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. firas/shopfinder

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

firas/shopfinder
================

Shopfinder Module to add new shops, view, edit and delete a shop from admin section. GraphQL to update &amp; view shop data

012PHP

Since Jan 19Pushed 3y ago1 watchersCompare

[ Source](https://github.com/Firas220890/Shopfinder-Module)[ Packagist](https://packagist.org/packages/firas/shopfinder)[ RSS](/packages/firas-shopfinder/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

**\# Module name: Shopfinder - Magento 2**

Author: Firas

About Module: The main functionality of the module is to enable business to create shops within the content management system with ability to edit, deleted, filter, etc. This module also comes with API built using Graphql where a user can update the shop data by using it's unique identifier which is the shop id, view all the shops available in the system, view a specific shop by using it's unique identifier.

Implementation: A custom module have been developed to acheive the same where a menu named "Shopfinder" is added under Content-&gt;Elements section of the admin panel. Graphql mutation and query are used to update and fetch the shop information accordingly.

**Let's get started!**

**Steps to install the module:**There are two ways to install this module which are listed below:

Composer Installation - recommended way
---------------------------------------

[](#composer-installation---recommended-way)

Run the below composer require command to install the package

`composer require firas/shopfinder`

You can also find the package information here

**Note:** You may encounter below error when you run the above **composer require firas/shopfinder** to fix the error please run below commands. **Error message: Could not find a version of package firas/shopfinder matching your minimum-stability (stable). Require it with an explicit version constraint allowing its
desired stability.**

`composer config minimum-stability dev``composer config prefer-stable true`

Once above composer settings are done, run `composer require firas/shopfinder` again. Now you can see that the package will be installed successfully in vendor folder of the magento directory.

Check the status of the module just installed by running `bin/magento module:status`, if the module Firas\_Shopfinder is disabled kindly enable it by running `bin/magento module:enable Firas_Shopfinder`

Once the installation of the module is done by following one of the above methods, run the below command to setup upgrade and clear cache from the magento root directory.

`bin/magento setup:upgrade bin/magento c:f; bin/magento c:c; `

You can now start exploring the module by logging into the Admin panel.

Manual Installation
-------------------

[](#manual-installation)

The module can be installed manually as well by git cloning the repository to directory /app/code/

**Repo link:** `https://github.com/Firas220890/Shopfinder-Module.git`

Once the installation of the module is done by following one of the above methods, run the below command to setup upgrade and clear cache from the magento root directory.

`bin/magento setup:upgrade bin/magento c:f; bin/magento c:c; `

After installation
------------------

[](#after-installation)

Once the package installation is completed by following one of the above listed methods you may note the below points and verify the package.

-&gt;In database you can find a custom table named **"shops\_data"**Reference image:

-&gt;A section in Magento admin panel under Content-&gt;Elements named **"Shopfinder"**Reference image:

-&gt;Once you select the **Shopfinder** you can see a grid view where all the shops will be listed and buttons to **add a new shop**, **edit/delete existing shops**.

GraphQL Explanation:
--------------------

[](#graphql-explanation)

As described earlier Graphql for this module is developed to perform below operations:

a) Update shop information by passing the unique identifier which is shop id b) Display all the available shops within the system c) Display information for specific shop by passing the shop id

**GrapghQL Endpoint:**

-&gt;Graphql mutation is developed to update existing shops data by passing the unique identifier which is the entity\_id **Graphql usage:**

` mutation { shopData(input: { shop_id: "string", shop_name: "string", country_code: "ISO Two digit country code", base64_encoded_file: "string" }) { message success } }`

-&gt;Graphql query is developed to display all the shops existing in the system. **GraphQL Usage:**

`{ getShopsList { country entity_id image title } }`

-&gt;GraphQL query is developed to display the shop by passing the unique identifier which is entity\_id **GraphQL usage:**

`{ view_shop_by_id(shop_id: int) { country entity_id image title } }`

That is it! I hope you guys had fun installing this module and executing it. I am always open to feedback and learning. Any feedback will be highly appreciated :)

Unit/Functional Testing steps:
==============================

[](#unitfunctional-testing-steps)

**Steps to test admin section:**

1. Create new shop
    1. Log into admin panel using the credentials shared above
    2. Navigate to Content-&gt;Elements-&gt;Shopfinder
    3. Click on Add new shop - Add all the required information and submit. Shop data will be added successfully
2. Edit shop data:
    1. Navigate to Content-&gt;Elements-&gt;Shopfinder
    2. You can see list of all shop and a button to edit the shop data. Click on it and update the information you would like to change and save

**Steps to test using GraphQL:**

1. Update shop data by passing the id - assuming the shop with id 1 already exist ` mutation { shopData(input: { shop_id: "1", shop_name: "Test Shop", country_code: "AE", base64_encoded_file: "base64encodedimagestring" //link to get base64 for image https://elmah.io/tools/base64-image-encoder/ }) { message success } }`
2. View all the shops - By executing the below query it will return all the shops that exist in the system `{ getShopsList { country entity_id image title } }`
3. View specific store by passing the id - assuming the store with id 1 already exist `{ view_shop_by_id(shop_id: 1) { country entity_id image title } }`

Thank you, Firas, Senior Magento Full-Stack Developer.

###  Health Score

14

—

LowBetter than 2% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity23

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

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/4a072ceda4dac1f49a5e6f9d37fc64d8fcf984aa64bbb1fdae0018c5272c493a?d=identicon)[firasath90@gmail.com](/maintainers/firasath90@gmail.com)

---

Top Contributors

[![Firas220890](https://avatars.githubusercontent.com/u/66754928?v=4)](https://github.com/Firas220890 "Firas220890 (30 commits)")

### Embed Badge

![Health badge](/badges/firas-shopfinder/health.svg)

```
[![Health](https://phpackages.com/badges/firas-shopfinder/health.svg)](https://phpackages.com/packages/firas-shopfinder)
```

###  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)
