## Major Features Added - Sale pricing support throughout checkout flow - Stock notification system for out-of-stock products - Backorder request system with job queue processing - Inventory management dashboard and tracking - Product observer for automatic inventory alerts ## Sale Pricing Fixes - Fixed checkout to respect sale_price when available - Updated cart calculations to use sale pricing - Added sale badges and strikethrough pricing to: - Product preview pages - Cart display - Checkout summary - Order details (buyer/seller) - Invoice displays ## UI/UX Improvements - Moved backorder quantity controls below button (better vertical flow) - Added case quantity display with unit counts - Fixed invoice total calculation (was showing subtotal as total) - Added payment terms surcharge visibility in invoice breakdown ## Database Changes - Created stock_notifications table for back-in-stock alerts - Created backorders table for customer backorder requests - Enhanced inventory_items and inventory_movements tables - Added missing marketplace fields to products and brands ## Bug Fixes - Fixed unit_price calculation to respect sale_price - Fixed invoice JavaScript calculateTotal() to include surcharges - Fixed CartController subtotal to use sale pricing - Removed inline styles, migrated to Tailwind/DaisyUI classes ## Architecture Improvements - Added BackorderService and StockNotificationService - Created ProcessBackorderRequest job for async processing - Implemented ProductObserver for inventory management - Enhanced OrderModificationService 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
199 lines
5.5 KiB
PHP
199 lines
5.5 KiB
PHP
<?php
|
|
|
|
return [
|
|
|
|
'enabled' => env('AUDITING_ENABLED', true),
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Audit Implementation
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Define which Audit model implementation should be used.
|
|
|
|
|
*/
|
|
|
|
'implementation' => OwenIt\Auditing\Models\Audit::class,
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| User Morph prefix & Guards
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Define the morph prefix and authentication guards for the User resolver.
|
|
|
|
|
*/
|
|
|
|
'user' => [
|
|
'morph_prefix' => 'user',
|
|
'guards' => [
|
|
'web',
|
|
'api',
|
|
],
|
|
'resolver' => OwenIt\Auditing\Resolvers\UserResolver::class,
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Audit Resolvers
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Define the IP Address, User Agent and URL resolver implementations.
|
|
|
|
|
*/
|
|
'resolvers' => [
|
|
'ip_address' => OwenIt\Auditing\Resolvers\IpAddressResolver::class,
|
|
'user_agent' => OwenIt\Auditing\Resolvers\UserAgentResolver::class,
|
|
'url' => OwenIt\Auditing\Resolvers\UrlResolver::class,
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Audit Events
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| The Eloquent events that trigger an Audit.
|
|
|
|
|
*/
|
|
|
|
'events' => [
|
|
'created',
|
|
'updated',
|
|
'deleted',
|
|
'restored',
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Strict Mode
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Enable the strict mode when auditing?
|
|
|
|
|
*/
|
|
|
|
'strict' => false,
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Global exclude
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Have something you always want to exclude by default? - add it here.
|
|
| Note that this is overwritten (not merged) with local exclude
|
|
|
|
|
*/
|
|
|
|
'exclude' => [],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Empty Values
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Should Audit records be stored when the recorded old_values & new_values
|
|
| are both empty?
|
|
|
|
|
| Some events may be empty on purpose. Use allowed_empty_values to exclude
|
|
| those from the empty values check. For example when auditing
|
|
| model retrieved events which will never have new and old values.
|
|
|
|
|
|
|
|
*/
|
|
|
|
'empty_values' => true,
|
|
'allowed_empty_values' => [
|
|
'retrieved',
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Allowed Array Values
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Should the array values be audited?
|
|
|
|
|
| By default, array values are not allowed. This is to prevent performance
|
|
| issues when storing large amounts of data. You can override this by
|
|
| setting allow_array_values to true.
|
|
*/
|
|
'allowed_array_values' => false,
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Audit Timestamps
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Should the created_at, updated_at and deleted_at timestamps be audited?
|
|
|
|
|
*/
|
|
|
|
'timestamps' => false,
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Audit Threshold
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Specify a threshold for the amount of Audit records a model can have.
|
|
| Zero means no limit.
|
|
|
|
|
*/
|
|
|
|
'threshold' => 0,
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Audit Driver
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| The default audit driver used to keep track of changes.
|
|
|
|
|
*/
|
|
|
|
'driver' => 'database',
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Audit Driver Configurations
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Available audit drivers and respective configurations.
|
|
|
|
|
*/
|
|
|
|
'drivers' => [
|
|
'database' => [
|
|
'table' => 'audits',
|
|
'connection' => null,
|
|
],
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Audit Queue Configurations
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Available audit queue configurations.
|
|
|
|
|
*/
|
|
|
|
'queue' => [
|
|
'enable' => false,
|
|
'connection' => 'sync',
|
|
'queue' => 'default',
|
|
'delay' => 0,
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Audit Console
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Whether console events should be audited (eg. php artisan db:seed).
|
|
|
|
|
*/
|
|
|
|
'console' => true,
|
|
];
|