Adobe Commerce - Store Locator
Changed on:
17 Oct 2023
Overview
The Store Locator Module is responsible for synchronizing locations from Fluent to Adobe Commerce.
Key features:
- Manually synchronize all locations at any time.
- Manually synchronize locations by updated date at any time.
- Background synchronization of recently modified locations.
- Multi-retailer / multi-website configuration support.
Detailed Technical Description
Technical Details
Synchronization flow contains 4 steps:
- Adobe Commerce Update Location Service requests Fluent for location data for a specific date-time range.
- Fluent returns appropriate location information.
- Adobe Commerce publishes received data to the Adobe Commerce message queue.
- Location message consumer fetches published messages and saves appropriate locations.
This flow is common for all Location synchronization types.
Synchronization types
There are three synchronization types implemented:
- Full
- Manual
- Delta
Full Synchronization
Allows synchronizing all locations, supposed to be used after module installation to import all location information from Fluent to Adobe Commerce. To fetch the location, it uses the location updated date range from 1970-01-01 to NOW + 5 mins.
Can be run from Magento CLI with the command below:
`1bin/magento fluent:store_locator:sync`
Manual Synchronization
Allows fetching from Fluent location changes from a specific date. Can be run only from the admin interface. It uses the date range from SPECIFIED to NOW + 5mins
Delta Synchronization
A background process to keep Adobe Commerce locations up to date, being executed by Adobe Commerce cron job. The frequency of the cron job execution can be configured in module configuration in Adobe Commerce admin. By default, it runs every day at midnight in the configured admin timezone. It uses a date range from LAST_EXECUTION_TIME to NOW + 5 mins.
Simplified module architecture
Events
Name | Description | Parameters |
fluent_before_save_store_locator | Allows customization of store locator model before save | store locator model, store locator response data |
fluent_get_store_locator_query_build_after | Allows customization of the payload of get location request | request_data of type StoreLocatorGetDataInterface, query of type string |
fluent_store_locator_prepare_variable | Allows customization of variables used for request building | variables of type array, request_data of type StoreLocatorGetDataInterface |
fluent_store_locator_prepare_request_fields | Allows customization of fields used for request building | request_fields of type DataObject |
fluent_store_locator_email_prepare_request_variable | Allows customization of filter fields used in email request building | field_list of type DataObject |
fluent_store_locator_email_prepare_variable | Allows customization of variables used in email request building | variables of type DataObject, request_data of type StoreLocatorGetEmailDataInterface |
fluent_store_locator_email_prepare_request_fields | Allows customization of fields to be requested in email request building | request_fields of type DataObject |