从woocommerce中的excel文件导入订单

时间:2016-05-12 06:18:56

标签: mysql sql wordpress woocommerce orders

  

通过上传Excel文件创建woocommerce订单

我们的客户有一些订单是直接打电话给我们订购的。因此,我们将其详细信息保存在excel文件中,包括每个细节(客户名称地址等,产品名称,产品ID,变体ID,折扣,优惠券详细信息等)。

我们知道如何通过php代码通过Excel将数据上传到数据库。

示例

<form name="import" method="post" enctype="multipart/form-data">
    <input type="file" name="file" /><br />
    <input type="submit" name="submit" value="Submit" />
 </form>

if(isset($_POST["submit"]))
{
$file = $_FILES['file']['tmp_name'];
$handle = fopen($file, "r");
$c = 0;

while(($filesop = fgetcsv($handle, 1000, ",")) !== false)
{
    $name = $filesop[0];
    $email = $filesop[1];

    $sql = mysql_query("INSERT INTO order (name, email) VALUES ('$name','$email')");
}

    if($sql){
        echo "Correctly uploaded";
    }else{
        echo "it's not working";
    }

}

我们知道如何获取产品的每一个细节。

但请帮助与woocommerce整合。由于我们注意到每个订单都保存在wp_postspost_type='shop_order'和订单状态为shop_order_status的分类,因此订单的客户详细信息将另存为post_meta字段和我们知道如何使用woocommerce中的每个类来检索数据,例如WC_OrderWC_Order_Item_Meta

请帮助完成此操作。如果任何人都可以解释通过sql插入查询的woocommerce的基本表结构,它也是有帮助的。

谢谢。

  

注意:我们需要创建sql查询。我们不需要创造   客户和客户元表条目,因为按此顺序   下订单的客户是我们的默认公司客户服务   帐户。因此无需考虑客户和客户元表。   真实的客户信息被添加到订单元字段中   _billing_phone,_billing_email,_shipping_address_1等

2 个答案:

答案 0 :(得分:3)

订单是自定义帖子,位于wp_posts表的第一个,'post_type'表示'shop_order'

对于每个post_id(在wp_posts表ID中),您可以在wp_postmeta表中检索所有订单详细信息。
此订单还与wp_woocommerce_order_itemswp_woocommerce_order_itemmeta有关系,其中包含与已购买产品,数量,金额,增值税相关的其他详细信息......

此订单还与wp_users(作为'customer')和wp_usermeta表相关。您可以在wp_postmeta表中检索客户ID,meta_key_customer_user

使sql查询变得复杂,因为首先需要创建用户(wp_users和wp_usermeta表)。
然后是一个复杂的查询,同时填充4个与订单相关的表。

  

- (更新) - 检索订单数据

     

表格wp_posts:

SELECT * FROM 'wp_posts' WHERE 'post_type' LIKE 'shop_order'
     

表wp_postmeta:

SELECT * FROM 'wp_postmeta' WHERE 'post_id' = xxxx
     

(xxxx是您可以在wp_posts表中找到的订单的ID)

     

表格wp_woocommerce_order_items:

SELECT * FROM 'wp_woocommerce_order_items' WHERE 'order_id' = xxxx
     

(xxxx是您可以在wp_posts表中找到的订单的ID)

     

表格wp_woocommerce_order_itemmeta:

SELECT * FROM 'wp_woocommerce_order_itemmeta' WHERE 'order_item_id' = yyyy
     

(yyyy是你可以在wp_woocommerce_order_items找到的order_id的order_item_id)

答案 1 :(得分:0)

我不确定但是通过在插件中进行一些自定义可能会对您有所帮助。

https://wordpress.org/plugins/woocommerce-csvimport/