我的情况与 这个问题...我的版本是1.7.0.1

在电话订单的后端创建新订单时,我们发现始终检查“相同的计费地址” tickbox。由于此,我的运输人员有时会错误地发货订单,因为某种程度上,运输地址实际上不是帐单地址。

当然,我尝试编辑应用程序/design/adminhtml/default/default/template/sales/sales/creation/creation/form/form/address.phtml在第67行上删除 <?php if($this->getIsAsBilling()): ?>checked<?php endif; ?> 从复选框中,但这绝对不是解决方案。 :p是的,该表格然后未检查,但是如果您检查它,现在应该更改时会被清除。

这让我认为我正在看症状,问题在其他地方。

请帮助,在订单开始时找到一种方法来取消选中该框?

有帮助吗?

解决方案

伙计们,这只是可怕的解决方案。您无法修改核心文件(甚至更少将它们复制到 /local),而您的问题与后端问题有关,最终您会修改一个也会改变前端的文件。

如果您检查此控制器: Mage_Adminhtml_Sales_Order_CreateController

您会看到一个函数称为 _processActionData 它设置了 setShippingAsBilling 到1。

只需创建一个扩展名并添加观察者 adminhtml_sales_order_create_process_data 应用您想要的修改。

其他提示

查看 @ app/code/cod/mage/sales/sales/sales/quote/worders.php

在第246行 _beforeSave()

if ($this->getAddressType() == Mage_Sales_Model_Quote_Address::TYPE_SHIPPING
    && $this->getSameAsBilling() === null
) {
    $this->setSameAsBilling(1);
}

if ($this->getAddressType() == Mage_Sales_Model_Quote_Address::TYPE_SHIPPING
        && $this->getSameAsBilling() === null
            && $this->getQuote()->getBillingAddress()->getData('customer_address_id') == $this->getQuote()->getShippingAddress()->getData('customer_address_id')
) {
        $this->setSameAsBilling(1);
}

为了避免更改为核心,您可以创建一个自定义模块来覆盖 Mage_Sales_Model_Quote_Addresshttp://www.magentocommerce.com/boards/viewthread/53671/ 或复制到 local 具有相同目录结构的文件夹

尝试改变 app/code/core/Mage/Sales/Model/Quote/Address.php 文件。查找功能 _beforeSave() 并查看以下行:

 if ($this->getAddressType() == Mage_Sales_Model_Quote_Address::TYPE_SHIPPING
            && $this->getSameAsBilling() === null
        ) {
            $this->setSameAsBilling(1);
        }

这些行告诉我们默认情况下的运输地址将与新报价的帐单地址相同(也是 同开票sales_flat_quote_address 表默认为null)。您应该更改为:

$this->setSameAsBilling(0);

看一眼 app/code/core/Mage/Adminhtml/Model/Sales/Order/Create.php 并找到受保护的方法 _initShippingAddressFromOrder(Mage_Sales_Model_Order $order):

$this->getQuote()->getShippingAddress()->setCustomerAddressId('');

$orderShippingAddress = $order->getShippingAddress();
$quoteShippingAddress = $this->getQuote()->getShippingAddress()
    ->setCustomerAddressId('')
    ->setSameAsBilling($orderShippingAddress && $orderShippingAddress->getSameAsBilling());

您切勿修改核心文件。只需创建一个新的模块并重写类。

许可以下: CC-BY-SA归因
scroll top