├── doc └── static │ ├── shop-map.png │ ├── offer-step-one.png │ ├── offer-step-two.png │ ├── shop-offer-list.png │ ├── home-store-delivery.png │ ├── shop-availability.png │ ├── store-delivery-chooser.png │ └── User Guide-ElasticSuite for Retailer Magento 2 vf.pdf ├── .gitignore ├── ISSUE_TEMPLATE.md ├── CHANGELOG.md ├── .github └── workflows │ └── static-analysis.yaml ├── composer.json ├── README.md └── LICENCE.md /doc/static/shop-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Smile-SA/elasticsuite-for-retailer/HEAD/doc/static/shop-map.png -------------------------------------------------------------------------------- /doc/static/offer-step-one.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Smile-SA/elasticsuite-for-retailer/HEAD/doc/static/offer-step-one.png -------------------------------------------------------------------------------- /doc/static/offer-step-two.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Smile-SA/elasticsuite-for-retailer/HEAD/doc/static/offer-step-two.png -------------------------------------------------------------------------------- /doc/static/shop-offer-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Smile-SA/elasticsuite-for-retailer/HEAD/doc/static/shop-offer-list.png -------------------------------------------------------------------------------- /doc/static/home-store-delivery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Smile-SA/elasticsuite-for-retailer/HEAD/doc/static/home-store-delivery.png -------------------------------------------------------------------------------- /doc/static/shop-availability.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Smile-SA/elasticsuite-for-retailer/HEAD/doc/static/shop-availability.png -------------------------------------------------------------------------------- /doc/static/store-delivery-chooser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Smile-SA/elasticsuite-for-retailer/HEAD/doc/static/store-delivery-chooser.png -------------------------------------------------------------------------------- /doc/static/User Guide-ElasticSuite for Retailer Magento 2 vf.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Smile-SA/elasticsuite-for-retailer/HEAD/doc/static/User Guide-ElasticSuite for Retailer Magento 2 vf.pdf -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Standard composer ignored paths 2 | composer.phar 3 | /vendor/ 4 | 5 | # Standard IDEs ignored paths 6 | .metadata 7 | *.tmp 8 | *.bak 9 | *.swp 10 | *~.nib 11 | local.properties 12 | .settings/ 13 | .loadpath 14 | .project 15 | .buildpath 16 | .idea/ 17 | -------------------------------------------------------------------------------- /ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ### Preconditions 4 | 5 | 6 | 7 | Magento Version : 8 | 9 | 10 | ElasticSuite for Retailer Version : 11 | 12 | 13 | Environment : 14 | 15 | 16 | Third party modules : 17 | 18 | ### Steps to reproduce 19 | 20 | 1. 21 | 2. 22 | 3. 23 | 24 | ### Expected result 25 | 26 | 1. 27 | 28 | ### Actual result 29 | 30 | 1. [Screenshot, logs] 31 | 32 | 33 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | All notable changes to this project will be documented in this file. 4 | 5 | ## [2.4.2] - 2024-08-29 6 | [2.4.2]: https://github.com/Smile-SA/elasticsuite-for-retailer/compare/2.4.1...2.4.2 7 | 8 | - PHP 8.3 compatibility check 9 | 10 | ## 2024-05-03 11 | 12 | - Map : Fix geolocalize through header button, see https://github.com/Smile-SA/magento2-module-map/compare/2.1.0...2.1.1 13 | - Map : Add CSP whitelist 14 | - Offer : Fix extensionAttribute - Concrete return type must be specified, see https://github.com/Smile-SA/magento2-module-offer/compare/2.0.0...2.0.1 15 | - Retailer : Fix PSR-0, see https://github.com/Smile-SA/magento2-module-retailer/compare/2.0.0...2.0.1 16 | - RetailerOffer : Add modal map to product page search, see https://github.com/Smile-SA/magento2-module-retailer-offer/compare/2.0.1...2.0.2 17 | - RetailerOffer : Fix show product offer price if shop has been selected, even in Retail mode 18 | - StoreDelivery : Refactor - same search design everywhere, see https://github.com/Smile-SA/magento2-module-store-delivery/compare/2.0.0...2.0.1 19 | - StoreDelivery : Dont show store delivery shipping method if no markers found 20 | - StoreLocator : Refactor - same search design everywhere, see https://github.com/Smile-SA/magento2-module-store-locator/compare/2.2.0...2.2.1 21 | - Update contact form 22 | 23 | ## 2023-09-20 24 | 25 | Dataset compatibility Magento 2.4.6, ES 2.11.x and PHP 8.2 26 | 27 | - Fix Dynamic type declaration 28 | - Fix Type hinting 29 | - Replace `Zend_Date` by `DateTime` 30 | - Remove `MutationObserver` support 31 | - Fix UI Component Retailer Offer editing 32 | - Replace `Zend_Validate` by `Laminas\Validator` 33 | - Fix Retailer Grid Column Action 34 | - Fix Retailer Grid Mass Actions 35 | - Fix some translations 36 | - Remove Temando/Shipping Plugin 37 | -------------------------------------------------------------------------------- /.github/workflows/static-analysis.yaml: -------------------------------------------------------------------------------- 1 | name: 'Static Analysis' 2 | 3 | on: 4 | pull_request: ~ 5 | push: 6 | branches: 7 | - 'master' 8 | 9 | jobs: 10 | static-analysis: 11 | runs-on: 'ubuntu-latest' 12 | 13 | strategy: 14 | matrix: 15 | php-version: 16 | - '8.1' 17 | 18 | steps: 19 | - name: 'Checkout' 20 | uses: 'actions/checkout@v3' 21 | 22 | - name: 'Install PHP' 23 | uses: 'shivammathur/setup-php@v2' 24 | with: 25 | php-version: '${{ matrix.php-version }}' 26 | coverage: 'none' 27 | tools: 'composer:v2' 28 | env: 29 | COMPOSER_AUTH_JSON: | 30 | { 31 | "http-basic": { 32 | "repo.magento.com": { 33 | "username": "${{ secrets.MAGENTO_USERNAME }}", 34 | "password": "${{ secrets.MAGENTO_PASSWORD }}" 35 | } 36 | } 37 | } 38 | 39 | - name: 'Get composer cache directory' 40 | id: 'composer-cache' 41 | run: 'echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT' 42 | 43 | - name: 'Cache dependencies' 44 | uses: 'actions/cache@v3' 45 | with: 46 | path: '${{ steps.composer-cache.outputs.dir }}' 47 | key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} 48 | restore-keys: '${{ runner.os }}-composer-' 49 | 50 | - name: 'Install dependencies' 51 | run: 'composer install --prefer-dist' 52 | 53 | - name: 'Run composer audit' 54 | run: 'composer audit --format=plain' 55 | 56 | - name: 'Run Parallel Lint' 57 | run: 'vendor/bin/parallel-lint --exclude vendor .' 58 | 59 | - name: 'Run PHP CodeSniffer' 60 | run: 'vendor/bin/phpcs --extensions=php,phtml' 61 | 62 | - name: 'Run PHPMD' 63 | run: 'vendor/bin/phpmd . xml phpmd.xml.dist' 64 | 65 | - name: 'Run PHPStan' 66 | run: 'vendor/bin/phpstan analyse' 67 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "smile/elasticsuite-for-retailer", 3 | "type": "metapackage", 4 | "license": "OSL-3.0", 5 | "authors": [ 6 | { 7 | "name": "Aurélien FOUCRET", 8 | "email": "aurelien.foucret@smile.fr" 9 | }, 10 | { 11 | "name": "Romain RUAUD", 12 | "email": "romain.ruaud@smile.fr" 13 | } 14 | ], 15 | "description": "Smile ElasticSuite for Retailers - Magento2 toolkit for Retailers : Store Locator, Availability and Prices per store, etc...", 16 | "homepage": "https://github.com/Smile-SA/elasticsuite-retailers", 17 | "keywords": [ 18 | "magento", 19 | "magento2", 20 | "elasticsearch", 21 | "search", 22 | "merchandising", 23 | "retailer", 24 | "store locator" 25 | ], 26 | "repositories": [ 27 | { 28 | "type": "composer", 29 | "url": "https://repo.magento.com/" 30 | } 31 | ], 32 | "require": { 33 | "php": "^8.1", 34 | "magento/framework": ">=103.0.4", 35 | "magento/magento-composer-installer": "*", 36 | "smile/elasticsuite": "^2.11", 37 | "smile/module-map": "^2.1", 38 | "smile/module-offer": "^2.0", 39 | "smile/module-retailer": "^2.0", 40 | "smile/module-retailer-offer": "^2.0", 41 | "smile/module-seller": "^2.0", 42 | "smile/module-store-delivery": "^2.0", 43 | "smile/module-store-locator": "^2.2" 44 | }, 45 | "require-dev": { 46 | "smile/magento2-smilelab-quality-suite": "^3.0" 47 | }, 48 | "suggest": { 49 | "smile/module-retailer-offer-inventory": "Add inventory management by offers", 50 | "smile/module-retailer-elasticsuite-search": "Index retailers into the search engine and display them into autocomplete and search result.", 51 | "smile/module-retailer-service": "Add the ability to add services per retailer", 52 | "smile/module-retailer-promotion": "Add the ability to add promotion per retailer", 53 | "smile/module-retailer-admin": "Add the ability to manage ACL in admin panel per retailer" 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## News 2 | 3 | ### Compatibility 4 | 5 | Due to all new paradigms introduced by Magento 2.1 (entity manager, forms based on UI components, staging for the EE edition, ...), the **required minimum version of Magento for using this module is Magento 2.1** 6 | 7 | If your project is based on Magento 2.1.x you can start working with ElasticSuite for Retailer today using the latest **1.2.0-alpha1 release**. 8 | 9 | This module support PHP 8.3 10 | 11 | ### Requirements 12 | 13 | The module requires: 14 | 15 | - [ElasticSuite](https://github.com/Smile-SA/elasticsuite) > 2.11.* 16 | - [Offer](https://github.com/Smile-SA/magento2-module-offer) > 2.0.* 17 | - [Seller](https://github.com/Smile-SA/magento2-module-seller) > 2.0.* 18 | - [Retailer](https://github.com/Smile-SA/magento2-module-retailer) > 2.0.* 19 | - [Store Locator](https://github.com/Smile-SA/magento2-module-store-locator) > 2.2.* 20 | - [Retailer Offer](https://github.com/Smile-SA/magento2-module-retailer-offer) > 2.0.* 21 | - [Store Delivery](https://github.com/Smile-SA/magento2-module-store-delivery) > 2.0.* 22 | 23 | It's a toolkit module to install the RetailerSuite modules. 24 | 25 | ### How to use 26 | 27 | 1. Install the module via Composer: 28 | 29 | 30 | ElasticSuite Version | Module Version 31 | -----------------------|------------------------------------------------------------------------ 32 | ElasticSuite **2.1.x** |Latest release: ```composer require smile/elasticsuite-for-retailer:"^1.4"``` 33 | ElasticSuite **2.3.x** |Latest release: ```composer require smile/elasticsuite-for-retailer:"^1.4"``` 34 | ElasticSuite **2.6.x** |Latest release: ```composer require smile/elasticsuite-for-retailer:"^1.4"``` 35 | ElasticSuite **2.7.x** |Latest release: ```composer require smile/elasticsuite-for-retailer:"~1.5.0"``` 36 | ElasticSuite **2.8.x** |Latest release: ```composer require smile/elasticsuite-for-retailer:"~1.6.0"``` 37 | ElasticSuite **2.9.x** |Latest release: ```composer require smile/elasticsuite-for-retailer:"~2.2.0"``` 38 | ElasticSuite **2.11.x** |Latest release: ```composer require smile/elasticsuite-for-retailer:"~2.3.0"``` 39 | ElasticSuite **2.11.x** |Latest release: ```composer require smile/elasticsuite-for-retailer:"~2.4.0"``` 40 | 41 | 2. Enable it: 42 | 43 | ``` bin/magento module:enable Smile_Offer ``` 44 | 45 | ``` bin/magento module:enable Smile_Seller ``` 46 | 47 | ``` bin/magento module:enable Smile_Retailer ``` 48 | 49 | ``` bin/magento module:enable Smile_StoreLocator ``` 50 | 51 | ``` bin/magento module:enable Smile_RetailerOffer ``` 52 | 53 | ``` bin/magento module:enable Smile_StoreDelivery ``` 54 | 55 | 3. Optionnal: Drop old SMILE_RETAILER_ADDRESS_RETAILER_ID unique key 56 | 57 | _if you already used older retailersuite modules on your projects, and you want to upgrade it,_ 58 | _before upgrading, you will have to DROP your current UNIQUE KEY from table smile_retailer_address : SMILE_RETAILER_ADDRESS_RETAILER_ID_ 59 | _This is necessary in order to get a db_schema.xml working correctly._ 60 | 61 | ``` ALTER TABLE smile_retailer_address DROP INDEX SMILE_RETAILER_ADDRESS_RETAILER_ID ``` 62 | 63 | 4. Install the module and rebuild the DI cache: 64 | 65 | ``` bin/magento setup:upgrade ``` 66 | 67 | ## How to configure 68 | 69 | > Stores > Configuration > Elasticsuite > Elastic Suite for Retailer 70 | 71 | Navigation mode: Retailer/Drive 72 | * Drive mode: the customer will only see the catalog of the chosen retailer in Front Office. 73 | * Retail mode: the customer will browse the Web catalog by default. 74 | Display offers on product page: Yes/No (When enabled, offers of all stores will be displayed on product page.) 75 | 76 | ## What is ElasticSuite for Retailers ? 77 | 78 | This package is a suite of several modules aiming to help merchants dealing with retail and omnichannel mechanics in Magento 2 (Store Locator, Product availability/price per store, pickup in store, etc...). 79 | 80 | The package relies on our custom Search and Merchandising tool called ElasticSuite which can be found [here](https://github.com/Smile-SA/elasticsuite). 81 | 82 | For more information, read the User Guide "Smile ElasticSuite for retailer". It's available [here](https://github.com/vipra93/elasticsuite-for-retailer/blob/master/doc/static/User%20Guide%20Smile%20ElasticSuite%20for%20Retailer%20Magento%202%20v1.pdf). 83 | 84 | ## Who is developping ElasticSuite for Retailer ? 85 | 86 |
89 | 90 | SmileLab is the innovation and experimentation department of Smile. Smile is the **European leader of Open Source** and also a four-times **Europe Partner of the the Year** (2010-2014) and two-times **Spirit of Excellence** (2015-2016) awarded by Magento. 91 | 92 | Our multidisciplinary team brings together experts in technology, innovation, and new applications. 93 | 94 | Together we explore, invent, and test technologies of the future, to better serve our clients. 95 | 96 | ## Main Features 97 | 98 | ### Current version 99 | 100 | The current **2.4.0** version has been focused on compatibility with Magento 2.4.6: 101 | 102 |
124 |
125 |
126 |
131 |
132 |
139 |
140 |
147 |
148 |
154 |
155 |