Skip to content

Order Promotion Stat Model

DB Table Name{wp_db_prefix}_fct_order_promotion_stats
SchemaCheck Schema
Source Filefluent-cart-pro/app/Modules/Promotional/Models/OrderPromotionStat.php
Name SpaceFluentCartPro\App\Modules\Promotional\Models
ClassFluentCartPro\App\Modules\Promotional\Models\OrderPromotionStat

Attributes

AttributeData TypeComment
idIntegerPrimary Key
promotion_idIntegerReference to order promotion
order_idIntegerReference to order
object_idIntegerReference to object (product, variation, etc.)
amountDecimalPromotion amount
statusStringPromotion status
created_atDate TimeCreation timestamp
updated_atDate TimeLast update timestamp

Usage

Please check Model Basic for Common methods.

Accessing Attributes

php
$orderPromotionStat = FluentCartPro\App\Modules\Promotional\Models\OrderPromotionStat::find(1);

$orderPromotionStat->id; // returns id
$orderPromotionStat->promotion_id; // returns promotion ID
$orderPromotionStat->order_id; // returns order ID
$orderPromotionStat->amount; // returns amount

Relations

This model has the following relationships that you can use

order

Access the associated order

  • return FluentCart\App\Models\Order Model

Example:

php
// Accessing Order
$order = $orderPromotionStat->order;

// For Filtering by order relationship
$orderPromotionStats = FluentCartPro\App\Modules\Promotional\Models\OrderPromotionStat::whereHas('order', function($query) {
    $query->where('status', 'completed');
})->get();

promotion

Access the associated order promotion

  • return FluentCartPro\App\Modules\Promotional\Models\OrderPromotion Model

Example:

php
// Accessing Promotion
$promotion = $orderPromotionStat->promotion;

// For Filtering by promotion relationship
$orderPromotionStats = FluentCartPro\App\Modules\Promotional\Models\OrderPromotionStat::whereHas('promotion', function($query) {
    $query->where('status', 'active');
})->get();

Usage Examples

Get Order Promotion Stats

php
$orderPromotionStat = FluentCartPro\App\Modules\Promotional\Models\OrderPromotionStat::find(1);
echo "Promotion ID: " . $orderPromotionStat->promotion_id;
echo "Order ID: " . $orderPromotionStat->order_id;
echo "Amount: " . $orderPromotionStat->amount;
echo "Status: " . $orderPromotionStat->status;

Create Order Promotion Stat

php
$orderPromotionStat = FluentCartPro\App\Modules\Promotional\Models\OrderPromotionStat::create([
    'promotion_id' => 1,
    'order_id' => 123,
    'object_id' => 456,
    'amount' => 15.99,
    'status' => 'applied'
]);

Get All Order Promotion Stats

php
$orderPromotionStats = FluentCartPro\App\Modules\Promotional\Models\OrderPromotionStat::all();

foreach ($orderPromotionStats as $stat) {
    echo "Promotion: " . $stat->promotion_id;
    echo "Order: " . $stat->order_id;
    echo "Amount: " . $stat->amount;
}

Get Stats by Promotion

php
$promotionStats = FluentCartPro\App\Modules\Promotional\Models\OrderPromotionStat::where('promotion_id', 1)->get();

Get Stats by Order

php
$orderStats = FluentCartPro\App\Modules\Promotional\Models\OrderPromotionStat::where('order_id', 123)->get();

Get Stats by Status

php
$appliedStats = FluentCartPro\App\Modules\Promotional\Models\OrderPromotionStat::where('status', 'applied')->get();
$declinedStats = FluentCartPro\App\Modules\Promotional\Models\OrderPromotionStat::where('status', 'declined')->get();

Get Stats with Order and Promotion Information

php
$statsWithDetails = FluentCartPro\App\Modules\Promotional\Models\OrderPromotionStat::with(['order', 'promotion'])->get();

foreach ($statsWithDetails as $stat) {
    echo "Order: " . $stat->order->id;
    echo "Promotion: " . $stat->promotion->title;
    echo "Amount: " . $stat->amount;
}

Get Stats by Amount Range

php
$highValueStats = FluentCartPro\App\Modules\Promotional\Models\OrderPromotionStat::where('amount', '>', 50.00)->get();
$lowValueStats = FluentCartPro\App\Modules\Promotional\Models\OrderPromotionStat::where('amount', '<=', 10.00)->get();

Update Order Promotion Stat

php
$orderPromotionStat = FluentCartPro\App\Modules\Promotional\Models\OrderPromotionStat::find(1);
$orderPromotionStat->update([
    'status' => 'completed',
    'amount' => 20.00
]);

Get Stats by Object ID

php
$objectStats = FluentCartPro\App\Modules\Promotional\Models\OrderPromotionStat::where('object_id', 456)->get();

Get Stats Ordered by Amount

php
$orderedStats = FluentCartPro\App\Modules\Promotional\Models\OrderPromotionStat::orderBy('amount', 'desc')->get();

Delete Order Promotion Stat

php
$orderPromotionStat = FluentCartPro\App\Modules\Promotional\Models\OrderPromotionStat::find(1);
$orderPromotionStat->delete();

Get Stats for Date Range

php
$stats = FluentCartPro\App\Modules\Promotional\Models\OrderPromotionStat::whereBetween('created_at', ['2024-01-01', '2024-01-31'])->get();

Get Stats with Promotion Details

php
$stats = FluentCartPro\App\Modules\Promotional\Models\OrderPromotionStat::with('promotion')->get();

foreach ($stats as $stat) {
    echo "Promotion: " . $stat->promotion->title;
    echo "Type: " . $stat->promotion->type;
    echo "Amount: " . $stat->amount;
}

FluentCart developer documentation