this - дословно переводится как "это". В JS
определяет контекст.
Не знаю, что вы там по клику сделали, но если плагин добавляет в корзину только по щелчку кнопки (что видно по нативному обработчику), но аргументы функции можно и расширить addToCart(), но еще проще
$('body').on('click', 'button', function() {
cart.addToCart($(this.parentNode).find('input'))
//ну или саму кнопку передавать в плагин, а в нем уже искать поле ввода ну а далее уже все в нем брать
});
//в плагине
this.addToCart = function(curObj) {
//curObj, это поле ввода, а все остальные данные типа '002','Зонт1',1500
//будет содержать это же поле ввода, а не кнопка, в атрибуте data-val,
//куда сервер и поместит данные при выводе,
//только не надо обрамлять 1500 в кавычки, это не строка, а число,
//и зря отдавать клиенту два байта на значение, да еще никчемные пробелы между ними....
//эти значения получаются как
var d = curObj.data('val').split(',');
//ну и останется сопоставить их "id", "name", "price"
}
Разберетесь?