Допилить скрипт создания заказов
1 000 руб. за проект
Всем привет. Есть скрипт, который подключается к эквайрингу и при оформлении заказа выдает платежный шлюз:
$('body').on('submit', '.order__form', function (e) {
e.preventDefault();
var _this = $(e.currentTarget),
data = {
'order': {
'payment_method_id': _this.find('input[name="order-radio"]:checked').val(),
'property': {
'shipping_city': _this.find('input[name="address"]').val()
}
},
'user': {
'name': _this.find('input[name="name"]').val(),
'email': _this.find('input[name="email"]').val(),
'phone': _this.find('input[name="phone"]').val()
}
};
$.request('MakeOrder::onCreate', {
data: data,
success: function(obResponse) {
if (!obResponse ) {
return;
}
if (!!obResponse['X_OCTOBER_REDIRECT']) {
return this.success(obResponse);
}
if (!obResponse.status) {
return;
}
if (_this.find('input[name="order-radio"]:checked').val() == 2) {
const key = '...';
var summ = $('#total').val().replaceAll(/\s/g,'');
var product = $('.order__header-title').text();
const data = {
'testing': '0',
'order_id': obResponse.data.id,
'amount': summ,
'merchant': '...',
'description': 'Заказ '+obResponse.data.id,
'client_phone': _this.find('input[name="phone"]').val(),
'client_email': _this.find('input[name="email"]').val(),
'success_url': window.location.origin + '/order-reserved/' + obResponse.data.key,
'receipt_contact': _this.find('input[name="email"]').val(),
'receipt_items': '[{"name": "'+product+'", "payment_method": "full_prepayment","payment_object": "commodity", "price": '+summ+', "quantity": 1, "sno": "usn_income_outcome", "vat": "none"}]',
'unix_timestamp': Math.floor(Date.now() / 1000)
};
var url = '...';
var form = "<form action='" + url + "' method='post'>";
Object.keys(data).forEach(key => {
form += "<input type='text' name='"+key+"' value='"+data[key]+"' />";
});
form += "<input type='text' name='signature' value='"+GetSignature(key, data)+"' />";
form += "</form>";
form = $(form);
$('body').append(form);
form.submit();
} else {
location = '/order-reserved/'+obResponse.data.key;
}
}
});
});
После оформления заказа формирует чек со списком купленных товаров. Проблема в том, что при покупке нескольких товаров, в чеке их наименования выводятся друг за другом (скриншот: https://disk.yandex.ru/i/S544K1N6ynKX8w). Нужно починить, чтобы наименование и стоимость в чеке выводились как полагается
$('body').on('submit', '.order__form', function (e) {
e.preventDefault();
var _this = $(e.currentTarget),
data = {
'order': {
'payment_method_id': _this.find('input[name="order-radio"]:checked').val(),
'property': {
'shipping_city': _this.find('input[name="address"]').val()
}
},
'user': {
'name': _this.find('input[name="name"]').val(),
'email': _this.find('input[name="email"]').val(),
'phone': _this.find('input[name="phone"]').val()
}
};
$.request('MakeOrder::onCreate', {
data: data,
success: function(obResponse) {
if (!obResponse ) {
return;
}
if (!!obResponse['X_OCTOBER_REDIRECT']) {
return this.success(obResponse);
}
if (!obResponse.status) {
return;
}
if (_this.find('input[name="order-radio"]:checked').val() == 2) {
const key = '...';
var summ = $('#total').val().replaceAll(/\s/g,'');
var product = $('.order__header-title').text();
const data = {
'testing': '0',
'order_id': obResponse.data.id,
'amount': summ,
'merchant': '...',
'description': 'Заказ '+obResponse.data.id,
'client_phone': _this.find('input[name="phone"]').val(),
'client_email': _this.find('input[name="email"]').val(),
'success_url': window.location.origin + '/order-reserved/' + obResponse.data.key,
'receipt_contact': _this.find('input[name="email"]').val(),
'receipt_items': '[{"name": "'+product+'", "payment_method": "full_prepayment","payment_object": "commodity", "price": '+summ+', "quantity": 1, "sno": "usn_income_outcome", "vat": "none"}]',
'unix_timestamp': Math.floor(Date.now() / 1000)
};
var url = '...';
var form = "<form action='" + url + "' method='post'>";
Object.keys(data).forEach(key => {
form += "<input type='text' name='"+key+"' value='"+data[key]+"' />";
});
form += "<input type='text' name='signature' value='"+GetSignature(key, data)+"' />";
form += "</form>";
form = $(form);
$('body').append(form);
form.submit();
} else {
location = '/order-reserved/'+obResponse.data.key;
}
}
});
});
После оформления заказа формирует чек со списком купленных товаров. Проблема в том, что при покупке нескольких товаров, в чеке их наименования выводятся друг за другом (скриншот: https://disk.yandex.ru/i/S544K1N6ynKX8w). Нужно починить, чтобы наименование и стоимость в чеке выводились как полагается
Отзывы
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.