diff --git a/composer.json b/composer.json index 30ddfda7b..875f1f60a 100644 --- a/composer.json +++ b/composer.json @@ -53,6 +53,7 @@ "smile/module-elasticsuite-explain": "self.version", "smile/module-elasticsuite-facet-recommender": "self.version", "smile/module-elasticsuite-instant-search": "self.version", + "smile/module-elasticsuite-layered-navigation": "self.version", "smile/module-elasticsuite-merchandiser": "self.version", "smile/module-elasticsuite-merchandising-gauge": "self.version", "smile/module-elasticsuite-recommender": "self.version", @@ -78,6 +79,7 @@ "src/module-elasticsuite-explain/registration.php", "src/module-elasticsuite-facet-recommender/registration.php", "src/module-elasticsuite-instant-search/registration.php", + "src/module-elasticsuite-layered-navigation/registration.php", "src/module-elasticsuite-merchandiser/registration.php", "src/module-elasticsuite-merchandising-gauge/registration.php", "src/module-elasticsuite-recommender/registration.php", @@ -99,6 +101,7 @@ "Smile\\ElasticsuiteExplain\\": "src/module-elasticsuite-explain", "Smile\\ElasticsuiteFacetRecommender\\": "src/module-elasticsuite-facet-recommender", "Smile\\ElasticsuiteInstantSearch\\": "src/module-elasticsuite-instant-search", + "Smile\\ElasticsuiteLayeredNavigation\\": "src/module-elasticsuite-layered-navigation", "Smile\\ElasticsuiteMerchandiser\\": "src/module-elasticsuite-merchandiser", "Smile\\ElasticsuiteMerchandisingGauge\\": "src/module-elasticsuite-merchandising-gauge", "Smile\\ElasticsuiteRecommender\\": "src/module-elasticsuite-recommender", diff --git a/src/module-elasticsuite-ab-campaign/Block/Tracker/Variables/Page/Campaign.php b/src/module-elasticsuite-ab-campaign/Block/Tracker/Variables/Page/Campaign.php index 75691ca8e..b2051a5b8 100644 --- a/src/module-elasticsuite-ab-campaign/Block/Tracker/Variables/Page/Campaign.php +++ b/src/module-elasticsuite-ab-campaign/Block/Tracker/Variables/Page/Campaign.php @@ -9,7 +9,8 @@ * @package Smile\ElasticsuiteAbCampaign * @author Botis * @copyright 2021 Smile - * @license Open Software License ("OSL") v. 3.0 + * @license * @license Licensed to Smile-SA. All rights reserved. No warranty, explicit or implicit, provided. +* Unauthorized copying of this file, via any medium, is strictly prohibited. */ namespace Smile\ElasticsuiteAbCampaign\Block\Tracker\Variables\Page; diff --git a/src/module-elasticsuite-ab-campaign/Cron/CampaignAggregator.php b/src/module-elasticsuite-ab-campaign/Cron/CampaignAggregator.php index 10a847bc5..a0bbf5bf5 100644 --- a/src/module-elasticsuite-ab-campaign/Cron/CampaignAggregator.php +++ b/src/module-elasticsuite-ab-campaign/Cron/CampaignAggregator.php @@ -9,7 +9,8 @@ * @package Smile\ElasticsuiteAbCampaign * @author Botis * @copyright 2021 Smile -* @license Open Software License ("OSL") v. 3.0 +* @license Licensed to Smile-SA. All rights reserved. No warranty, explicit or implicit, provided. +* Unauthorized copying of this file, via any medium, is strictly prohibited. */ namespace Smile\ElasticsuiteAbCampaign\Cron; diff --git a/src/module-elasticsuite-configurable-product/Model/Search/Configurable/BestPerformingChildrenProvider.php b/src/module-elasticsuite-configurable-product/Model/Search/Configurable/BestPerformingChildrenProvider.php index 3621641d8..612e36fa3 100644 --- a/src/module-elasticsuite-configurable-product/Model/Search/Configurable/BestPerformingChildrenProvider.php +++ b/src/module-elasticsuite-configurable-product/Model/Search/Configurable/BestPerformingChildrenProvider.php @@ -9,7 +9,8 @@ * @package Smile\ElasticsuiteConfigurableProduct * @author Botis * @copyright 2021 Smile - * @license Open Software License ("OSL") v. 3.0 + * @license Licensed to Smile-SA. All rights reserved. No warranty, explicit or implicit, provided. + * Unauthorized copying of this file, via any medium, is strictly prohibited. */ namespace Smile\ElasticsuiteConfigurableProduct\Model\Search\Configurable; diff --git a/src/module-elasticsuite-configurable-product/Plugin/Block/Product/ImageFactory.php b/src/module-elasticsuite-configurable-product/Plugin/Block/Product/ImageFactory.php index 3d9df3ef0..d31713121 100644 --- a/src/module-elasticsuite-configurable-product/Plugin/Block/Product/ImageFactory.php +++ b/src/module-elasticsuite-configurable-product/Plugin/Block/Product/ImageFactory.php @@ -8,7 +8,8 @@ * @package Smile\ElasticsuiteConfigurableProduct * @author Botis * @copyright 2021 Smile - * @license Open Software License ("OSL") v. 3.0 + * @license Licensed to Smile-SA. All rights reserved. No warranty, explicit or implicit, provided. + * Unauthorized copying of this file, via any medium, is strictly prohibited. */ namespace Smile\ElasticsuiteConfigurableProduct\Plugin\Block\Product; diff --git a/src/module-elasticsuite-configurable-product/Plugin/Block/Product/ListProduct.php b/src/module-elasticsuite-configurable-product/Plugin/Block/Product/ListProduct.php index 74a2e34a4..647c705c8 100644 --- a/src/module-elasticsuite-configurable-product/Plugin/Block/Product/ListProduct.php +++ b/src/module-elasticsuite-configurable-product/Plugin/Block/Product/ListProduct.php @@ -8,7 +8,8 @@ * @package Smile\ElasticsuiteConfigurableProduct * @author Botis * @copyright 2021 Smile - * @license Open Software License ("OSL") v. 3.0 + * @license Licensed to Smile-SA. All rights reserved. No warranty, explicit or implicit, provided. + * Unauthorized copying of this file, via any medium, is strictly prohibited. */ namespace Smile\ElasticsuiteConfigurableProduct\Plugin\Block\Product; diff --git a/src/module-elasticsuite-configurable-product/Plugin/Model/Resolver/Product/ProductImage.php b/src/module-elasticsuite-configurable-product/Plugin/Model/Resolver/Product/ProductImage.php index eb2d41a38..ce1088ccf 100644 --- a/src/module-elasticsuite-configurable-product/Plugin/Model/Resolver/Product/ProductImage.php +++ b/src/module-elasticsuite-configurable-product/Plugin/Model/Resolver/Product/ProductImage.php @@ -8,7 +8,8 @@ * @package Smile\ElasticsuiteConfigurableProduct * @author Botis * @copyright 2021 Smile - * @license Open Software License ("OSL") v. 3.0 + * @license Licensed to Smile-SA. All rights reserved. No warranty, explicit or implicit, provided. + * Unauthorized copying of this file, via any medium, is strictly prohibited. */ namespace Smile\ElasticsuiteConfigurableProduct\Plugin\Model\Resolver\Product; diff --git a/src/module-elasticsuite-configurable-product/Plugin/Model/Resolver/Products.php b/src/module-elasticsuite-configurable-product/Plugin/Model/Resolver/Products.php index 664dd6093..650694048 100644 --- a/src/module-elasticsuite-configurable-product/Plugin/Model/Resolver/Products.php +++ b/src/module-elasticsuite-configurable-product/Plugin/Model/Resolver/Products.php @@ -8,7 +8,8 @@ * @package Smile\ElasticsuiteConfigurableProduct * @author Botis * @copyright 2021 Smile - * @license Open Software License ("OSL") v. 3.0 + * @license Licensed to Smile-SA. All rights reserved. No warranty, explicit or implicit, provided. + * Unauthorized copying of this file, via any medium, is strictly prohibited. */ namespace Smile\ElasticsuiteConfigurableProduct\Plugin\Model\Resolver; diff --git a/src/module-elasticsuite-configurable-product/README.md b/src/module-elasticsuite-configurable-product/README.md index 1409dc670..b4b52fe63 100644 --- a/src/module-elasticsuite-configurable-product/README.md +++ b/src/module-elasticsuite-configurable-product/README.md @@ -9,7 +9,7 @@ The module version patterns are identical to those of Elasticsuite. Magento Version | ElasticSuite Version | Module version | Module composer install | Supported Elasticsearch Version | Actively maintained ----------------------------------------------------|-------------------------|----------------|----------------------------------------------------------------------|---------------------------------|--------------------- -Magento **<2.3.5** Opensource (CE) / Commerce (EE) | ElasticSuite **2.8.x** | **2.8.x** | ```composer require smile/module-elasticsuite-ab-campaign ~2.8.0``` | 5.x & 6.x | No -Magento **>=2.3.5** Opensource (CE) / Commerce (EE) | ElasticSuite **2.9.x** | **2.9.x** | ```composer require smile/module-elasticsuite-ab-campaign ~2.9.0``` | 6.x & 7.x | **Yes** -Magento **>=2.4.1** Opensource (CE) / Commerce (EE) | ElasticSuite **2.10.x** | **2.10.x** | ```composer require smile/module-elasticsuite-ab-campaign ~2.10.0``` | 6.x & 7.x | **Yes** +Magento **<2.3.5** Opensource (CE) / Commerce (EE) | ElasticSuite **2.8.x** | **2.8.x** | ```composer require smile/module-elasticsuite-configurable-product ~2.8.0``` | 5.x & 6.x | No +Magento **>=2.3.5** Opensource (CE) / Commerce (EE) | ElasticSuite **2.9.x** | **2.9.x** | ```composer require smile/module-elasticsuite-configurable-product ~2.9.0``` | 6.x & 7.x | **Yes** +Magento **>=2.4.1** Opensource (CE) / Commerce (EE) | ElasticSuite **2.10.x** | **2.10.x** | ```composer require smile/module-elasticsuite-configurable-product ~2.10.0``` | 6.x & 7.x | **Yes** diff --git a/src/module-elasticsuite-configurable-product/etc/adminhtml/system.xml b/src/module-elasticsuite-configurable-product/etc/adminhtml/system.xml index 625e9411e..9c273e9af 100644 --- a/src/module-elasticsuite-configurable-product/etc/adminhtml/system.xml +++ b/src/module-elasticsuite-configurable-product/etc/adminhtml/system.xml @@ -11,7 +11,8 @@ * @package Smile\ElasticsuiteConfigurableProduct * @author Botis * @copyright 2021 Smile - * @license Open Software License ("OSL") v. 3.0 + * @license Licensed to Smile-SA. All rights reserved. No warranty, explicit or implicit, provided. +* Unauthorized copying of this file, via any medium, is strictly prohibited. */ --> diff --git a/src/module-elasticsuite-configurable-product/etc/elasticsuite_search_request.xml b/src/module-elasticsuite-configurable-product/etc/elasticsuite_search_request.xml index 9f23db396..a16cdfbf8 100644 --- a/src/module-elasticsuite-configurable-product/etc/elasticsuite_search_request.xml +++ b/src/module-elasticsuite-configurable-product/etc/elasticsuite_search_request.xml @@ -12,7 +12,8 @@ * @package Smile\ElasticsuiteConfigurableProduct * @author Botis * @copyright 2021 Smile - * @license Open Software License ("OSL") v. 3.0 + * @license Licensed to Smile-SA. All rights reserved. No warranty, explicit or implicit, provided. +* Unauthorized copying of this file, via any medium, is strictly prohibited. */ --> * @copyright 2021 Smile - * @license Open Software License ("OSL") v. 3.0 + * @license Licensed to Smile-SA. All rights reserved. No warranty, explicit or implicit, provided. + * Unauthorized copying of this file, via any medium, is strictly prohibited. */ namespace Smile\ElasticsuiteExplain\Plugin; diff --git a/src/module-elasticsuite-explain/view/adminhtml/requirejs-config.js b/src/module-elasticsuite-explain/view/adminhtml/requirejs-config.js index 759810542..d4bb1c634 100644 --- a/src/module-elasticsuite-explain/view/adminhtml/requirejs-config.js +++ b/src/module-elasticsuite-explain/view/adminhtml/requirejs-config.js @@ -8,7 +8,8 @@ * @package Smile\ElasticsuiteExplain * @author Botis * @copyright 2021 Smile - * @license Open Software License ("OSL") v. 3.0 + * @license Licensed to Smile-SA. All rights reserved. No warranty, explicit or implicit, provided. + * Unauthorized copying of this file, via any medium, is strictly prohibited. */ var config = { diff --git a/src/module-elasticsuite-layered-navigation/.gitignore b/src/module-elasticsuite-layered-navigation/.gitignore new file mode 100644 index 000000000..19ad64484 --- /dev/null +++ b/src/module-elasticsuite-layered-navigation/.gitignore @@ -0,0 +1,16 @@ +# Standard composer ignored paths +composer.phar +/vendor/ + +# Standard IDEs ignored paths +.metadata +*.tmp +*.bak +*.swp +*~.nib +local.properties +.settings/ +.loadpath +.project +.buildpath +.idea diff --git a/src/module-elasticsuite-layered-navigation/Model/LayeredNavAttribute/IsDiscounted.php b/src/module-elasticsuite-layered-navigation/Model/LayeredNavAttribute/IsDiscounted.php new file mode 100644 index 000000000..be75548e7 --- /dev/null +++ b/src/module-elasticsuite-layered-navigation/Model/LayeredNavAttribute/IsDiscounted.php @@ -0,0 +1,85 @@ + + * @copyright 2021 Smile + * @license Licensed to Smile-SA. All rights reserved. No warranty, explicit or implicit, provided. + * Unauthorized copying of this file, via any medium, is strictly prohibited. + */ +namespace Smile\ElasticsuiteLayeredNavigation\Model\LayeredNavAttribute; + +use Magento\Customer\Model\Session as CustomerSession; +use Smile\ElasticsuiteCatalog\Api\LayeredNavAttributeInterface; + +/** + * IsDiscounted class. + * + * @category Smile + * @package Smile\ElasticsuiteLayeredNavigation + * @author Botis + */ +class IsDiscounted implements LayeredNavAttributeInterface +{ + /** + * @var string + */ + public const ATTRIBUTE_CODE = 'es_is_discounted'; + + /** + * @var CustomerSession + */ + protected $customerSession; + + /** + * IsDiscount constructor. + * + * @param CustomerSession $customerSession Customer session. + */ + public function __construct( + CustomerSession $customerSession + ) { + $this->customerSession = $customerSession; + } + + /** + * {@inheritdoc} + */ + public function getAttributeCode(): string + { + return self::ATTRIBUTE_CODE; + } + + /** + * {@inheritdoc} + */ + public function getFilterField(): string + { + return 'price.is_discount'; + } + + /** + * {@inheritdoc} + */ + public function getAdditionalAggregationData(): array + { + $customerGroupId = $this->customerSession->getCustomerGroupId(); + + return [ + 'nestedFilter' => ['price.customer_group_id' => $customerGroupId], 'minDocCount' => 1, + ]; + } + + /** + * {@inheritdoc} + */ + public function skipAttribute(): bool + { + return false; + } +} diff --git a/src/module-elasticsuite-layered-navigation/Model/LayeredNavAttribute/IsInStock.php b/src/module-elasticsuite-layered-navigation/Model/LayeredNavAttribute/IsInStock.php new file mode 100644 index 000000000..671dbc34e --- /dev/null +++ b/src/module-elasticsuite-layered-navigation/Model/LayeredNavAttribute/IsInStock.php @@ -0,0 +1,82 @@ + + * @copyright 2021 Smile + * @license Licensed to Smile-SA. All rights reserved. No warranty, explicit or implicit, provided. + * Unauthorized copying of this file, via any medium, is strictly prohibited. + */ +namespace Smile\ElasticsuiteLayeredNavigation\Model\LayeredNavAttribute; + +use Magento\Framework\App\Config\ScopeConfigInterface; +use Smile\ElasticsuiteCatalog\Api\LayeredNavAttributeInterface; +use Magento\CatalogInventory\Model\Configuration as CatalogInventoryConfiguration; + +/** + * IsInStock class. + * + * @category Smile + * @package Smile\ElasticsuiteLayeredNavigation + * @author Botis + */ +class IsInStock implements LayeredNavAttributeInterface +{ + /** + * @var string + */ + public const ATTRIBUTE_CODE = 'es_is_in_stock'; + + /** + * @var ScopeConfigInterface + */ + protected $scopeConfig; + + /** + * IsInStock constructor. + * + * @param ScopeConfigInterface $scopeConfig Scope config. + */ + public function __construct( + ScopeConfigInterface $scopeConfig + ) { + $this->scopeConfig = $scopeConfig; + } + + /** + * {@inheritdoc} + */ + public function getAttributeCode(): string + { + return self::ATTRIBUTE_CODE; + } + + /** + * {@inheritdoc} + */ + public function getFilterField(): string + { + return 'stock.is_in_stock'; + } + + /** + * {@inheritdoc} + */ + public function getAdditionalAggregationData(): array + { + return []; + } + + /** + * {@inheritdoc} + */ + public function skipAttribute(): bool + { + return !(bool) $this->scopeConfig->getValue(CatalogInventoryConfiguration::XML_PATH_SHOW_OUT_OF_STOCK); + } +} diff --git a/src/module-elasticsuite-layered-navigation/README.md b/src/module-elasticsuite-layered-navigation/README.md new file mode 100644 index 000000000..3d5321222 --- /dev/null +++ b/src/module-elasticsuite-layered-navigation/README.md @@ -0,0 +1,15 @@ +## README + +Readme for the whole Smile ElasticSuite is available [here](https://github.com/Smile-SA/elasticsuite). + + +**Which version should I use ?** + +The module version patterns are identical to those of Elasticsuite. + +Magento Version | ElasticSuite Version | Module version | Module composer install | Supported Elasticsearch Version | Actively maintained +----------------------------------------------------|-------------------------|----------------|----------------------------------------------------------------------|---------------------------------|--------------------- +Magento **<2.3.5** Opensource (CE) / Commerce (EE) | ElasticSuite **2.8.x** | **2.8.x** | ```composer require smile/module-elasticsuite-layered-navigation ~2.8.0``` | 5.x & 6.x | No +Magento **>=2.3.5** Opensource (CE) / Commerce (EE) | ElasticSuite **2.9.x** | **2.9.x** | ```composer require smile/module-elasticsuite-layered-navigation ~2.9.0``` | 6.x & 7.x | **Yes** +Magento **>=2.4.1** Opensource (CE) / Commerce (EE) | ElasticSuite **2.10.x** | **2.10.x** | ```composer require smile/module-elasticsuite-layered-navigation ~2.10.0``` | 6.x & 7.x | **Yes** + diff --git a/src/module-elasticsuite-layered-navigation/Setup/InstallData.php b/src/module-elasticsuite-layered-navigation/Setup/InstallData.php new file mode 100644 index 000000000..88d411453 --- /dev/null +++ b/src/module-elasticsuite-layered-navigation/Setup/InstallData.php @@ -0,0 +1,68 @@ + + * @copyright 2021 Smile + * @license Licensed to Smile-SA. All rights reserved. No warranty, explicit or implicit, provided. + * Unauthorized copying of this file, via any medium, is strictly prohibited. + */ +namespace Smile\ElasticsuiteLayeredNavigation\Setup; + +use Magento\Framework\Setup\InstallDataInterface; +use Magento\Framework\Setup\ModuleContextInterface; +use Magento\Framework\Setup\ModuleDataSetupInterface; +use Magento\Eav\Setup\EavSetupFactory; + +/** + * ElasticsuiteLayeredNavigation Install Data Script. + * + * @category Smile + * @package Smile\ElasticsuiteLayeredNavigation + * @author Botis + */ +class InstallData implements InstallDataInterface +{ + /** + * @var EavSetupFactory + */ + private $eavSetupFactory; + + /** + * @var LayeredNavigationSetup + */ + private $layeredNavigationSetup; + + /** + * InstallData constructor. + * + * @param EavSetupFactory $eavSetupFactory EAV Setup Factory. + * @param LayeredNavigationSetup $layeredNavigationSetup Layered navigation setup. + */ + public function __construct( + EavSetupFactory $eavSetupFactory, + LayeredNavigationSetup $layeredNavigationSetup + ) { + $this->eavSetupFactory = $eavSetupFactory; + $this->layeredNavigationSetup = $layeredNavigationSetup; + } + + /** + * {@inheritdoc} + */ + public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context) + { + $setup->startSetup(); + + $eavSetup = $this->eavSetupFactory->create(['setup' => $setup]); + + $this->layeredNavigationSetup->createEsIsInStockAttribute($eavSetup); + $this->layeredNavigationSetup->createIsDiscountedAttribute($eavSetup); + + $setup->endSetup(); + } +} diff --git a/src/module-elasticsuite-layered-navigation/Setup/LayeredNavigationSetup.php b/src/module-elasticsuite-layered-navigation/Setup/LayeredNavigationSetup.php new file mode 100644 index 000000000..fad1b2b74 --- /dev/null +++ b/src/module-elasticsuite-layered-navigation/Setup/LayeredNavigationSetup.php @@ -0,0 +1,106 @@ + + * @copyright 2021 Smile + * @license Licensed to Smile-SA. All rights reserved. No warranty, explicit or implicit, provided. + * Unauthorized copying of this file, via any medium, is strictly prohibited. + */ + +namespace Smile\ElasticsuiteLayeredNavigation\Setup; + +use Magento\Catalog\Api\Data\ProductAttributeInterface; +use Magento\Eav\Setup\EavSetup; +use Magento\Eav\Model\Entity\Attribute\ScopedAttributeInterface; +use Smile\ElasticsuiteLayeredNavigation\Model\LayeredNavAttribute\IsInStock; +use Smile\ElasticsuiteLayeredNavigation\Model\LayeredNavAttribute\IsDiscounted; + +/** + * ElasticsuiteLayeredNavigation Setup + * + * @category Smile + * @package Smile\ElasticsuiteLayeredNavigation + * @author Botis + */ +class LayeredNavigationSetup +{ + /** + * Create elastic suite is in stock attribute. + * + * @param EavSetup $eavSetup EAV module Setup + */ + public function createEsIsInStockAttribute(EavSetup $eavSetup): void + { + $attributeData = [ + 'attribute_code' => IsInStock::ATTRIBUTE_CODE, + 'label' => 'In stock', + 'sort_order' => 300, + ]; + $this->createBooleanAttribute($eavSetup, $attributeData); + } + + /** + * Create elastic suite is in promo attribute. + * + * @param EavSetup $eavSetup EAV module Setup + */ + public function createIsDiscountedAttribute(EavSetup $eavSetup): void + { + $attributeData = [ + 'attribute_code' => IsDiscounted::ATTRIBUTE_CODE, + 'label' => 'Discounted', + 'sort_order' => 400, + ]; + $this->createBooleanAttribute($eavSetup, $attributeData); + } + + /** + * Create a boolean attribute. + * + * @param EavSetup $eavSetup EAV module Setup. + * @param array $attributeData Attribute data. + */ + protected function createBooleanAttribute(EavSetup $eavSetup, array $attributeData): void + { + $entity = ProductAttributeInterface::ENTITY_TYPE_CODE; + $eavSetup->addAttribute( + $entity, + $attributeData['attribute_code'], + [ + 'type' => 'int', + 'label' => $attributeData['label'], + 'input' => 'boolean', + 'system' => true, + 'source' => 'Magento\Eav\Model\Entity\Attribute\Source\Boolean', + 'global' => ScopedAttributeInterface::SCOPE_STORE, + 'required' => false, + 'default' => 0, + 'visible' => false, + 'sort_order' => $attributeData['sort_order'], + 'visible_on_front' => 0, + 'searchable' => 0, + 'visible_in_advanced_search' => 0, + 'filterable' => 1, + 'filterable_in_search' => 1, + 'is_used_in_grid' => 0, + 'is_visible_in_grid' => 0, + 'is_filterable_in_grid' => 0, + 'used_for_sort_by' => 0, + ] + ); + + $attributeId = $eavSetup->getAttributeId($entity, $attributeData['attribute_code']); + if ($attributeId) { + $attributeSetIds = $eavSetup->getAllAttributeSetIds($entity); + foreach ($attributeSetIds as $attributeSetId) { + $defaultGroupId = $eavSetup->getDefaultAttributeGroupId($entity, $attributeSetId); + $eavSetup->addAttributeToSet($entity, $attributeSetId, $defaultGroupId, $attributeId); + } + } + } +} diff --git a/src/module-elasticsuite-layered-navigation/composer.json b/src/module-elasticsuite-layered-navigation/composer.json new file mode 100644 index 000000000..d4b8aeb96 --- /dev/null +++ b/src/module-elasticsuite-layered-navigation/composer.json @@ -0,0 +1,33 @@ +{ + "name": "smile/module-elasticsuite-layered-navigation", + "type": "magento2-module", + "license": "proprietary", + "authors": [ + { + "name": "Botis", + "email": "botis@smile.fr" + } + ], + "description": "ElasticSuite - Layered navigation module.", + "homepage": "https://elasticsuite.io", + "keywords": [ + "magento", + "magento2", + "elasticsearch", + "search", + "merchandising", + "core", + "setup" + ], + "require": { + "smile/elasticsuite" : "~2.8.0" + }, + "autoload": { + "files": [ + "registration.php" + ], + "psr-4": { + "Smile\\ElasticsuiteLayeredNavigation\\": "" + } + } +} diff --git a/src/module-elasticsuite-layered-navigation/etc/di.xml b/src/module-elasticsuite-layered-navigation/etc/di.xml new file mode 100644 index 000000000..b9967d795 --- /dev/null +++ b/src/module-elasticsuite-layered-navigation/etc/di.xml @@ -0,0 +1,34 @@ + + + + + + + Smile\ElasticsuiteLayeredNavigation\Model\LayeredNavAttribute\IsInStock + Smile\ElasticsuiteLayeredNavigation\Model\LayeredNavAttribute\IsDiscounted + + + + + + + Magento\Customer\Model\Session\Proxy + + + diff --git a/src/module-elasticsuite-layered-navigation/etc/module.xml b/src/module-elasticsuite-layered-navigation/etc/module.xml new file mode 100644 index 000000000..2a0b3612c --- /dev/null +++ b/src/module-elasticsuite-layered-navigation/etc/module.xml @@ -0,0 +1,26 @@ + + + + + + + + + diff --git a/src/module-elasticsuite-layered-navigation/i18n/en_US.csv b/src/module-elasticsuite-layered-navigation/i18n/en_US.csv new file mode 100644 index 000000000..3b2e215a6 --- /dev/null +++ b/src/module-elasticsuite-layered-navigation/i18n/en_US.csv @@ -0,0 +1 @@ +"Discounted","Discounted" diff --git a/src/module-elasticsuite-layered-navigation/i18n/fr_FR.csv b/src/module-elasticsuite-layered-navigation/i18n/fr_FR.csv new file mode 100644 index 000000000..432550e3e --- /dev/null +++ b/src/module-elasticsuite-layered-navigation/i18n/fr_FR.csv @@ -0,0 +1 @@ +"Discounted","En promotion" diff --git a/src/module-elasticsuite-layered-navigation/registration.php b/src/module-elasticsuite-layered-navigation/registration.php new file mode 100644 index 000000000..7899abb4c --- /dev/null +++ b/src/module-elasticsuite-layered-navigation/registration.php @@ -0,0 +1,21 @@ + + * @copyright 2021 Smile + * @license Licensed to Smile-SA. All rights reserved. No warranty, explicit or implicit, provided. + * Unauthorized copying of this file, via any medium, is strictly prohibited. + */ + +\Magento\Framework\Component\ComponentRegistrar::register( + \Magento\Framework\Component\ComponentRegistrar::MODULE, + 'Smile_ElasticsuiteLayeredNavigation', + __DIR__ +);