From bbd186eef593a9b240232e9ae6a744d67c09d386 Mon Sep 17 00:00:00 2001 From: "Ronald A. Richardson" Date: Sun, 7 Dec 2025 15:09:13 +0800 Subject: [PATCH 1/2] v0.4.10 ~ update service quote api to use configured order config --- composer.json | 2 +- extension.json | 2 +- package.json | 2 +- .../Controllers/v1/ServiceQuoteController.php | 10 +++++----- server/src/Support/Storefront.php | 16 ++++++++++++++++ 5 files changed, 24 insertions(+), 8 deletions(-) diff --git a/composer.json b/composer.json index 6f460bc..4b71169 100644 --- a/composer.json +++ b/composer.json @@ -1,6 +1,6 @@ { "name": "fleetbase/storefront-api", - "version": "0.4.9", + "version": "0.4.10", "description": "Headless Commerce & Marketplace Extension for Fleetbase", "keywords": [ "fleetbase-extension", diff --git a/extension.json b/extension.json index 506053e..a537588 100644 --- a/extension.json +++ b/extension.json @@ -1,6 +1,6 @@ { "name": "Storefront", - "version": "0.4.9", + "version": "0.4.10", "description": "Headless Commerce & Marketplace Extension for Fleetbase", "repository": "https://github.com/fleetbase/storefront", "license": "AGPL-3.0-or-later", diff --git a/package.json b/package.json index a6fdc96..2083f47 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@fleetbase/storefront-engine", - "version": "0.4.9", + "version": "0.4.10", "description": "Headless Commerce & Marketplace Extension for Fleetbase", "fleetbase": { "route": "storefront", diff --git a/server/src/Http/Controllers/v1/ServiceQuoteController.php b/server/src/Http/Controllers/v1/ServiceQuoteController.php index 74ea0c4..9c3f9b7 100644 --- a/server/src/Http/Controllers/v1/ServiceQuoteController.php +++ b/server/src/Http/Controllers/v1/ServiceQuoteController.php @@ -5,7 +5,6 @@ use Fleetbase\FleetOps\Http\Resources\v1\ServiceQuote as ServiceQuoteResource; use Fleetbase\FleetOps\Models\Entity; use Fleetbase\FleetOps\Models\IntegratedVendor; -use Fleetbase\FleetOps\Models\OrderConfig; use Fleetbase\FleetOps\Models\Place; use Fleetbase\FleetOps\Models\ServiceQuote; use Fleetbase\FleetOps\Models\ServiceQuoteItem; @@ -19,6 +18,7 @@ use Fleetbase\Storefront\Models\Product; use Fleetbase\Storefront\Models\Store; use Fleetbase\Storefront\Models\StoreLocation; +use Fleetbase\Storefront\Support\Storefront; use Fleetbase\Support\Utils as CoreUtils; use Illuminate\Support\Str; @@ -102,11 +102,11 @@ public function fromCart(GetServiceQuoteFromCart $request) $serviceQuotes = collect(); // get order configurations for ecommerce / task - $orderConfig = OrderConfig::resolveFromIdentifier($config); + $orderConfig = Storefront::getSessionOrderConfig(); $orderConfigKey = data_get($orderConfig, 'key', 'storefront'); // get service rates for config type - $serviceRates = ServiceRate::where('service_type', $orderConfigKey)->get(); + $serviceRates = ServiceRate::where(['company_uuid' => session('company'), 'service_type' => $orderConfigKey])->get(); // if no service rates send an empty quote if ($serviceRates->isEmpty()) { @@ -290,11 +290,11 @@ public function fromCartForNetwork(GetServiceQuoteFromCart $request) $serviceQuotes = collect(); // get order configurations for ecommerce / task - $orderConfig = OrderConfig::resolveFromIdentifier($config); + $orderConfig = Storefront::getSessionOrderConfig(); $orderConfigKey = data_get($orderConfig, 'key', 'storefront'); // get service rates for config type - $serviceRates = ServiceRate::where('service_type', $orderConfigKey)->get(); + $serviceRates = ServiceRate::where(['company_uuid' => session('company'), 'service_type' => $orderConfigKey])->get(); // if no service rates send an empty quote if ($serviceRates->isEmpty()) { diff --git a/server/src/Support/Storefront.php b/server/src/Support/Storefront.php index 2aa577f..4047616 100644 --- a/server/src/Support/Storefront.php +++ b/server/src/Support/Storefront.php @@ -256,6 +256,22 @@ public static function patchOrderConfig($order): ?OrderConfig return $orderConfig; } + /** + * Get the current store or networks order config. + * + * @return \Fleetbase\Storefront\Models\OrderConfig|null + */ + public static function getSessionOrderConfig(): ?OrderConfig + { + if ($about = static::about()) { + $about->loadMissing('orderConfig'); + + return $about->orderConfig ?? static::getDefaultOrderConfig(); + } + + return static::getDefaultOrderConfig(); + } + /** * Get the default Storefront OrderConfig for the "current" company context. * From 4c8ded00cef92898be379758138467e6fd179ca0 Mon Sep 17 00:00:00 2001 From: "Ronald A. Richardson" Date: Fri, 19 Dec 2025 19:08:54 +0800 Subject: [PATCH 2/2] Added caching traits + added image resize param on product images --- .../products/index/category/new.js | 10 +++++ .../templates/products/index/category/new.hbs | 45 +++++++------------ package.json | 6 +-- pnpm-lock.yaml | 32 ++++++------- .../Http/Controllers/v1/CatalogController.php | 2 +- .../Controllers/v1/CategoryController.php | 6 +-- .../Controllers/v1/CustomerController.php | 6 +-- .../Controllers/v1/FoodTruckController.php | 2 +- .../Http/Controllers/v1/ProductController.php | 2 +- .../Http/Controllers/v1/ReviewController.php | 4 +- server/src/Models/Cart.php | 2 + server/src/Models/Catalog.php | 2 + server/src/Models/FoodTruck.php | 2 + server/src/Models/Network.php | 2 + server/src/Models/Product.php | 2 + server/src/Models/Review.php | 2 + server/src/Models/Store.php | 2 + 17 files changed, 69 insertions(+), 60 deletions(-) diff --git a/addon/controllers/products/index/category/new.js b/addon/controllers/products/index/category/new.js index 1e6878f..9cda403 100644 --- a/addon/controllers/products/index/category/new.js +++ b/addon/controllers/products/index/category/new.js @@ -40,6 +40,15 @@ export default class ProductsIndexCategoryNewController extends BaseController { return this.productsIndexCategoryController?.category ?? null; } + get variantTabs() { + const variants = this.product.variants ?? []; + return variants.map((v) => ({ + label: v.name, + id: v.public_id ?? v.name, + variant: v, + })); + } + /** overlay options */ @tracked overlayTitle = 'New Product'; @tracked overlayActionButtonTitle = 'Create Product'; @@ -117,6 +126,7 @@ export default class ProductsIndexCategoryNewController extends BaseController { subject_uuid: this.product.id, subject_type: 'storefront:product', type: 'storefront_product', + resize: 'md', }, (uploadedFile) => { this.product.files.pushObject(uploadedFile); diff --git a/addon/templates/products/index/category/new.hbs b/addon/templates/products/index/category/new.hbs index 8990c83..c9624c9 100644 --- a/addon/templates/products/index/category/new.hbs +++ b/addon/templates/products/index/category/new.hbs @@ -100,25 +100,6 @@
- {{!-- {{#each this.product.meta_array as |metaField index|}} -
-
- - -
-
- {{/each}} --}} @@ -130,7 +111,7 @@ /> -
+
This is a service @@ -164,18 +145,19 @@
- -
-
- - {{#each this.product.variants as |variant|}} - + + + <:actions> +
- - {{/each}} - + {{/let}} + + @@ -248,6 +232,7 @@