什么可能导致Magento在Paypal重定向上将新地址更改回默认地址?

时间:2013-08-05 16:35:38

标签: magento paypal

我在使用Paypal Express的Onepage结账时遇到了一个奇怪的错误。

登录客户“即时”输入新的帐单邮寄地址,设置“保存在地址簿”和“发送到此地址”,然后结帐。

此时地址已正确保存在数据库中。

客户选择Paypal和Magento通过它的逻辑(收集总计,保存报价 - 两次和数据检查等)。

我已经使用Xdebug逐步完成了逻辑,并且在afterSave()中第318行的/app/code/core/Mage/Sales/Model/Quote.php中重定向到Paypal之前无法精确定位回调,有一条线

if (null !== $this->_addresses) {
    $this->getAddressesCollection()->save();
}

在$ this-> getAddressesCollection()中,结算和送货地址错误,它们都是客户的默认设置。但是,数据库仍然是正确的。

一旦 - > save()触发,就会覆盖正确的。

这肯定是Magento的错误,但我需要找到一个解决方案。这是EE 1.11.1.0。

以前有人经历过这个吗?

由于

2 个答案:

答案 0 :(得分:0)

我有一个类似的错误,也许和你一样。如果您在地址簿中选择一个地址作为默认地址,则会搞定一页结帐。

说我的地址簿中有3个人:John,Suzy和Bill。

有一天,我碰巧在我的地址簿中,我选择John作为我的默认结算和送货地址。然后我转到我的购物车,订购一些商品,选择约作为结算,然后选择运送到其他地址。在下一步中,我选择Suzy作为我要发货的船。我点击下一步转到发货方法步骤,但哇,等等! Suzy的地址已被覆盖并替换为Johns地址。

这里发布了完全相同的问题(虽然我不认为这个人知道发生了什么,但屏幕截图是相同的结果):http://www.magentocommerce.com/boards/viewthread/7520/P0/

问题出在opcheckout.js文件中。我有一个修复。基本上一旦选择了默认地址,添加新地址表单(隐藏表单)总是填充您的默认地址。

通常,如果没有在地址簿中选择默认地址,我相信opcheckout.js会使用您在选择框中选择的地址正确填写隐藏字段。

以下修改后的opcheckout.js脚本:(http://pastebin.com/chiwyRJZ)将修复它,以便使用正确的数据正确填充隐藏字段。根据我的理解,这是一个旧的未修复的错误,可能是从Magento在一页结帐中添加“添加新地址”表单的任何版本

要应用此修复程序,请从粘贴bin中复制代码并将其替换为主题opcheckout.js中的代码

通常opcheckout.js位于skin \ frontend \ default \ yourtheme \ js

OR

\皮肤\前端\基\默认\ JS

答案 1 :(得分:0)

我知道发布此内容为时已晚,但我在Magento 1.9.x上遇到了这个问题。不仅是贝宝,还有所有其他付款方式。

检查这个方法是否需要创建新的引用:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

    <android.support.v7.widget.CardView
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:id="@+id/card_view"
        android:layout_gravity="center"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="5dp"
        card_view:cardCornerRadius="2dp"
        card_view:contentPadding="10dp"
        card_view:cardElevation="10dp">

        <RelativeLayout
            android:id="@+id/relativeLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingBottom="10dp"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:paddingTop="10dp">

            <TextView
                android:id="@+id/mesajTextView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentStart="true"
                android:layout_alignParentTop="true"
                android:layout_marginStart="64dp"
                android:textAppearance="?android:attr/textAppearanceLarge"
                tools:text="Mesaj" />

            <TextView
                android:id="@+id/timeNewsTextView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:layout_marginEnd="16dp"
                android:layout_marginTop="4dp"
                android:maxLength="15"
                android:maxLines="1"
                android:textAppearance="?android:attr/textAppearanceSmall"
                tools:text="14:20" />
        </RelativeLayout>

    </android.support.v7.widget.CardView>
</LinearLayout>