Adding in a maxQuantity value when adding to cart
parent
fe14f28994
commit
3bda249c68
|
@ -121,7 +121,7 @@
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"productStock": 10
|
"productStock": 100
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"productPermalink": "hudderton-backpack",
|
"productPermalink": "hudderton-backpack",
|
||||||
|
|
|
@ -110,6 +110,9 @@
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"default": true
|
"default": true
|
||||||
},
|
},
|
||||||
|
"maxQuantity": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
"modules": {
|
"modules": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
"orderHook": "",
|
"orderHook": "",
|
||||||
"availableLanguages": ["en", "it"],
|
"availableLanguages": ["en", "it"],
|
||||||
"defaultLocale": "en",
|
"defaultLocale": "en",
|
||||||
|
"maxQuantity": 25,
|
||||||
"modules": {
|
"modules": {
|
||||||
"enabled": {
|
"enabled": {
|
||||||
"shipping": "shipping-basic"
|
"shipping": "shipping-basic"
|
||||||
|
|
|
@ -365,6 +365,13 @@ router.post('/product/addtocart', async (req, res, next) => {
|
||||||
let productQuantity = req.body.productQuantity ? parseInt(req.body.productQuantity) : 1;
|
let productQuantity = req.body.productQuantity ? parseInt(req.body.productQuantity) : 1;
|
||||||
const productComment = req.body.productComment ? req.body.productComment : null;
|
const productComment = req.body.productComment ? req.body.productComment : null;
|
||||||
|
|
||||||
|
// If maxQuantity set, ensure the quantity doesn't exceed that value
|
||||||
|
if(config.maxQuantity && productQuantity > config.maxQuantity){
|
||||||
|
return res.status(400).json({
|
||||||
|
message: 'The quantity exceeds the max amount. Please contact us for larger orders.'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// Don't allow negative quantity
|
// Don't allow negative quantity
|
||||||
if(productQuantity < 1){
|
if(productQuantity < 1){
|
||||||
productQuantity = 1;
|
productQuantity = 1;
|
||||||
|
|
|
@ -40,13 +40,25 @@ test('[Fail] Add product to cart when subscription already added', async t => {
|
||||||
.post('/product/addtocart')
|
.post('/product/addtocart')
|
||||||
.send({
|
.send({
|
||||||
productId: g.products[1]._id,
|
productId: g.products[1]._id,
|
||||||
productQuantity: 100,
|
productQuantity: 1,
|
||||||
productOptions: JSON.stringify(g.products[1].productOptions)
|
productOptions: JSON.stringify(g.products[1].productOptions)
|
||||||
})
|
})
|
||||||
.expect(400);
|
.expect(400);
|
||||||
t.deepEqual(res.body.message, 'Subscription already existing in cart. You cannot add more.');
|
t.deepEqual(res.body.message, 'Subscription already existing in cart. You cannot add more.');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('[Fail] Add quantity which exceeds the maxQuantity', async t => {
|
||||||
|
const res = await g.request
|
||||||
|
.post('/product/addtocart')
|
||||||
|
.send({
|
||||||
|
productId: g.products[4]._id,
|
||||||
|
productQuantity: 75,
|
||||||
|
productOptions: {}
|
||||||
|
})
|
||||||
|
.expect(400);
|
||||||
|
t.deepEqual(res.body.message, 'The quantity exceeds the max amount. Please contact us for larger orders.');
|
||||||
|
});
|
||||||
|
|
||||||
test('[Success] Empty cart', async t => {
|
test('[Success] Empty cart', async t => {
|
||||||
const res = await g.request
|
const res = await g.request
|
||||||
.post('/product/emptycart')
|
.post('/product/emptycart')
|
||||||
|
@ -113,7 +125,7 @@ test('[Fail] Add product to cart with not enough stock', async t => {
|
||||||
.post('/product/addtocart')
|
.post('/product/addtocart')
|
||||||
.send({
|
.send({
|
||||||
productId: g.products[0]._id,
|
productId: g.products[0]._id,
|
||||||
productQuantity: 100,
|
productQuantity: 20,
|
||||||
productOptions: JSON.stringify(g.products[0].productOptions)
|
productOptions: JSON.stringify(g.products[0].productOptions)
|
||||||
})
|
})
|
||||||
.expect(400);
|
.expect(400);
|
||||||
|
|
Loading…
Reference in New Issue