GraphQL API for Store Locator & In-Store Pickup for Magento 2.
| 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.
composer require mageworx/module-storelocator-graphql
bin/magento setup:upgrade
bin/magento cache:flushOr copy the module to app/code/MageWorx/StoreLocatorGraphQl/ and run setup:upgrade.
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 }
}
}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.
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 }
}
}{ mageworxLocationCountForProduct(product_id: 42) }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.
mutation {
setPickupLocationOnCart(input: { cart_id: "abc123", location_id: 1 }) {
cart {
mageworx_pickup_location { name address city }
}
}
}mutation {
removePickupLocationFromCart(cart_id: "abc123") {
cart { mageworx_pickup_location { name } }
}
}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.
Copyright (c) MageWorx. All rights reserved. See LICENSE.txt for license details.