Skip to content

Tax Rate Model

DB Table Name{wp_db_prefix}_fct_tax_rates
SchemaCheck Schema
Source Filefluent-cart/app/Models/TaxRate.php
Name SpaceFluentCart\App\Models
ClassFluentCart\App\Models\TaxRate

Attributes

AttributeData TypeComment
idIntegerPrimary Key
class_idIntegerReference to tax class
countryStringCountry code
stateStringState/Province code
postcodeStringPostal/ZIP code
cityStringCity name
rateDecimalTax rate percentage
nameStringTax rate name
groupStringTax group
priorityIntegerPriority order
is_compoundBooleanWhether tax is compound
for_shippingBooleanWhether tax applies to shipping
for_orderBooleanWhether tax applies to order

Usage

Please check Model Basic for Common methods.

Accessing Attributes

php
$taxRate = FluentCart\App\Models\TaxRate::find(1);

$taxRate->id; // returns id
$taxRate->class_id; // returns class ID
$taxRate->country; // returns country code
$taxRate->rate; // returns tax rate

Relations

This model has the following relationships that you can use

tax_class

Access the associated tax class

  • return FluentCart\App\Models\TaxClass Model

Example:

php
// Accessing Tax Class
$taxClass = $taxRate->tax_class;

// For Filtering by tax class relationship
$taxRates = FluentCart\App\Models\TaxRate::whereHas('tax_class', function($query) {
    $query->where('title', 'Standard Tax');
})->get();

Usage Examples

Get Tax Rates

php
$taxRate = FluentCart\App\Models\TaxRate::find(1);
echo "Name: " . $taxRate->name;
echo "Rate: " . $taxRate->rate . "%";
echo "Country: " . $taxRate->country;
echo "State: " . $taxRate->state;

Create Tax Rate

php
$taxRate = FluentCart\App\Models\TaxRate::create([
    'class_id' => 1,
    'country' => 'US',
    'state' => 'CA',
    'postcode' => '90210',
    'city' => 'Beverly Hills',
    'rate' => 8.75,
    'name' => 'California Sales Tax',
    'group' => 'sales_tax',
    'priority' => 1,
    'is_compound' => false,
    'for_shipping' => true,
    'for_order' => true
]);

Get Tax Rates by Country

php
$usTaxRates = FluentCart\App\Models\TaxRate::where('country', 'US')->get();
$caTaxRates = FluentCart\App\Models\TaxRate::where('country', 'CA')->get();

Get Tax Rates by State

php
$caTaxRates = FluentCart\App\Models\TaxRate::where('country', 'US')
    ->where('state', 'CA')
    ->get();

Get Tax Rates with Tax Class

php
$taxRates = FluentCart\App\Models\TaxRate::with('tax_class')->get();

foreach ($taxRates as $rate) {
    echo "Rate: " . $rate->name . " (" . $rate->rate . "%)";
    echo "Class: " . $rate->tax_class->title;
}

Get Tax Rates by Priority

php
$orderedTaxRates = FluentCart\App\Models\TaxRate::orderBy('priority', 'asc')->get();

Get Compound Tax Rates

php
$compoundTaxRates = FluentCart\App\Models\TaxRate::where('is_compound', true)->get();
$nonCompoundTaxRates = FluentCart\App\Models\TaxRate::where('is_compound', false)->get();

Get Tax Rates for Shipping

php
$shippingTaxRates = FluentCart\App\Models\TaxRate::where('for_shipping', true)->get();

Get Tax Rates for Orders

php
$orderTaxRates = FluentCart\App\Models\TaxRate::where('for_order', true)->get();

Update Tax Rate

php
$taxRate = FluentCart\App\Models\TaxRate::find(1);
$taxRate->update([
    'rate' => 9.25,
    'name' => 'Updated California Sales Tax'
]);

Get Tax Rates by Postcode

php
$postcodeTaxRates = FluentCart\App\Models\TaxRate::where('postcode', '90210')->get();

Get Tax Rates by City

php
$cityTaxRates = FluentCart\App\Models\TaxRate::where('city', 'Beverly Hills')->get();

Delete Tax Rate

php
$taxRate = FluentCart\App\Models\TaxRate::find(1);
$taxRate->delete();

Get Tax Rates by Group

php
$salesTaxRates = FluentCart\App\Models\TaxRate::where('group', 'sales_tax')->get();
$vatTaxRates = FluentCart\App\Models\TaxRate::where('group', 'vat')->get();

FluentCart developer documentation