2016-05-12 4 views
3

Создать WooCommerce заказ загрузив Excel файлИмпорт заказов из Ехчел в WooCommerce

У нас есть заказы от наших клиентов, что они заказанные непосредственно позвонив нам. Таким образом, мы сохраняем их данные в файле excel с каждой информацией (адрес имени клиента и т. Д. С названием продукта, идентификатором продукта, идентификатором вариации, скидкой, купонными деталями и т. Д.).

Мы знаем, как загрузить данные в базу данных через excel по php.

для образца примера

<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_posts, с post_type='shop_order', а статус заказа в качестве таксономии с именем shop_order_status, информация о заказе клиента сохраняется как post_meta полей и мы знаем, как использовать каждый класс в woocommerce для извлечения данных, например WC_Order, WC_Order_Item_Meta.

Пожалуйста, помогите заполнить это. Если кто-то может объяснить основную структуру таблицы woocommerce для вставки запроса через sql, это также полезно.

спасибо.

Примечание: нам нужно создать sql-запрос. Нам не нужно создавать клиентские и клиентские таблицы метаданных, потому что в этом порядке заказчик , разместивший этот заказ, является нашей службой обслуживания клиентов по умолчанию . Поэтому не нужно думать о мета-столе клиента и клиента. Реальная информация о клиенте добавляется в мета-полей порядка, как _billing_phone, _billing_email, _shipping_address_1 и т.д.

ответ

3

Заказов являются таможенным постом и располагаются в первой wp_posts таблицы с 'post_type' как 'shop_order'.

Для каждого post_idwp_posts таблице ID) вы можете получить все детали заказа в таблице wp_postmeta.
Это заказы имеют также отношения с wp_woocommerce_order_items и wp_woocommerce_order_itemmeta, где они хранятся дополнительные детали, связанные с купленных товаров, количество, суммы, НДС ...

Это заказы, связанные также wp_users (как 'customer') и wp_usermeta таблиц. Вы можете получить идентификатор клиента в таблице wp_postmeta с 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 

(ххое это идентификатор из того, что вы можете найти в таблице wp_posts)

Таблица wp_woocommerce_order_items:

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

(ХХХЙ идентификатор заказа, который вы можете найти в таблице wp_posts)

Таблица wp_woocommerce_order_itemmeta:

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

(гггг является order_item_id из order_id, которые вы можете найти в wp_woocommerce_order_items)

+0

Действительно благодарю вас. Нам нужно создать sql-запрос друга. Нам не нужно создавать записи таблицы метаданных клиента и клиента, потому что в этом порядке заказчик, разместивший этот заказ, является нашей учетной записью по обслуживанию клиентов по умолчанию. Поэтому не нужно думать о мета-столе клиента и клиента. Реальная информация о клиенте добавляется в мета-поля заказа, такие как _billing_phone, _billing_email, _shipping_address_1 и т. Д. – Oscar

+0

и тип оплаты будет наложенным платежом. И у нас уже есть wp_users, а wp_user_meta для этих записей – Oscar

+0

Собственно, что такое заказ _order_key? это для поиска предыдущего заказа? какова реальная цель order_key? Находит идентификатор заказа на основе ключа заказа. – Oscar

0

Я не уверен, но это может быть helful вам делать некоторые настройки в плагине.

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

Хороший один друг. :). Но это плагин. Нам нужен только пример для импорта заказа, а не продукта. Но все же это хорошо, потому что это поможет понять работу продуктов. – Oscar

Смежные вопросы