Помилки адреси доставки через Paypal


12

Я намагаюся протестувати свій магазин за допомогою PayPal Sandbox . Я отримую 2 різні помилки у 2 різних ситуаціях.
1. Все працює добре до закінчення замовлення в PayPal. Тоді отримайте повідомлення:

На жаль, PayPal не дозволяє жителям США здійснювати доставку покупок до (будь-де)

2. Друга ситуація - це коли я змінюю свою адресу доставки покупця до США. На першій сторінці в paypal я отримую наступну помилку:

Неможливо обробити платіж. Зверніться до продавця, оскільки адреса доставки, надана продавцем, недійсна, і продавець попросив, щоб ваше замовлення було доставлено на цю адресу.

Я з’ясував тут форму , що, здається, для багатьох це проблема. З тут я дізнався, що є що - то робити з address_override методом і тут пропонується , щоб вимкнути його.
Чи є спосіб вимкнути це в Magento? Чи безпечно його вимкнути? Чому вона там в першу чергу? або які інші рішення там? :

Я знайшов метод address_override в магенто в

\ app \ code \ core \ Mage \ Paypal \ Модель \ Api \ Standard.php рядок: 238 $ запит ['address_override'] = 1;

Змінив його на "0" і тепер пісочна програма Paypal працює. Помилок більше немає. Але як це зробити, не змінюючи основні файли magento? і чи безпечно це?


1
Я хотів би зазначити щось більше для інших, які страждають від тестування Paypal. У мене це працює після вимкнення address_override, але потім я затримався у статусі "Огляд платежів" у paypal. Виявляється, у налаштуваннях Magento ви повинні мати ту саму валюту, яку ви маєте в акаунті Paypal Sandbox. В іншому випадку paypal ніколи не запускає IPN для завершення замовлення.
рутер

Відповіді:


7

Ви можете зробити наступне, якщо не хочете змінювати основні файли:

  1. Створіть папки Mage/Paypal/Model/Apiпід/app/code/local/
  2. Скопіюйте файл Standard.phpіз/app/code/core/Mage/Paypal/Model/Api
  3. Вставте файл Standard.phpу/app/code/local/Mage/Paypal/Model/Api
  4. Змініть рядок 238 від
$ request ['address_override'] = 1;

до

$ request ['address_override'] = 0;

7

address_overrideПараметр є , щоб встановити адресу доставки вашого магазин Magento відправляє на Paypal , як адресу доставки , а не адресу доставки клієнта збереженого на боці Paypal.

Якщо address_overrideвстановлено значення 1, що стосується Magento, тоді Paypal підтвердить адресу доставки. Якщо параметр встановлений 0, він нібито не робить. Тому переконайтеся, що ви надсилаєте дійсну та добре відформатовану адресу на Paypal.

Я зіткнувся з цією проблемою через відсутність значення "держави". Paypal приймає лише скорочення штатів типу "CA" для "California". Для інших країн штати можуть бути недоступними у вашій установці Magento за замовчуванням, наприклад, для Мексики.

Ви налаштували будь-які поля для доставки у вашій касі?


2

Перегляньте ці відповіді на переповнення стека:
/programming/5978153
/programming/11281543

В основному, швидкий і брудний спосіб - скопіювати весь файл у свій app/code/local/Mageсвіт, але було б ще краще для оновлення, якби ви могли перевантажувати лише одну функцію одинокої роботи.

Також, якщо ще немає, будь ласка, використовуйте Github для контролю версій. Це врятувало мене не раз! Ви можете легко відстежувати всі зміни, навіть якщо вам погано і редагувати основні файли.


Я здивований, що немає кращого способу зробити це, не кажучи вже про дивовижність цієї проблеми, що існує в Magento в першу чергу. Існує опція в бек-енді, якщо такі помилки здаються типовими вже певний час. Я думаю, що я буду використовувати брудний підхід до локальних файлів, тому що писати новий модуль, бо зараз це здається трохи занадто :) Я буду копати глибше ... tnx все одно!
ruuter

Мене більше не дивує нічим, чим займається Мадженто.
Кріс К

1
це не здається багатообіцяючим: /
ruuter
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.