Skip to content

mageworx/MageWorx_StoreLocatorGraphQl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

GraphQL API for MageWorx Store Locator & In-Store Pickup extension for Magento 2

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages