mageworx / module-storelocator-graphql
mageworx/module-storelocator-graphql
MageWorx Store Locator GraphQL
GraphQL API for Store Locator & In-Store Pickup for Magento 2.
Requirements
| Package | Version |
|---|---|
mageworx/module-locations |
>= 1.8.5 |
mageworx/module-storelocator |
>= 1.7.4 |
mageworx/module-locationpages |
>= 1.3.4 |
mageworx/module-pickup |
>= 1.6.5 |
| Magento | 2.4.x (Open Source / Adobe Commerce) |
MSI (Multi-Source Inventory) is supported but not required.
Installation
composer require mageworx/module-storelocator-graphql
bin/magento setup:upgrade
bin/magento cache:flush
Or copy the module to app/code/MageWorx/StoreLocatorGraphQl/ and run setup:upgrade.
Queries
Single location
Fetch by id or code:
{
mageworxLocation(code: "nyc-downtown") {
entity_id
name
address
city
country_id
latitude
longitude
is_pickup_available
working_hours {
is_open_now
schedule { day from to is_day_off }
}
social { facebook instagram whatsapp }
amenities { parking atm pharmacy }
meta { meta_title meta_description }
}
}
Search locations
Supports geo-radius search, text search, and filtering by country, region, city, or amenities:
{
mageworxLocations(
filter: { latitude: 40.7, longitude: -74.0, radius: 50 }
pageSize: 10
currentPage: 1
) {
items { name city distance }
total_count
page_info { current_page total_pages }
}
}
Available amenity codes for filtering: gas_station, atm, pharmacy, tire_center, food_court,
curbside_pickup, parking, amazon_returns, delivery_pickup, optical_department.
Locations for a product
Returns locations carrying the product with MSI stock data when available:
{
mageworxLocationsByProduct(product_id: 42, pageSize: 5, currentPage: 1) {
items {
location { name city }
in_stock
qty
}
total_count
page_info { current_page total_pages }
}
}
Location count for a product
{ mageworxLocationCountForProduct(product_id: 42) }
Location pages
Hierarchical location pages for SEO landing pages (country > region > city):
{
mageworxLocationPages(type: COUNTRY) {
id
name
url
type
parent_id
}
}
Use parent_id to drill down: COUNTRY -> REGION -> CITY.
Mutations
Set pickup location
mutation {
setPickupLocationOnCart(input: { cart_id: "abc123", location_id: 1 }) {
cart {
mageworx_pickup_location { name address city }
}
}
}
Remove pickup location
mutation {
removePickupLocationFromCart(cart_id: "abc123") {
cart { mageworx_pickup_location { name } }
}
}
Store Configuration
Store Locator settings are exposed via the standard storeConfig query:
{
storeConfig {
mageworx_locations_show_on_product
mageworx_locations_show_map
mageworx_locations_radius_unit
mageworx_locations_default_radius
mageworx_locations_default_latitude
mageworx_locations_default_longitude
mageworx_locations_page_layout
mageworx_locations_link_title
mageworx_locations_link_url
mageworx_pickup_active
mageworx_locations_pickup_method_name
mageworx_locations_pickup_price
mageworx_locations_enable_working_hours
mageworx_locations_pages_base_path
}
}
See README_DEV.md for the full list of exposed config fields.
License
Copyright (c) MageWorx. All rights reserved.
See LICENSE.txt for license details.
No changelog yet
The vendor hasn't published a changelog. Tagged releases appear in the Versions tab.
Requires 6
| Package | Constraint |
|---|---|
| magento/module-graph-ql | * |
| magento/module-quote-graph-ql | * |
| mageworx/module-locations | >= 1.8.5 |
| mageworx/module-storelocator | >= 1.7.4 |
| mageworx/module-locationpages | >= 1.3.4 |
| mageworx/module-pickup | >= 1.6.5 |
Compatibility
Each Magento release line is installed on its supported PHP versions, then the module is built (DI compilation + static-content deploy) and its unit and integration suites are run. The matrix shows the lines and PHP versions the module is confirmed to install and run on. Code-quality results further down (phpstan, phpcs, …) are reported separately and never affect compatibility.
Code Quality
Advisory checks against the module's source. Static analysis runs once across the whole module; PHPStan re-runs per Magento + PHP version because resolvable symbols differ between releases. These NEVER affect the Compatibility badge — 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.
PHPStan
Type-checks the module's PHP against a real Magento install at the configured gate level. Re-runs per Magento and PHP version because resolvable symbols differ between releases. Cell → details modal.
Tests
Unit and integration suites, run for each applicable Magento and PHP version. A test failure speaks to the module's behaviour, not its compatibility with a Magento line, so it is reported here separately and never reddens the compatibility matrix.
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
Security checks run directly against the module: an audit of its declared dependencies for known vulnerabilities (composer audit) and a scan of its source for malware and web-shell signatures. Each runs once. A malware detection fails the version outright.
More from mageworx
View vendorTurn an existing module into recurring revenue.
If you already maintain a Magento 2 module on GitHub or GitLab, listing it on Packagento takes about five minutes. We mirror your tags, handle distribution signing, and route paid licenses through Stripe Connect, so you can keep shipping the way you already do.