Skip to content

Commit

Permalink
MSI-2826-Hide-store-pickup-during-order-submissions-if-one-of-the-pro…
Browse files Browse the repository at this point in the history
…ducts-is-not-available-for-pickup.

Remove extension attributes from filter group.
Add extension attributes to search request.
  • Loading branch information
oleksandrkravchuk committed Mar 8, 2020
1 parent 2d5b329 commit d7d3fff
Show file tree
Hide file tree
Showing 7 changed files with 49 additions and 87 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,13 @@ public function resolve(
SearchRequestInterface $searchRequest,
SearchCriteriaBuilderDecorator $searchCriteriaBuilder
): void {
if (!$searchRequest->getFilters()
|| !$searchRequest->getFilters()->getExtensionAttributes()
|| !$searchRequest->getFilters()->getExtensionAttributes()->getProductsInfo()
if (!$searchRequest->getExtensionAttributes()
|| !$searchRequest->getExtensionAttributes()->getProductsInfo()
) {
return;
}

$extensionAttributes = $searchRequest->getFilters()->getExtensionAttributes();
$extensionAttributes = $searchRequest->getExtensionAttributes();
$skus = [];
foreach ($extensionAttributes->getProductsInfo() as $item) {
$skus[] = $item->getSku();
Expand Down
10 changes: 1 addition & 9 deletions InventoryInStorePickup/Model/SearchRequest/Filters.php
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,6 @@ class Filters implements FiltersInterface
*/
private $pickupLocationCode;

/**
* @var FiltersExtensionInterface|null
*/
private $filtersExtension;

/**
* @param FilterInterface|null $name
* @param FilterInterface|null $pickupLocationCode
Expand All @@ -70,7 +65,6 @@ class Filters implements FiltersInterface
* @param FilterInterface|null $regionId
* @param FilterInterface|null $city
* @param FilterInterface|null $street
* @param FiltersExtensionInterface|null $filtersExtension
*/
public function __construct(
?FilterInterface $name = null,
Expand All @@ -80,8 +74,7 @@ public function __construct(
?FilterInterface $region = null,
?FilterInterface $regionId = null,
?FilterInterface $city = null,
?FilterInterface $street = null,
?FiltersExtensionInterface $filtersExtension = null
?FilterInterface $street = null
) {
$this->country = $country;
$this->postcode = $postcode;
Expand All @@ -91,7 +84,6 @@ public function __construct(
$this->street = $street;
$this->name = $name;
$this->pickupLocationCode = $pickupLocationCode;
$this->filtersExtension = $filtersExtension;
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,19 +74,4 @@ public function getName(): ?FilterInterface;
* @return \Magento\InventoryInStorePickupApi\Api\Data\SearchRequest\FilterInterface|null
*/
public function getPickupLocationCode(): ?FilterInterface;

/**
* Get Filters Extension.
*
* @return \Magento\InventoryInStorePickupApi\Api\Data\SearchRequest\FiltersExtensionInterface|null
*/
public function getExtensionAttributes(): ?FiltersExtensionInterface;

/**
* Set Filters Extension.
*
* @param \Magento\InventoryInStorePickupApi\Api\Data\SearchRequest\FiltersExtensionInterface $filtersExtension
* @return void
*/
public function setExtensionAttributes(FiltersExtensionInterface $filtersExtension): void;
}
90 changes: 40 additions & 50 deletions InventoryInStorePickupApi/Test/Api/GetPickupLocationsTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -113,17 +113,15 @@ public function executeIntersectionSearchDataProvider(): array
[
/** Data Set #0 */
[
'filters' => [
'extensionAttributes' => [
'productsInfo' => [
[
'sku' => 'SKU-1'
],
[
'sku' => 'SKU-3'
]
'extensionAttributes' => [
'productsInfo' => [
[
'sku' => 'SKU-1'
],
[
'sku' => 'SKU-3'
]
],
]
],
'scopeType' => 'website',
'scopeCode' => 'eu_website'
Expand All @@ -134,17 +132,15 @@ public function executeIntersectionSearchDataProvider(): array
[
/** Data Set #1 */
[
'filters' => [
'extensionAttributes' => [
'productsInfo' => [
[
'sku' => 'SKU-1'
],
[
'sku' => 'SKU-2'
]
'extensionAttributes' => [
'productsInfo' => [
[
'sku' => 'SKU-1'
],
[
'sku' => 'SKU-2'
]
],
]
],
'scopeType' => 'website',
'scopeCode' => 'eu_website'
Expand All @@ -155,14 +151,12 @@ public function executeIntersectionSearchDataProvider(): array
[
/** Data Set #2 */
[
'filters' => [
'extensionAttributes' => [
'productsInfo' => [
[
'sku' => 'SKU-1'
]
'extensionAttributes' => [
'productsInfo' => [
[
'sku' => 'SKU-1'
]
],
]
],
'scopeType' => 'website',
'scopeCode' => 'eu_website'
Expand All @@ -177,20 +171,18 @@ public function executeIntersectionSearchDataProvider(): array
[
/** Data Set #3 */
[
'filters' => [
'extensionAttributes' => [
'productsInfo' => [
[
'sku' => 'SKU-1'
],
[
'sku' => 'SKU-2'
],
[
'sku' => 'SKU-3'
]
'extensionAttributes' => [
'productsInfo' => [
[
'sku' => 'SKU-1'
],
[
'sku' => 'SKU-2'
],
[
'sku' => 'SKU-3'
]
],
]
],
'scopeType' => 'website',
'scopeCode' => 'eu_website'
Expand Down Expand Up @@ -221,17 +213,15 @@ public function testExecuteDisabledPickupLocations(): void
{
$searchRequestData = [
'searchRequest' => [
'filters' => [
'extensionAttributes' => [
'productsInfo' => [
[
'sku' => 'SKU-1'
],
[
'sku' => 'SKU-3'
]
'extensionAttributes' => [
'productsInfo' => [
[
'sku' => 'SKU-1'
],
[
'sku' => 'SKU-3'
]
],
]
],
'scopeType' => 'website',
'scopeCode' => 'eu_website'
Expand Down
2 changes: 1 addition & 1 deletion InventoryInStorePickupApi/etc/extension_attributes.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<attribute code="frontend_name" type="string"/>
<attribute code="frontend_description" type="string"/>
</extension_attributes>
<extension_attributes for="Magento\InventoryInStorePickupApi\Api\Data\SearchRequest\FiltersInterface">
<extension_attributes for="Magento\InventoryInStorePickupApi\Api\Data\SearchRequestInterface">
<attribute code="products_info" type="Magento\InventoryInStorePickupApi\Api\Data\SearchRequest\ProductInfoInterface[]"/>
</extension_attributes>
</config>
Original file line number Diff line number Diff line change
Expand Up @@ -250,10 +250,8 @@ define([
searchTerm: shippingAddress.postcode + this.delimiter +
shippingAddress.countryId || this.defaultCountry
},
filters: {
extension_attributes: {
productsInfo: productsInfo
}
extension_attributes: {
productsInfo: productsInfo
},
pageSize: this.nearbySearchLimit
})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -177,10 +177,8 @@ define([
radius: this.nearbySearchRadius,
searchTerm: searchQuery
},
filters: {
extension_attributes: {
productsInfo: productsInfo
}
extension_attributes: {
productsInfo: productsInfo
},
pageSize: this.nearbySearchLimit
})
Expand Down

0 comments on commit d7d3fff

Please sign in to comment.