I will show how you can build your GraphQL for Magento 2.3 and extend them with a filter logic. Our use case is a Pickup from Store endpoint what our frontend team needs to create an interactive map.
We are hire ! Wanna work for one of Germany’s leading Magento partners? With agile methods, small teams and big clients? We’re currently looking for experienced PHP & Magento developers in Munich/Rosenheim. Sounds interesting? Just drop me a line via l.roettig+github@techdivision.com
In the story, we have the following acceptance criteria.
As a frontend developer, I need Endpoint to search for the next Pickup Store in a Postcode Area. Use a setup script initial import Allow search for Postcode or Name. API will return the following attributes for a Pickup Store
| Arrribute Name | GraphQL field |
|---|---|
| Name | name |
| Postcode | postcode |
| Street | street |
| Street Number | street_num |
| City | city |
| Longitude | longitude |
| Latitude | latitude |
- Create new Table with Declarative Schema
- Use Data Patch to import Sample Data
- Implement own GraphQL Endpoint with Filter Query
- Magento 2.3.3
* = in production please use the --keep-generated option
- Unzip the zip file in to
app/code/LarsRoettig/GraphQLStorePickup - Enable the module by running
php bin/magento module:enable LarsRoettig_GraphQLStorePickup - Apply database updates by running
php bin/magento setup:upgrade* - Flush the cache by running
php bin/magento cache:flush
- Install the module composer by running
composer require larsroettig/module-graphqlstorepickup - enable the module by running
php bin/magento module:enable LarsRoettig_GraphQLStorePickup - apply database updates by running
php bin/magento setup:upgrade* - Flush the cache by running
php bin/magento cache:flush
Simple Query without an filter:
{
pickUpStores {
total_count
items {
name
street
street_num
postcode
}
}
}Query with an filter:
{
pickUpStores(
filter: { name: { like: "Brick and Mortar 1%" } }
pageSize: 2
currentPage: 1
) {
total_count
items {
name
street
postcode
}
}
}


