Using this method, we can Pass the Quantity and price values from Reorder page to mini cart by extending the view of add to cart button.
_.extend(ReorderItemsListView.prototype, {
events: _.extend({}, ReorderItemsListView.prototype.events, {
'change [data-action="ReorderItems"]': 'updateQuantity',
'click #addToCartReorder': 'addToCart'
}),
addToCart: function (e) {
debugger
console.log(reorderQuantityLists);
var itemQuantity = this.model.attributes.item.attributes.quantity;
if (itemQuantity) {
}else{
itemQuantity = this.model.attributes.item.attributes.onlinecustomerprice_detail.priceschedule[0].maximumquantity;
}
console.log(this);
var cart = container.getComponent("Cart");
var internalid = this.model.attributes.item.id;
console.log(itemQuantity);
cart.addLines({
lines: [
{
quantity: itemQuantity,
item: {
internalid: internalid
}
}
]
});
},
updateQuantity: function (e) {
debugger
const $element = this.$(e.target);
const quantity_input = $element.parent().parent().find('input[name="quantity"]');
//console.log(quantity_input, e.target.value)
quantity_input.val(e.target.value).trigger('change')
},
getContext: _.wrap(ReorderItemsListView.prototype.getContext, function getContext(fn) {
var context = fn.apply(this, _.toArray(arguments).slice(1));
console.log(this);
if (context.line.attributes.item.attributes.custitem_tag_enhc_qty_pricing) {
var itemQuantity = this.line.attributes.item.attributes.quantity;
if (itemQuantity) {
}else{
itemQuantity = this.line.attributes.item.attributes.onlinecustomerprice_detail.priceschedule[0].maximumquantity;
}
this.line.attributes.item.attributes.quantity = itemQuantity;
reorderQuantityLists = this;
}
var self = this;
var pricingSchedule = context.line.attributes.item.attributes.onlinecustomerprice_detail.priceschedule
var quantities = [];
var counter = 0;
var quantityFromModel = 0
if (context.line.attributes.item.attributes.custitem_tag_enhc_qty_pricing) {
quantityFromModel = context.line.attributes.quantity;
}
console.log(quantityFromModel);
_.each(pricingSchedule, function eachScheduled(schedule) {
if (schedule.maximumquantity && schedule.maximumquantity <= 50000) {
var quantity = parseInt(schedule.maximumquantity);
var price = quantity * (pricingSchedule[counter + 1].price * 1000);
price = price / 1000;
//console.log('price ' + price);
//var newPrice = price.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,');
var newPrice = parseFloat(price).toFixed(2);
var formattedPrice = "$" + newPrice;
//console.log('price ' + pricingSchedule[counter + 1].price, 'quantity ' + quantity + ' product ' + newPrice);
var formattedQuantity = quantity.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,');
var dot = formattedQuantity.indexOf('.');
formattedQuantity = formattedQuantity.substring(0, dot);
var customName = formattedQuantity + '- ' + formattedPrice;
if (quantityFromModel > 0) {
if (quantityFromModel == quantity) {
quantities.push({ name: customName, value: quantity, selected: true });
} else {
quantities.push({ name: customName, value: quantity, selected: '' });
}
} else {
quantities.push({ name: customName, value: quantity, selected: '' });
}
}
counter++;
});
if (pricingSchedule) {
context.reorderQunatityPricing = true;
} else {
context.reorderQunatityPricing = false;
}
context.quantities = quantities;
//console.log('contextCart ', context);
//console.log(context);
return context;
})
});
_.extend(ReorderItemsActionsAddToCartView.prototype, {
events: _.extend({}, ReorderItemsListView.prototype.events, {
}),
getContext: _.wrap(ReorderItemsActionsAddToCartView.prototype.getContext, function getContext(fn) {
var context = fn.apply(this, _.toArray(arguments).slice(1));
if (this.model.attributes.item.attributes.onlinecustomerprice_detail.priceschedule) {
context.quantityPricing = true;
}
return context
})
});
TPL:
<div class="reorder-items-actions-add-to-cart-button-container">
{{#if quantityPricing}}
<button
id="addToCartReorder"
{{#if disableButtonAddToCart}} disabled {{/if}}
class="reorder-items-actions-add-to-cart">
{{translate 'Add to Cart'}}
</button>
{{else}}
<button
data-item-id="{{itemId}}"
data-line-id="{{lineId}}"
data-parent-id="{{parentItemId}}"
data-item-options="{{itemOptions}}"
data-action="add-to-cart"
{{#if disableButtonAddToCart}} disabled {{/if}}
class="reorder-items-actions-add-to-cart">
{{translate 'Add to Cart'}}
</button>
{{/if}}
</div>