# limesharp/stockists

> This is a stockists store locator extension for magento2

`composer require limesharp/stockists`

Canonical URL: https://packagento.com/limesharp/stockists

## At a glance

- **Vendor**: limesharp (https://packagento.com/limesharp.md)
- **Latest version**: 2.0.18 — released 2024-10-30
- **Pricing**: Free
- **Package type**: Magento 2 module
- **Status**: active, accepting new buyers

## Installation

Packagento is licence-gated, so even free packages need a licence on a project before Composer can resolve them.

1. **Sign in or create an account** at https://packagento.com/customer/account/.

2. **Add the package to your account.** Open https://packagento.com/limesharp/stockists and complete the free checkout. A licence is minted automatically.

3. **Create or pick a project, then activate the licence on it.**
   - Projects represent the Magento installs you deploy to. Manage them at https://packagento.com/projects/.
   - Activate the new licence on the project you'll deploy this package to. Activation is what generates the Composer credentials scoped to that project.

4. **Add the project credentials to your Magento codebase.**

   Grab the project's public + private key from https://packagento.com/projects/ (open the project, then its Credentials tab), and add them to `auth.json`:

   ```json
   {
     "http-basic": {
       "packagento.com": {
         "username": "ppk_live_...",
         "password": "psk_live_..."
       }
     }
   }
   ```

   Add the Packagento Composer repository to `composer.json`:

   ```json
   {
     "repositories": [
       { "type": "composer", "url": "https://packagento.com" }
     ]
   }
   ```

5. **Install and apply.**

   ```bash
   composer require limesharp/stockists:*
   bin/magento setup:upgrade
   bin/magento setup:di:compile
   bin/magento cache:flush
   ```

## What it does

This is a stockists store locator extension for magento2

## README

This is a feature rich stockists store locator extension for magento2. 

**Table of Contents** 
- [Magento2 stockists store locator extension](#)
	- [Install](#install)
	- [Features](#features)
	- [Usage](#usage)
		- [Basic](#basic)
		- [Import](#import)
		- [Export](#export)
	- [Support](#support)
	- [Demo](#demo)
	- [Uninstall](#uninstall)

### Install

```
$ composer require limesharp/stockists
$ composer update
$ php bin/magento setup:upgrade 
$ php bin/magento setup:static-content:deploy
$ php bin/magento cache:clean
```

Or you can download the latest zip file from releases, drop it into your app folder, copy the contents of src folder into the main folder and then run the last 2 commands above.

Or you can also get it from the <a href="https://marketplace.magento.com/limesharp-stockists.html"> magento2 marketplace.</a> (there it is the old version 1.0.6 with less features)

It requires magento 2.1 or above and php7 (for php5.6 use v.1.0.6).

Visit the extension website: http://claudiucreanga.github.io/magento2-store-locator-stockists-extension/

<b>You need to use your own gmaps api key</b>. Go to https://developers.google.com/maps/documentation/javascript/get-api-key and get your own key and then insert it in configuration > stockists > Gmaps Api Key. Otherwise the map may not work because of Gmaps' daily limits.

### Features

* Details: name, address, city, country, postcode, internal link, external link, telephone, email, schedule, description, intro, nearest station, distance;
* Images: upload images of your stores. Two images can be uploaded, one for index page and one for individual store pages;
* Individual store pages on your website;
* Import: import your stores from a csv file;
* Export: export stores to a csv file;
* Interactive map: stores positioned on the map via longitude and latitude;
* Geolocation: show nearest stores to user (in chrome only via https);
* Search: search functionality in the sidebar;
* Directions: show directions from user location to store (driving, walking, cycling or public transport);
* Map Styles: choose from over 10 different map styles to fit your store;
* Breadcrumbs: show/hide breadcrumbs;
* SEO: edit titles, meta descriptions and keywords;
* Url: chose your url where your store locator appears;
* Radius: Select and style your radius in settings;
* Unit: Chose between miles and kilometres;
* Pin: Use custom map pin;
* Responsive: Mobile responsive templates;
* Templates: Choose from 3 different templates;
* Api key: Use your own Gmaps api key for higher traffic;

### Usage

#### Basic

* The default url is /stockists. So once installed go to www.website.com/stockists (insert store code if necessary);
* Location in admin is inside content menu > stockists;
* Name, latitude and longitude are required values;
* Bear in mind that chrome and some other browsers allow geolocation services only via https;

#### Import

* The csv file needs to be comma separated and values should be quoted;
* check the sample csv file in in <a href="https://github.com/ClaudiuCreanga/magento2-store-locator-stockists-extension/tree/master/docs">docs folder</a>;
* name, latitude and longitude are required;
* country field should be the 2 letter ISO code. Example: GB for United Kingdom and US for USA;
* image should be the path of the image which is built from the first to letters separated by slash and then the name of the image. Example: for image test.png the path is /t/e/test.png. The image should be placed in folder pub/media/limesharp_stockists/stockist/image/t/e/ (last 2 letters changed of course);
* if you want a stockist to be in multiple stores you can pass the ids of stores comma separated inside the store_id field;
* To make sure your csv file is formatted correctly, you can open it in a text editor. It should look like this (comma separated and quoted values):

![csv](docs/images/csv.jpg?raw=true "CSV")

#### Export

* Just click export stores and a file will be saved by your browser on your computer;

### Support
* I **DO NOT** offer any free technical support in installing or customizing this extension.
* This extention works out of the box with any magento 2.1 site, but depending on your theme it may need further styling.
* If you need help please ask questions on http://magento.stackexchange.com/ .

### Demo

* Main dashboard:

![Main dashboard](docs/images/main.jpg?raw=true "Main dashboard")
* Location in admin:

![Locationd](docs/images/location.jpg?raw=true "Location")
* Settings:

![Settings](docs/images/settings1.jpg?raw=true "Settings")
![Settings](docs/images/settings2.jpg?raw=true "Settings")
![Settings](docs/images/settings3.jpg?raw=true "Settings")

* Frontend full page:

![Frontend](docs/images/front.jpg?raw=true "Frontend")

* Frontend store window:

![window](docs/images/window.jpg?raw=true "Window")

* Store Details:

![window](docs/images/store-details.png?raw=true "Window")

* Frontend search:

![search](docs/images/search.jpg?raw=true "search")

* Driving directions:

![Driving directions](docs/images/directions.jpg?raw=true "Driving directions")

### Uninstall

* If you installed it manually:

	- remove the folder app/code/Limesharp/Stockists;
	- drop the tables limesharp_stockists_stores (drop table limesharp_stockists_stores);
	- remove the config settings. DELETE FROM core_config_data WHERE path LIKE 'limesharp_stockists/%'
	- remove the module Limesharp_Stockists from app/etc/config.php
	- remove the module Limesharp_Stockists from table setup_module: DELETE FROM setup_module WHERE module='Limesharp_Stockists'

* If you installed it via composer:

	- run this in console: php bin/magento module:uninstall -r Limesharp_Stockists.

## Recent Versions

| Version | Released |
|---|---|
| 2.0.18 | 2024-10-30 |
| 2.0.17 | 2022-12-14 |
| 2.0.16 | 2021-01-14 |
| 2.0.14 | 2019-10-30 |
| 2.0.13 | 2019-01-02 |
| 2.0.12 | 2018-06-07 |
| 2.0.11 | 2018-04-03 |
| 2.0.10 | 2018-03-26 |
| 2.0.9 | 2018-03-09 |
| 2.0.8 | 2018-03-08 |

Showing 10 of 29 versions. Full release history on https://packagento.com/limesharp/stockists.

## Dependencies

### Require

| Package | Constraint |
|---|---|
| magento/product-community-edition | ^2.1.0 |
| php | 7.0.2\|7.0.4\|~7.0.6\|~7.1.0\|~7.2.0\|~7.3.10\|~7.4.0\|~8.1.0\|~8.2.0\|~8.3.0 |

## Quality

Latest release (2.0.18) fails the Packagento QA pipeline. Verdicts below are per-cell (Magento line × PHP version) for the matrixed tools, and run-once for the static / security tiers.


### Compatibility

Each Magento line is installed on its supported PHP versions, then the module is built (DI compile + static-content deploy). Cells show passed / failed / untested; staircase gaps render as `–`.

| Magento | PHP 8.2 | PHP 8.3 | PHP 8.4 | PHP 8.5 |
|---|---|---|---|---|
| 2.4.7 | Pass | Pass | – | – |
| 2.4.8 | – | Pass | not tested | – |
| 2.4.9 | – | – | not tested | not tested |


### Code Quality

Advisory checks against the module's source. Never affect the Compatibility verdict — a phpcs finding can't make a module incompatible.

#### Static Analysis

Coding standards (phpcs), mess detection (phpmd), copy-pasted code (cpd), PHP cross-version compatibility, composer.json validity. Each runs once for the whole module.

| Tool | Status | Findings | Summary |
|---|---|---|---|
| PHPCS | Fail | 643 | 51 errors, 592 warnings (ruleset: Magento2) — 421 auto-fixable with phpcbf |
| PHPMD | Warning | 16 | 16 rule violations (MissingImport:5, ExcessiveParameterList:3, ExcessivePublicCount:2, IfStatementAssignment:2, CyclomaticComplexity:1) |
| Cpd | Warning | 1 | 1 duplicated chunk spanning 59 total lines (min-lines=5, min-tokens=70) |
| Composer validate | Info | 1 | valid; 1 advisory note (composer validate --strict) |

#### PHPStan

Type-checks the module against a real Magento install. Re-runs per Magento + PHP version because resolvable symbols differ between releases.

| Magento | PHP 8.2 | PHP 8.3 | PHP 8.4 | PHP 8.5 |
|---|---|---|---|---|
| 2.4.7 | 111 | 111 | – | – |
| 2.4.8 | – | 111 | N/A | – |
| 2.4.9 | – | – | N/A | N/A |


### Tests

Unit and integration suites run per Magento + PHP cell. Test failures speak to the module's behaviour, not its compatibility with a line, so they're reported here separately.

#### Unit Tests

| Magento | PHP 8.2 | PHP 8.3 | PHP 8.4 | PHP 8.5 |
|---|---|---|---|---|
| 2.4.7 | N/A | N/A | – | – |
| 2.4.8 | – | N/A | N/A | – |
| 2.4.9 | – | – | N/A | N/A |

#### Integration Tests

| Magento | PHP 8.2 | PHP 8.3 | PHP 8.4 | PHP 8.5 |
|---|---|---|---|---|
| 2.4.7 | N/A | N/A | – | – |
| 2.4.8 | – | N/A | N/A | – |
| 2.4.9 | – | – | N/A | N/A |


### Security

Dependency-advisory audit (composer audit) plus a source malware scan. A malware detection fails the version outright.

| Tool | Status | Findings | Summary |
|---|---|---|---|
| Composer audit | Pass | 0 |  |
| Malware scan | Pass | 0 |  |

## Licence and pricing

Free. A licence is still minted on checkout and bound to your project for Composer access — no payment step.

Refundable within 14 days of first purchase via https://packagento.com/account/refunds/.

## Install via Claude Code or any MCP client

The Packagento MCP server can run the licence + project + Composer steps above in one tool call:

```
purchase_and_install_packages(
  composer_names=["limesharp/stockists"],
  project_id="proj_xxx"
)
```

This handles cart, checkout, licence minting, project activation, and writes auth.json credentials. Connect a client with `claude mcp add packagento https://mcp.packagento.com`. Full setup at https://packagento.com/docs/mcp-setup.

## Vendor

limesharp is a Magento 2 vendor on Packagento. See https://packagento.com/limesharp.md for their full catalogue.

