2012-07-10 47 views

回答

5

如果你在Magento的> = 1.4.1,您可以運行在你的數據庫:

UPDATE sales_flat_order 
    SET customer_id = YOUR_CUSTOMER_ID_HERE 
WHERE entity_id = YOUR_ORDER_ID_HERE AND customer_id IS NULL 

你也將需要升級的 「網格」 表:

UPDATE sales_flat_order_grid 
    SET customer_id = YOUR_CUSTOMER_ID_HERE 
WHERE entity_id = YOUR_ORDER_ID_HERE AND customer_id IS NULL 
7

這似乎也工作..

$order_id = 5; // Your Order ID 
$customer_id = 7; //Customer ID 

$_order = Mage::getModel('sales/order')->load($order_id); 

if($_order->getCustomerId() == NULL){ 
    $_order->setCustomerId($customer_id); 
    $_order->save(); 
} 
0

我使用的Magento 1.9.0.1,我用它來改變以下信息:
對於表sales_flat_order
=>改變CUSTOMER_ID從NULL到新CUSTOMER_ID
=>customer_is_guest到。

也爲表sales_flat_order_grid
=>更改CUSTOMER_ID從NULL到新的customer_id

繼2個查詢將做的工作:

UPDATE sales_flat_order 
    SET customer_id = (Your_Customer_ID), customer_is_guest=0 
    WHERE entity_id = Your_Order_ID_HERE AND customer_id IS NULL 

UPDATE sales_flat_order_grid 
    SET customer_id = Your_Customer_ID 
    WHERE entity_id = Your_Order_ID AND customer_id IS NULL 
1

由於從後端它更容易從訂單獲得increment_id比實體ID我更喜歡使用以下兩個查詢:

UPDATE sales_flat_order 
    SET customer_id = YOUR_CUSTOMER_ID_HERE, customer_is_guest=0, customer_group_id = YOUR_CUSTOMER_GROUP_ID_HERE 
    WHERE increment_id = YOUR_INCREMENT_ID_HERE AND customer_id IS NULL 

UPDATE sales_flat_order_grid 
    SET customer_id = YOUR_CUSTOMER_ID_HERE, 
    WHERE increment_id = YOUR_INCREMENT_ID_HERE AND customer_id IS NULL 
0

爲了擴大在什麼R,S發佈:

如果你想在管理訂單屏幕,以反映該成員是一羣什麼你需要幾行:

$customer_id = xxxx; //Customer ID 
$order_increment_id = xxxxxxxxx; //Admin order increment id 
$_order = Mage::getModel('sales/order')->loadByIncrementId($order_increment_id); 

if($_order->getCustomerId() == NULL){ 
    $_order->setCustomerId($customer_id); 
} 

if($_order->getCustomerIsGuest() == "1"){ 
    $_order->setCustomerIsGuest(0); 
} 

if($_order->getCustomerGroupId() == "0"){ 
    $_order->setCustomerGroupId(1); 
} 

$_order->save();