@graphcommerce/algolia-products 9.1.0-canary.26 → 9.1.0-canary.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +36 -0
- package/Config.graphqls +3 -5
- package/README.md +1 -77
- package/algolia-spec.yaml +317 -210
- package/graphql/GetAlgoliaSettings.graphql +1 -1
- package/index.ts +1 -6
- package/mesh/algoliaFacetsToAggregations.ts +48 -84
- package/mesh/algoliaHitToMagentoProduct.ts +19 -14
- package/mesh/getAlgoliaSettings.ts +30 -15
- package/mesh/getAttributeList.ts +7 -4
- package/mesh/getSearchResults.ts +8 -1
- package/mesh/getSearchResultsInput.ts +7 -1
- package/mesh/getSearchSuggestions.ts +6 -3
- package/mesh/getSearchSuggestionsIndexName.ts +6 -0
- package/mesh/getSearchSuggestionsInput.ts +0 -5
- package/mesh/getSortedIndex.ts +54 -0
- package/mesh/getStoreConfig.ts +19 -16
- package/mesh/index.ts +16 -0
- package/mesh/productFilterInputToAlgoliafacetFiltersInput.ts +24 -4
- package/mesh/resolvers.ts +20 -34
- package/mesh/sortAggregations.ts +23 -0
- package/mesh/{sortOptions.ts → sortFieldOptions.ts} +7 -31
- package/package.json +9 -9
- package/schema/AlgoliaSchema.graphqls +4 -0
- package/scripts/generate-spec.mts +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,41 @@
|
|
|
1
1
|
# @graphcommerce/algolia-products
|
|
2
2
|
|
|
3
|
+
## 9.1.0-canary.29
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#2525](https://github.com/graphcommerce-org/graphcommerce/pull/2525) [`4981ada`](https://github.com/graphcommerce-org/graphcommerce/commit/4981ada47eae866a003d511f80296f79c9c8b343) - Added support for Algolia's facetOrdering which allows you to change the presented filters based on rules. ([@paales](https://github.com/paales))
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- [#2525](https://github.com/graphcommerce-org/graphcommerce/pull/2525) [`4f9ddb8`](https://github.com/graphcommerce-org/graphcommerce/commit/4f9ddb820494a89a6ae37df6e2befa59910330b4) - Updated Algolia to the latest version of the spec. ([@paales](https://github.com/paales))
|
|
12
|
+
|
|
13
|
+
- [#2525](https://github.com/graphcommerce-org/graphcommerce/pull/2525) [`75431c2`](https://github.com/graphcommerce-org/graphcommerce/commit/75431c22792bf7e4c95cd4c7c80aae5d0e77ee10) - Updated Algolia docs for search suggestions and used a different naming scheme where baseIndex+suggestionsSuffix is used (default that algolia suggests). ([@paales](https://github.com/paales))
|
|
14
|
+
|
|
15
|
+
- [#2525](https://github.com/graphcommerce-org/graphcommerce/pull/2525) [`4f9ddb8`](https://github.com/graphcommerce-org/graphcommerce/commit/4f9ddb820494a89a6ae37df6e2befa59910330b4) - Fixed issue where if a value contains a `/` or a `,` the URL parsing would break. Those values are now replaced with `_AND_` and `_OR_` in the URL. ([@paales](https://github.com/paales))
|
|
16
|
+
|
|
17
|
+
- [#2525](https://github.com/graphcommerce-org/graphcommerce/pull/2525) [`4f9ddb8`](https://github.com/graphcommerce-org/graphcommerce/commit/4f9ddb820494a89a6ae37df6e2befa59910330b4) - Moved Customer group_id resolver to magento-graphql-rest package where it should belong. ([@paales](https://github.com/paales))
|
|
18
|
+
|
|
19
|
+
- [#2525](https://github.com/graphcommerce-org/graphcommerce/pull/2525) [`0df56d8`](https://github.com/graphcommerce-org/graphcommerce/commit/0df56d8cbfdd2e6588946e5bd58b9a1c49a000aa) - Solve issue where the customer group specific price index wasn't used and added warnings to be able to debug the issue. ([@paales](https://github.com/paales))
|
|
20
|
+
|
|
21
|
+
- [#2525](https://github.com/graphcommerce-org/graphcommerce/pull/2525) [`c9ac114`](https://github.com/graphcommerce-org/graphcommerce/commit/c9ac1142cb92394eb32dc4a6d3944a1707b1b4e2) - Allow returning the algolia index name that is being searched ([@paales](https://github.com/paales))
|
|
22
|
+
|
|
23
|
+
- [#2525](https://github.com/graphcommerce-org/graphcommerce/pull/2525) [`a026714`](https://github.com/graphcommerce-org/graphcommerce/commit/a026714ac0373b666de2cee43c3c5dba58cd81e4) - Solve issue where used configurations might not be scoped to the correct store. Move caching to the mesh cache and scope per store. ([@paales](https://github.com/paales))
|
|
24
|
+
|
|
25
|
+
- [#2525](https://github.com/graphcommerce-org/graphcommerce/pull/2525) [`2933775`](https://github.com/graphcommerce-org/graphcommerce/commit/29337755dd75321e69fe96822b51da12d06fda3a) - Solve issue where algolia would return a full product URL instead of only the pathname of the given URL from Magento ([@paales](https://github.com/paales))
|
|
26
|
+
|
|
27
|
+
- [#2525](https://github.com/graphcommerce-org/graphcommerce/pull/2525) [`4f9ddb8`](https://github.com/graphcommerce-org/graphcommerce/commit/4f9ddb820494a89a6ae37df6e2befa59910330b4) - Solve issue where the generated bucket for price aggregations didn’t contain the correct values. ([@paales](https://github.com/paales))
|
|
28
|
+
|
|
29
|
+
- [#2525](https://github.com/graphcommerce-org/graphcommerce/pull/2525) [`4f9ddb8`](https://github.com/graphcommerce-org/graphcommerce/commit/4f9ddb820494a89a6ae37df6e2befa59910330b4) - Solve issue where some values wouldn’t be correctly flattened. ([@paales](https://github.com/paales))
|
|
30
|
+
|
|
31
|
+
- [#2525](https://github.com/graphcommerce-org/graphcommerce/pull/2525) [`4981ada`](https://github.com/graphcommerce-org/graphcommerce/commit/4981ada47eae866a003d511f80296f79c9c8b343) - Solve issue where Algolia didn't properly handle visibility as the attribute wasn't filterable, it automatically detects when there is a visibility attribute and uses that for filtering. ([@paales](https://github.com/paales))
|
|
32
|
+
|
|
33
|
+
- [#2525](https://github.com/graphcommerce-org/graphcommerce/pull/2525) [`b266ec9`](https://github.com/graphcommerce-org/graphcommerce/commit/b266ec99e09a669a8e39478f8e4412cf1275e196) - Make sure the short_description and description can be properly returned when retrieved via an Algolia query ([@paales](https://github.com/paales))
|
|
34
|
+
|
|
35
|
+
## 9.1.0-canary.28
|
|
36
|
+
|
|
37
|
+
## 9.1.0-canary.27
|
|
38
|
+
|
|
3
39
|
## 9.1.0-canary.26
|
|
4
40
|
|
|
5
41
|
## 9.1.0-canary.25
|
package/Config.graphqls
CHANGED
|
@@ -3,16 +3,14 @@ Algolia configuration for GraphCommerce.
|
|
|
3
3
|
"""
|
|
4
4
|
input GraphCommerceAlgoliaConfig {
|
|
5
5
|
"""
|
|
6
|
-
Configure your Algolia application ID.
|
|
7
|
-
|
|
8
|
-
Stores > Configuration > Algolia Search > Credentials and Basic Setup > Application ID
|
|
6
|
+
Configure your Algolia application ID. [Algolia API Keys Dashboard](https://www.algolia.com/account/api-keys)
|
|
9
7
|
"""
|
|
10
8
|
applicationId: String!
|
|
11
9
|
|
|
12
10
|
"""
|
|
13
|
-
Configure your
|
|
11
|
+
Configure your Search API Key. [Algolia API Keys Dashboard](https://www.algolia.com/account/api-keys)
|
|
14
12
|
|
|
15
|
-
|
|
13
|
+
Make sure the API key has the following ACL: search, listIndexes and settings [Lookup here](https://dashboard.algolia.com/account/api-keys/restricted)
|
|
16
14
|
"""
|
|
17
15
|
searchOnlyApiKey: String!
|
|
18
16
|
|
package/README.md
CHANGED
|
@@ -1,79 +1,3 @@
|
|
|
1
1
|
# Algolia Magento 2
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
## Prerequisites
|
|
6
|
-
|
|
7
|
-
Make sure the Magento 2 module is correctly installed and working.
|
|
8
|
-
|
|
9
|
-
## Installation
|
|
10
|
-
|
|
11
|
-
1. Find current version of your `@graphcommerce/next-ui` in your package.json.
|
|
12
|
-
2. `yarn add @graphcommerce/algolia-products@9.0.0` (replace 9.0.0 with the
|
|
13
|
-
version of the step above)
|
|
14
|
-
3. Configure the following ([configuration values](./Config.graphqls)) in your
|
|
15
|
-
graphcommerce.config.js:
|
|
16
|
-
|
|
17
|
-
```js
|
|
18
|
-
const config = {
|
|
19
|
-
algolia: {
|
|
20
|
-
applicationId: 'your-algolia-application-id', // Stores > Configuration > Algolia Search > Credentials and Basic Setup > Application ID
|
|
21
|
-
indexNamePrefix: 'default_', // Stores > Configuration > Algolia Search > Credentials and Basic Setup > Index name prefix
|
|
22
|
-
searchOnlyApiKey: 'blabla', // Stores > Configuration > Algolia Search > Credentials and Basic Setup > Search-only (public) API key
|
|
23
|
-
catalogEnabled: false, // start with search and if everything works as expected, you can move on to the catalog.
|
|
24
|
-
},
|
|
25
|
-
}
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
## Configuration
|
|
29
|
-
|
|
30
|
-
1. Setup the fields that you want to index in algolia
|
|
31
|
-
`Stores > configuration > Algolia Search > Products > Products`
|
|
32
|
-
2. Configure your aggregations/filters, make sure that the aggregation fields
|
|
33
|
-
are also indexed in step 2
|
|
34
|
-
`Stores > Configuration > Algolia Search > Instant Search Results Page > Facets`
|
|
35
|
-
3. Make sure the aggregations fields are made filterable(Use in layerd
|
|
36
|
-
Navigation), so the attributeList query can retrieve the labels.
|
|
37
|
-
`Stores > Products > Attributes`
|
|
38
|
-
4. To configure sorting options, enable Virtual Replica's.
|
|
39
|
-
`Stores > Configuration > Algolia Search > Instant Search Results Page > Use Virtual Replica`
|
|
40
|
-
|
|
41
|
-
### Customer Group Pricing
|
|
42
|
-
|
|
43
|
-
```js
|
|
44
|
-
const config = {
|
|
45
|
-
algoliaCustomerGroupPricingEnabled: true,
|
|
46
|
-
}
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
To enable customer group pricing, make sure customers groups prices are mapped
|
|
50
|
-
to algolia.
|
|
51
|
-
`Stores > Configuration > Algolia Search > Advanced > Enable Customer Groups`.
|
|
52
|
-
|
|
53
|
-
⚠️ Warning: Catalog price rules for a specific customer group do not seem to be
|
|
54
|
-
indexed.It seems only: `[Product] > Advanced Pricing > Customer Group Price`
|
|
55
|
-
gets indexed.
|
|
56
|
-
|
|
57
|
-
Note: The GraphQL API does not expose the customer group_id by default. We're
|
|
58
|
-
doing an additional REST API call to get the value. This means a somewhat slower
|
|
59
|
-
(few hundred ms) when the Customer is loaded.
|
|
60
|
-
|
|
61
|
-
### Customization
|
|
62
|
-
|
|
63
|
-
By default algoliaFacetsToAggregations and algoliaHitToMagentoProduct can be
|
|
64
|
-
plugged in.
|
|
65
|
-
|
|
66
|
-
## Algolia for Catalog
|
|
67
|
-
|
|
68
|
-
Sorting is defined by Algolia and can not be configured per category as each
|
|
69
|
-
sorting option is a separate (virtual) index.
|
|
70
|
-
|
|
71
|
-
## Suggestions
|
|
72
|
-
|
|
73
|
-
To get query suggestions/autocomplete enter your Algolia dashboard > Search >
|
|
74
|
-
configure > Query Suggestions > new Query Suggestions Index. This will create a
|
|
75
|
-
new index which will be used for suggestions
|
|
76
|
-
|
|
77
|
-
Don't mind to use the suggestions setting in magento admin. It will create a
|
|
78
|
-
suggestions index but it will not record suggestions. This requires
|
|
79
|
-
instantSearch
|
|
3
|
+
[See algolia docs](../../docs/magento/algolia.md)
|