Skip to content

Commit 8f34ae6

Browse files
committed
fix(set-sort-order): ensure ordering in stock first on sort options
1 parent ec424a1 commit 8f34ae6

File tree

1 file changed

+12
-13
lines changed

1 file changed

+12
-13
lines changed

src/methods/set-sort-order.js

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -25,22 +25,21 @@ export default (self, enumOrder) => {
2525
break
2626

2727
case 'lowest_price':
28-
// sort by price
29-
// lowest price -> highest price
30-
sort.splice(1, 0, {
31-
price: {
32-
order: 'asc'
33-
}
34-
})
35-
break
36-
3728
case 'highest_price':
38-
// sort by price
39-
// highest price -> lowest price
29+
// sort by price after stock and before relevance
4030
sort.splice(1, 0, {
41-
price: {
31+
_script: {
32+
type: 'number',
33+
script: {
34+
lang: 'painless',
35+
source: "doc['quantity'].value > 0 ? 1 : 0"
36+
},
4237
order: 'desc'
4338
}
39+
}, {
40+
price: {
41+
order: enumOrder === 'lowest_price' ? 'asc' : 'desc'
42+
}
4443
})
4544
break
4645

@@ -51,7 +50,7 @@ export default (self, enumOrder) => {
5150
type: 'number',
5251
script: {
5352
lang: 'painless',
54-
source: "doc['price'].value > 0 && doc['base_price'].value > 0" +
53+
source: "doc['quantity'].value > 0 && doc['price'].value > 0 && doc['base_price'].value > 0" +
5554
" ? doc['base_price'].value / doc['price'].value : 0"
5655
},
5756
order: 'desc'

0 commit comments

Comments
 (0)