Magento 1.9.0.1 Lỗi Paypal Tổng số lượng của các mặt hàng trong giỏ hàng không khớp với số lượng đặt hàng (# 10413:


9

Có phải việc sử dụng magento 1.9.0.1 này đã tích hợp hộp expres paypal, ngoài ra, bạn còn có plugin phần thưởng pro như điểm thưởng để mua một số sản phẩm mà khi nó trở thành tích hợp và mua sản phẩm mà không sử dụng điểm của recompesa, thanh toán bằng paypal nigun có thể được thực hiện mà không có vấn đề, nhưng khi khách hàng sử dụng điểm thưởng, một lỗi khi xác nhận đơn hàng, đó là

Cổng của PayPal đã từ chối yêu cầu. Tổng số của mục giỏ hàng Số tiền Số tiền không khớp với đơn hàng (# 10413: Giao dịch bị từ chối Do đối số không hợp lệ Xem thông báo lỗi bổ sung để biết chi tiết.)

Tìm kiếm trên mạng để thử và sửa lỗi này, tôi đề nghị bạn có thể sửa đổi tệp Navpal paypal thêm bất kỳ hai mã nào tôi đặt bên dưới:

mã đầu tiên

// Bắt đầu hack

$totalValue = $request['TAXAMT'] + $request['ITEMAMT'];
$finalValue = $totalValue - $request['AMT'];

if($request['SHIPPINGAMT'] > 0) {

$request['SHIPPINGAMT'] = ($request['AMT'] - ($request['TAXAMT'] + $request['ITEMAMT']));
$totalValue = $request['TAXAMT'] + $request['ITEMAMT'] + $request['SHIPPINGAMT'];
$finalValue = $totalValue - $request['AMT'];

}

if($request['AMT'] != $totalValue) {

if($totalValue > $request['AMT']) {
$request['TAXAMT'] = $request['TAXAMT'] - $finalValue;
}elseif($totalValue < $request['AMT']) {
$request['TAXAMT'] = $request['TAXAMT'] + $finalValue;
}else{
$request['AMT'] = $request['TAXAMT'] + $request['ITEMAMT'];
}
}

// Kết thúc hack

Mã thứ hai

    // Check discount
$lineAmt = 0;
$discount = 0;
$line = 0;
$discountIndex = 0;
while(isset($request["L_AMT{$line}"])) {
if($request["L_NAME{$line}"] == 'Discount') {
$discount += $request["L_AMT{$line}"];
$discountIndex = $line;
}
else {
$lineAmt += $request["L_AMT{$line}"];
}
$line++;
}

if($discount) {
if($discount + $lineAmt != $request['ITEMAMT']) {
// Do correction
$request["L_AMT{$discountIndex}"] = ($request['ITEMAMT'] - $lineAmt);
} 
} else {
// Check item amount adds up
$correctItemAmt = $request['AMT'] - $request['SHIPPINGAMT'] - $request['TAXAMT'];
if($correctItemAmt != $request['ITEMAMT']) {
$request['ITEMAMT'] = $correctItemAmt;
}

//kết thúc

Thêm mã, nếu được phép và thanh toán cho các điểm chiết khấu đó, nhưng vấn đề là khi bạn thấy thanh toán paypal, sẽ tính số tiền chiết khấu thay vì tổng số tiền, thời gian mà khách hàng paypal đăng nhập và đi qua hộp expres, tất cả số tiền là chính xác và desglozadas cuối cùng tổng số tiền thanh toán là tốt, quay trở lại cửa hàng và xác nhận đơn đặt hàng, được thực hiện thành công, nhưng khi thanh toán paypal trong số tiền giảm giá là những gì chúng tôi nhận được, nó minh họa cho làm sáng tỏ

Chi phí sản phẩm> 340 Điểm usuados cho mỗi khách hàng> 125 tương đương với 20,54 Tổng số lần mua tại cửa hàng và các biểu hiện đóng hộp paypal> 319,46 Số lượng recibda để xem tài khoản trên paypal> 20,54

Ngoài ra, khi mua thanh toán điểm thưởng không sử dụng được thực hiện, một lỗi cho biết số tiền của giao dịch là hợp lệ vì nó là Zero xuất hiện.

Tôi đã bối rối để xem những gì mã lỗi để sửa đổi nó, nhưng tôi không thể làm điều đó, không phải nếu ai đó biết tôi phải làm hoặc có thể giúp đỡ


Nav.php nằm ở đâu?
Giuseppe

Vấn đề của bạn đã được giải quyết hay chưa?
Đá quý

Câu trả lời:


7

Vấn đề

Vấn đề khá rõ ràng từ thông báo: tổng số lượng mặt hàng và tổng số lượng giỏ hàng được gửi tới Paypal không khớp.
Như bạn đã tìm ra, đây dường như là một vấn đề với tiện ích mở rộng điểm đó (hoặc hoàn toàn thiếu hỗ trợ cho Paypal Express).

Giải pháp ưu tiên

Điều đầu tiên tôi khuyên bạn là kiểm tra xem bạn có sử dụng phiên bản mở rộng Reward Points Pro mới nhất không, vì họ có thể đã thêm hỗ trợ cho Paypal Express hoặc khắc phục sự cố bạn đang gặp phải. Nếu không, hãy liên hệ với bộ phận hỗ trợ của họ và cố gắng nhận được sự giúp đỡ từ họ.

Giải pháp tùy chỉnh

LƯU Ý: Vui lòng không bao giờ sửa đổi tệp Magento lõi. Nếu không có sự thay thế (sử dụng người quan sát, v.v.), hãy sao chép tệp trong nhómcục bộ và ghi đè lên đó.

Bạn nên xem qua ứng dụng tệp / mã / lõi / Mage / Paypal / Model / Cart.php dòng # 318 . Như bạn có thể thấy Magento gửi một sự kiện ở đó mà bạn có thể sử dụng để cố gắng khắc phục vấn đề này.
Bằng cách quan sát sự kiện đó, bạn sẽ có thể truy cập vào đối tượng Mage_Paypal_Model_Cart thực tế có chứa các mặt hàng và tổng số của giỏ hàng sẽ được gửi tới Paypal.

Tôi xin lỗi, nhưng không biết tiện ích mở rộng Reward Points Pro hoạt động như thế nào trong nội bộ, tôi không thể cung cấp cho bạn hướng dẫn chính xác với mã và mọi thứ. Về cơ bản, bạn nên cố gắng hiểu những gì xảy ra trong các phương thức _render () & _validate () trong ứng dụng / code / core / Mage / Paypal / Model / Cart.php và đảm bảo giảm giá từ việc sử dụng điểm được áp dụng chính xác.

Ngoài ra, tôi không thể hiểu chính xác phần cuối cùng sau mã, nhưng vui lòng cho tôi biết nếu bạn có bất kỳ câu hỏi nào.


Giải pháp tuyệt vời, nó hoạt động hoàn hảo, nhưng cần thêm một sửa đổi. Trên cùng một tệp php, có thêm một phương thức _addRegularItem (). AMount cũng đề cập đến. Phải sửa đổi điều đó.
Bướm

0

Vấn đề không nằm ở mã, mà là vấn đề cấu hình. Chỉ cần đảm bảo rằng thuế của bạn được áp dụng cho tổng phụ thay vì trên tổng số lớn. Kiểm tra ảnh chụp màn hình đính kèm. Đảm bảo "Mục hàng chuyển hàng" của bạn được đặt thành CÓ cũng là "Tùy chọn giao hàng chuyển" thành CÓ.nhập mô tả hình ảnh ở đây


0

Chúng tôi đã có cùng một lỗi paypal và phát hiện ra rằng khi một bài viết về "miễn thuế" thì vấn đề đã biến mất. Vì vậy, chúng tôi đã hủy kích hoạt một plugin thanh toán một phần để tính toán lại một số tổng. Vì vậy, điều này đã giúp trong trường hợp của chúng tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.