/woocommerce

Corcel WooCommerce Plugin

Primary LanguagePHPMIT LicenseMIT

Corcel WooCommerce logo

A collection of Laravel models for WooCommerce.

This plugin extends base Corcel package and allows fetching WooCommerce data from WordPress database. Currently this plugin implements the following models:

  • Customer - wrapper for User model
  • Order - wrapper for Post model
  • Product - wrapper for Post model
  • Item
  • Product Category - wrapper for Taxonomy model
  • Product Tag - wrapper for Taxonomy model
  • Product Attribute - helper model for getting product attributes (should not be used directly)
  • Product Type - helper model for getting product types (should not be used directly)

Some meta values are collected into helper classes:

Compatibility list

Corcel WooCommerce Laravel PHP version
1.x 6.x, 7.x >= 7.2
2.x (master) 6.x, 7.x, 8.x >= 7.3

Currently PHP 8.0 is not supported.

Installation

composer require corcel/woocommerce

Models list

Customer model

Get customer by id

$customer = Customer::find(1);

Customer relation

$customer = Customer::find(1);

$customerOrders = $customer->orders;

Customer properties

$customer = Customer::find(1);

$customer->order_count;      // e.g. 10
$customer->billing_address;  // \Corcel\WooCommerce\Support\BillingAddress class instance
$customer->shipping_address; // \Corcel\WooCommerce\Support\ShippingAddress class instance

Order model

Get order by id

$order = Order::find(1);

Get completed orders

$completedOrders = Order::completed()->get();

For other statuses methods please check OrderBuilder.php.

Order relations

$order = Order::find(1);

$orderItems    = $order->items;
$orderCustomer = $order->customer;

Order properties

$order = Order::find(1);

$order->currency;         // e.g. EUR
$order->total;            // e.g. 10.20
$order->tax;              // e.g. 0.50
$order->shipping_tax;     // e.g. 0.20
$order->status;           // e.g. completed
$order->date_completed;   // e.g. 2020-06-01 10:00:00
$order->date_paid;        // e.g. 2020-06-01 10:00:00
$order->payment;          // \Corcel\WooCommerce\Support\Payment class instance
$order->billing_address;  // \Corcel\WooCommerce\Support\BillingAddress class instance
$order->shipping_address; // \Corcel\WooCommerce\Support\ShippingAddress class instance

Item model

Get item by id

$item = Item::find(1);

Item relations

$item = Item::find(1);

$itemOrder   = $item->order;
$itemProduct = $item->product;

Item properties

$item = Item::find(1);

$item->order_item_id;
$item->order_item_name;
$item->order_item_type;
$item->order_id;
$item->product_id;
$item->variation_id;
$item->quantity;          // e.g. 2
$item->tax_class;
$item->line_subtotal;     // e.g. 5.50
$item->line_subtotal_tax; // e.g. 0.50
$item->line_total;        // e.g. 10.50
$item->line_tax;          // e.g. 2.00

Product model

Get product by id

$product = Product::find(1);

Product relations

$product = Product::find(1);

$product->categories;
$product->items;
$product->tags;

Product properties

$product = Product::find(1);

$product->price;
$product->regular_price;
$product->sale_price;
$product->on_sale;
$product->sku;
$product->tax_status;
$product->is_taxable;
$product->weight;
$product->length;
$product->width;
$product->height;
$product->is_virtual;
$product->is_downloadable;
$product->stock;
$product->in_stock;
$product->type;
$product->attributes; // Collection of (variation) attributes
$product->crosssells; // Collection of cross-sell products
$product->upsells;    // Collection of up-sell products
$product->gallery;    // Collection of gallery attachments

Helper classes list

BillingAddress helper

This class collects customer and order meta related to billing address.

$order   = Order::find(1);
$address = $order->billingAddress;

$address->first_name;
$address->last_name;
$address->company;
$address->address_1;
$address->address_2;
$address->city;
$address->state;
$address->postcode;
$address->country;
$address->email;
$address->phone;

ShippingAddress helper

This class collects customer and order meta related to billing address.

$order   = Order::find(1);
$address = $order->shippingAddress;

$address->first_name;
$address->last_name;
$address->company;
$address->address_1;
$address->address_2;
$address->city;
$address->state;
$address->postcode;
$address->country;

Payment helper

This class collects order meta related to payment.

$order   = Order::find(1);
$payment = $order->payment;

$payment->method;
$payment->method_title;
$payment->transaction_id;