2013-10-23 32 views
0

我有一個商店使用osCommerce與Dynamo one page checkout插件。我在orders_products表和產品表中添加了一個名爲「drop_ship_id」的新列。在checkout_process.php文件下,我相信用戶訂購的產品會被輸入到數據庫的orders_products表中。我試圖從每個訂購的產品中提取drop_ship_id字段,並將其輸入到orders_products表中,以便稍後在結帳過程中調用它。這裏是我當前的代碼剪斷:如果在osCommerce中添加新列到訂購產品

// initialized for the email confirmation 
$products_ordered = ''; 
$subtotal = 0; 
$total_tax = 0; 

for ($i=0; $i<sizeof($order->products); $i++) { 
    if (!in_array($payment, $suspended_payment)) { 
    $checkout->reduce_stock($order->products[$i]); 
} 

$sql_data_array = array('orders_id' => $insert_id, 
         'products_id' => tep_get_prid($order->products[$i]['id']), 
         'products_model' => $order->products[$i]['model'], 
         'products_name' => $order->products[$i]['name'], 
         'products_price' => $order->products[$i]['price'], 
         'final_price' => $order->products[$i]['final_price'], 
         'products_tax' => $order->products[$i]['tax'], 
         'products_quantity' => $order->products[$i]['qty'], 
      'drop_ship_id' => $order->products[$i]['drop_ship_id']); 

tep_db_perform($database['ORDERS_PRODUCTS'], $sql_data_array); 

$order_products_id = tep_db_insert_id(); 

不知道這是屬於它的地方,但我無法得到它的drop_ship_id場與此代碼轉移。有沒有人知道讓這個工作的好方法?

+0

add'print_r($ order-> products [$ i]);'在循環中檢查數據是否在這裏 –

+0

唯一的問題是我無法看到打印的內容,因爲這個文件只用於處理加載欄中的所有內容 –

+0

然後添加'die();'並使用瀏覽器的開發人員工具 - 您將看到輸出,我們將使用日誌記錄到文件 –

回答

1

您可以使用錯誤日誌,嘗試和轉儲一些信息日誌:

error_log("product id: " . $order->products[$i]['products_id'] . ", dropship order id: " . $order->products[$i]['drop_ship_id']); 

至於爲何價值不被轉讓,我會檢查幾件事情includes/classes/order.php - 創建一個新的時訂單,它會複製購物車產品列表中的值。所以,你應該確保之一:

  1. 產品在購物車中包含此字段(即本場應該是當產品從數據庫中檢索並放入購物車中的SQL選擇一個值)。

  2. 您之後通過明確寫入order.php中的值來添加該字段。

,後來,從數據庫加載保存的訂單時,你應該確保您添加到drop_ship_id您的SQL查詢。