Order and Order Line Item Data - RMUCapstone-MIS590/Team-A GitHub Wiki

In an effort to unify CLI, API, and WP Admin, new CRUD classes are being implemented to form a new 'data manipulation API'.

Each CRUD class contains a representation of the data in array format which can be used by endpoints. This representation may differ from the actual stored 'meta keys' mainly due to legacy, but should represent the objects more clearly.

To get the data from an object, such as an order or line item, $object->get_data() is used. The following structure is used based on stored data and the v3 REST API.

Abstract Order

This abstract order type is extended by Refunds and Orders.

Name Type Description Example
id int Order ID 1
parent_id int Parent Order ID 2
status string Order Status wc-pending
type string Order type. Valid values: shop_order, refund shop_order
order_key string Random hash/order key xxxxxxxx
currency string Currency the order was created with GBP
version string Version of WooCommerce when the order was made. 2.5.0
prices_include_tax bool Did the prices include tax during checkout? true
date_created string Timestamp order was created 1456237333
date_modified string Timestamp order was last modified 1456237333
customer_id int User ID who owns the order. 0 for guests 1
discount_total string Total discount amount for the order. Ran through wc_format_decimal. Sum of line item discounts. 20.00
discount_tax string Total discount tax amount for the order. Ran through wc_format_decimal. Sum of line item tax discounts. 2.00
shipping_total string Total shipping amount for the order. Ran through wc_format_decimal. Sum of shipping lines. Does not include taxes. 12.00
shipping_tax string Total shipping tax amount for the order. Ran through wc_format_decimal. Sum of shipping line taxes. 2.00
cart_tax string Sum of line item taxes only. Ran through wc_format_decimal. Previously referred to as order_tax but renamed for clarity. 20.00
total string Grand total. Ran through wc_format_decimal. 20.00
total_tax string Sum of ALL taxes. Ran through wc_format_decimal. 20.00
line_items array Read only array of line item objects. See below.
tax_lines array Read only array of tax line item objects. See below.
shipping_lines array Read only array of shipping line item objects. See below.
fee_lines array Read only array of fee objects. See below.
coupon_lines array Read only array of coupon objects. See below.
meta_data array Array of order item meta data. array( 100 => array( 100 => array( 'key' => 'value' ), 101 => array( 'key' => 'value' ) )

Refund

Abstract order properties, plus the following:

Name Type Description Example
refund_amount float Amount refunded. 20.00
refund_reason string Reason for refund. Broken on arrival.
refunded_by int ID of user who performed the refund. 1

Order

Abstract order properties, plus the following:

Name Type Description Example
billing array Array of billing address data. See address data below.
shipping array Array of shipping address data. See address data below.
payment_method string Payment method ID. paypal
payment_method_title string Payment method title. PayPal
transaction_id string Unique transaction ID 123456
customer_ip_address string Customer's IP address. 86.163.90.200
customer_user_agent string User agent of the customer. Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36
created_via string What created the order? checkout
customer_note string Note left by customer during checkout. Please leave package by the back gate.
date_paid string Timestamp of payment date. 1456237333
cart_hash string md5 hash of cart items to ensure orders are not modified.

Billing address

Name Type Description Example
first_name string Billing first name Michael
last_name string Billing last name Jolley
company string Billing company name Automattic
address_1 string Billing address line 1 32 Wiggely Point
address_2 string Billing address line 2 Some street
city string Billing address city Cambridge
state string Billing address state/county Cambridgeshire
postcode string Billing address postcode/zip CB23 1PO
country string Billing address country code in ISO 3166-1 alpha-2 format GB
email string Billing email [email protected]
phone string Billing phone number 123456789

Shipping Address

Name Type Description Example
first_name string Shipping first name Michael
last_name string Shipping last name Jolley
company string Shipping company name Automattic
address_1 string Shipping address line 1 32 Wiggely Point
address_2 string Shipping address line 2 Some street
city string Shipping address city Cambridge
state string Shipping address state/county Cambridgeshire
postcode string Shipping address postcode/zip CB23 1PO
country string Shipping address country code in ISO 3166-1 alpha-2 format GB

Line Item (product)

Name Type Description Example
order_id int Order ID this item belongs to. 1
order_item_id int Item ID. 1
name string Product name. Pants
product_id int Product ID. 1
variation_id int Variation ID, if applicable. 1
qty int Quantity ordered. 1
tax_class string Tax class of product reduced-rate
subtotal string Line subtotal (before discounts). Ran through wc_format_decimal. 19.00
subtotal_tax string Line subtotal tax (before discounts). Ran through wc_format_decimal. 1.00
total string Line total (after discounts). Ran through wc_format_decimal. 19.00
total_tax string Line total tax (after discounts). Ran through wc_format_decimal. 1.00
taxes array Line item taxes for both total and subtotal. Array of Rate ID => Total. array( 'subtotal' => array( 1 => '20.00', 2 => '10.00' ), 'total' => array( 1 => '20.00', 2 => '10.00' ) )
meta_data array Array of order item meta data. array( 100 => array( 100 => array( 'key' => 'value' ), 101 => array( 'key' => 'value' ) )

Fee Line

Name Type Description Example
order_id int Order ID this item belongs to. 1
order_item_id int Item ID. 1
name string Fee name. Pants
tax_class string Tax class of fee. reduced-rate
tax_status string Tax status of fee. taxable
total string Line total (after discounts). Ran through wc_format_decimal. 19.00
total_tax string Line total tax (after discounts). Ran through wc_format_decimal. 1.00
taxes array Line item taxes for both total. Array of Rate ID => Total. array( 'total' => array( 1 => '20.00', 2 => '10.00' ) )
meta_data array Array of order item meta data. array( 100 => array( 100 => array( 'key' => 'value' ), 101 => array( 'key' => 'value' ) )

Shipping Line

Name Type Description Example
order_id int Order ID this item belongs to. 1
order_item_id int Item ID. 1
method_title string Shipping method name. Flat Rate
method_id int Shipping method ID. flat_rate
total string Line total (after discounts). Ran through wc_format_decimal. 19.00
total_tax string Line total tax (after discounts). Ran through wc_format_decimal. 1.00
taxes array Line item taxes. Array of Rate ID => Total. array( 'total' => array( 1 => '20.00', 2 => '10.00' ) )
meta_data array Array of order item meta data. array( 100 => array( 100 => array( 'key' => 'value' ), 101 => array( 'key' => 'value' ) )

Tax Line

Name Type Description Example
order_id int Order ID this item belongs to. 1
order_item_id int Item ID. 1
rate_code string Tax Rate code. GB-TAX-1
rate_id int Tax rate ID. 10
label string Tax rate label. VAT
compound bool Is this a compound tax rate? false
tax_total string Tax total (not including shipping taxes). Ran through wc_format_decimal. 19.00
shipping_tax_total string Shipping tax total. Ran through wc_format_decimal. 1.00
meta_data array Array of order item meta data. array( 100 => array( 100 => array( 'key' => 'value' ), 101 => array( 'key' => 'value' ) )

Coupon Line

Name Type Description Example
order_id int Order ID this item belongs to. 1
order_item_id int Item ID. 1
code string Coupon code. DISCOUNT-1
discount string Discount total. Ran through wc_format_decimal. 19.00
discount_tax string Discount total tax. Ran through wc_format_decimal. 1.00
meta_data array Array of order item meta data. array( 100 => array( 100 => array( 'key' => 'value' ), 101 => array( 'key' => 'value' ) )