PHPackages                             anee/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. [API Development](/categories/api)
4. /
5. anee/shopfinder

ActiveMagento2-module[API Development](/categories/api)

anee/shopfinder
===============

Magento2 Shopfiner module to add shop list and search shop near to customer.

1.0.0(2y ago)035proprietaryPHPPHP ~7.4.0||~8.1.0||~8.2.0

Since Aug 1Pushed 2y ago1 watchersCompare

[ Source](https://github.com/aneel2023/shopfinder)[ Packagist](https://packagist.org/packages/anee/shopfinder)[ RSS](/packages/anee-shopfinder/feed)WikiDiscussions main Synced yesterday

READMEChangelog (1)Dependencies (2)Versions (2)Used By (0)

   title README For Shopfinder Module  Anee\_Shopfinder
================

[](#anee_shopfinder)

General
-------

[](#general)

The purpose of this module is to manage all store shops and find the shop by name and identifier near to customer.

Controller Actions
------------------

[](#controller-actions)

### `\Anee\Shopfinder\Controller\Adminhtml\Shopfinder\Index`

[](#aneeshopfindercontrolleradminhtmlshopfinderindex)

This controller is used to render the grid of shops.

### `\Anee\Shopfinder\Controller\Adminhtml\Shopfinder\Save`

[](#aneeshopfindercontrolleradminhtmlshopfindersave)

This controller is used to save the data after getting submitted from shop form.

### `\Anee\Shopfinder\Controller\Adminhtml\Shopfinder\Delete`

[](#aneeshopfindercontrolleradminhtmlshopfinderdelete)

This controller is used to delete single item of shop from grid row.

### `\Anee\Shopfinder\Controller\Adminhtml\Shopfinder\MassDelete`

[](#aneeshopfindercontrolleradminhtmlshopfindermassdelete)

This controller is used to delete multiple items of shop from grid action.

### `\Anee\Shopfinder\Controller\Adminhtml\Shopfinder\Edit`

[](#aneeshopfindercontrolleradminhtmlshopfinderedit)

This controller is used to show form for updating the data of shop.

### `\Anee\Shopfinder\Controller\Adminhtml\Shopfinder\NewAction`

[](#aneeshopfindercontrolleradminhtmlshopfindernewaction)

This controller is used to show form for adding the data of shop.

### `\Anee\Shopfinder\Controller\Adminhtml\Shopfinder\Upload`

[](#aneeshopfindercontrolleradminhtmlshopfinderupload)

This controller is used to upload the image in directory of images from add/update form.

Services
--------

[](#services)

### `\Anee\Shopfinder\Service\ImageUploaderService`

[](#aneeshopfinderserviceimageuploaderservice)

This service is responsible to save the image in tmp images directory and then move to the original images directory.

### `\Anee\Shopfinder\Service\UpdateShopfinderShopDataService`

[](#aneeshopfinderserviceupdateshopfindershopdataservice)

This service is responsible to update the shop data used in graphql mutation resolver class.

Validators
----------

[](#validators)

### `Anee\Shopfinder\Validator\IsUniqueShopfinderIdentifierValidator`

[](#aneeshopfindervalidatorisuniqueshopfinderidentifiervalidator)

This validator will validate that same identifier is not exist. If same identifier is exist for any other shop then
it will throw exception else return true.

GraphQl APIs
------------

[](#graphql-apis)

### `GetShopByIdentifier - \Anee\Shopfinder\GraphQl\Resolver\ShopfinderResolver`

[](#getshopbyidentifier---aneeshopfindergraphqlresolvershopfinderresolver)

This GraphQl Api is used to get shop data by input parameter identifier. It will validate first that identifier is
exist in request if not exist then throw the exception. If shop not exist with identifier then it will also throw
the exception but if exist then return data in array.

`GetShopByIdentifier Request`
-----------------------------

[](#getshopbyidentifier-request)

{ GetShopByIdentifier(identifier: "string") { country createdAt id identifier image latitude longitude name updatedAt } }

### `GetShopfinderShopList - \Anee\Shopfinder\GraphQl\Resolver\GetShopfinderShopListResolver`

[](#getshopfindershoplist---aneeshopfindergraphqlresolvergetshopfindershoplistresolver)

This GraphQl Api is used to get all shops list. If data is not exist then it will throw exception with message.
If shop data exist then it will return the list of shop.

`GetShopfinderShopList Request`
-------------------------------

[](#getshopfindershoplist-request)

{ GetShopfinderShopList { country createdAt id identifier image latitude longitude name updatedAt } }

### `DeleteShopByIdentifier - \Anee\Shopfinder\GraphQl\Resolver\DeleteShopfinderResolver`

[](#deleteshopbyidentifier---aneeshopfindergraphqlresolverdeleteshopfinderresolver)

This GraphQl Api is used to show message when someone tried to delete shop by identifier. It will only show nice
message that shop can not be deleted and also shop will not be deleted.

`DeleteShopByIdentifier Request`
--------------------------------

[](#deleteshopbyidentifier-request)

{ DeleteShopByIdentifier(identifier: "string") { identifier message status } }

### `UpdateShopfinderShop - \Anee\Shopfinder\GraphQl\Resolver\UpdateShopfinderShopResolver`

[](#updateshopfindershop---aneeshopfindergraphqlresolverupdateshopfindershopresolver)

This GraphQl Api is used to update the shop data. It will take all data and update the shop.

`UpdateShopfinderShop Request`
------------------------------

[](#updateshopfindershop-request)

mutation { UpdateShopfinderShop( id: 1 name: "string" identifier: "string" country: "string" image: "string" longitude: "string" latitude: "string" ) { country createdAt id identifier image latitude longitude name updatedAt } }

Module Installation
-------------------

[](#module-installation)

`composer require anee/shopfinder`

If composer downloaded file successfully then run following command on magento root directory: `php bin/magento s:up && php bin/magento setup:di:compile && php bin/magento s:s:d -f`

If composer not able to download the module from source then try following:

`composer require "anee/shopfinder ~1.0.0"`

If still facing any issue then download code from git: `https://github.com/aneel2023/shopfinder`

Put above downloaded code in `app/code/Anee/Shopfinder` directory and execute following command:

`php bin/magento s:up && php bin/magento setup:di:compile && php bin/magento s:s:d -f`

Run All PHP Unit Tests
----------------------

[](#run-all-php-unit-tests)

1. Copy `dev/tests/unit/phpunit.xml.dist` to `dev/tests/unit/phpunit.xml`
2. Comment out line 60 -&gt; `allure/allure.config.php`
3. Run following command from project root directory:

    `vendor/bin/phpunit -c dev/tests/unit/phpunit.xml vendor/anee/shopfinder/Test/Unit/`

Run All PHP Integration Tests
-----------------------------

[](#run-all-php-integration-tests)

1. Rename `dev/tests/integration/etc/install-config-mysql.php.dist` to `dev/tests/integration/etc/install-config-mysql.php`
2. Update `db-host`, `db-user`, `db-password` and `db-name` (Create new db for integration tests)
3. After creating new db, make sure to run `setup:upgrade and setup:di:coompile commands`
4. Copy `dev/tests/integration/phpunit.xml.dist` to `dev/integration/unit/phpunit.xml`
5. Execute `cd dev/tests/integration`
6. Run following command from above directory:

    `../../../vendor/bin/phpunit ../../../vendor/anee/shopfinder/Test/Integration/`

###  Health Score

25

—

LowBetter than 35% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

 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.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1068d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/24469855?v=4)[aneel11](/maintainers/aneel11)[@aneel11](https://github.com/aneel11)

---

Top Contributors

[![aneel2023](https://avatars.githubusercontent.com/u/141012104?v=4)](https://github.com/aneel2023 "aneel2023 (12 commits)")

### Embed Badge

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

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

###  Alternatives

[smile/elasticsuite

Magento 2 merchandising and search engine built on ElasticSearch

8064.7M49](/packages/smile-elasticsuite)[mollie/magento2

Mollie Payment Module for Magento 2

1131.9M16](/packages/mollie-magento2)[loki/magento2-components

Core module for defining Alpine.js components with advanced AJAX features

1011.8k26](/packages/loki-magento2-components)[elgentos/module-prismicio

Magento 2 - Prismic.io integration

39119.0k4](/packages/elgentos-module-prismicio)[opengento/module-category-import-export

This module add the capability to import and export the categories from the back-office.

1310.9k2](/packages/opengento-module-category-import-export)[zwernemann/module-withdrawal

Magento 2 EU Withdrawal Button Module - Adds a withdrawal/revocation button for orders in compliance with EU Directive (EU) 2023/2673

244.9k2](/packages/zwernemann-module-withdrawal)

PHPackages © 2026

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