@fleetbase/storefront-engine 0.4.9 → 0.4.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/addon/controllers/products/index/category/new.js +10 -0
- package/addon/templates/products/index/category/new.hbs +15 -30
- package/composer.json +1 -1
- package/extension.json +1 -1
- package/package.json +4 -4
- package/server/src/Http/Controllers/v1/CatalogController.php +1 -1
- package/server/src/Http/Controllers/v1/CategoryController.php +3 -3
- package/server/src/Http/Controllers/v1/CustomerController.php +3 -3
- package/server/src/Http/Controllers/v1/FoodTruckController.php +1 -1
- package/server/src/Http/Controllers/v1/ProductController.php +1 -1
- package/server/src/Http/Controllers/v1/ReviewController.php +2 -2
- package/server/src/Http/Controllers/v1/ServiceQuoteController.php +5 -5
- package/server/src/Models/Cart.php +2 -0
- package/server/src/Models/Catalog.php +2 -0
- package/server/src/Models/FoodTruck.php +2 -0
- package/server/src/Models/Network.php +2 -0
- package/server/src/Models/Product.php +2 -0
- package/server/src/Models/Review.php +2 -0
- package/server/src/Models/Store.php +2 -0
- package/server/src/Support/Storefront.php +16 -0
|
@@ -40,6 +40,15 @@ export default class ProductsIndexCategoryNewController extends BaseController {
|
|
|
40
40
|
return this.productsIndexCategoryController?.category ?? null;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
+
get variantTabs() {
|
|
44
|
+
const variants = this.product.variants ?? [];
|
|
45
|
+
return variants.map((v) => ({
|
|
46
|
+
label: v.name,
|
|
47
|
+
id: v.public_id ?? v.name,
|
|
48
|
+
variant: v,
|
|
49
|
+
}));
|
|
50
|
+
}
|
|
51
|
+
|
|
43
52
|
/** overlay options */
|
|
44
53
|
@tracked overlayTitle = 'New Product';
|
|
45
54
|
@tracked overlayActionButtonTitle = 'Create Product';
|
|
@@ -117,6 +126,7 @@ export default class ProductsIndexCategoryNewController extends BaseController {
|
|
|
117
126
|
subject_uuid: this.product.id,
|
|
118
127
|
subject_type: 'storefront:product',
|
|
119
128
|
type: 'storefront_product',
|
|
129
|
+
resize: 'md',
|
|
120
130
|
},
|
|
121
131
|
(uploadedFile) => {
|
|
122
132
|
this.product.files.pushObject(uploadedFile);
|
|
@@ -100,25 +100,6 @@
|
|
|
100
100
|
<div>
|
|
101
101
|
<MetadataEditor @value={{this.product.meta}} @onChange={{fn (mut this.product.meta)}} />
|
|
102
102
|
</div>
|
|
103
|
-
{{!-- {{#each this.product.meta_array as |metaField index|}}
|
|
104
|
-
<div class="px-4 py-3 border-b border-gray-200 dark:border-gray-700">
|
|
105
|
-
<div class="input-group">
|
|
106
|
-
<div class="flex justify-between items-center mb-1">
|
|
107
|
-
<Input
|
|
108
|
-
class="form-input border-0 px-2 py-1 m-0 bg-white dark:bg-gray-900 shadow-none"
|
|
109
|
-
@value={{metaField.label}}
|
|
110
|
-
disabled={{unauthorized}}
|
|
111
|
-
placeholder={{metaField.label}}
|
|
112
|
-
/>
|
|
113
|
-
<a href="javascript:;" class="text-xs" tabindex="-1" disabled={{unauthorized}} {{on "click" (fn this.removeMetaField index)}}>
|
|
114
|
-
<FaIcon @icon="trash" @size="sm" class="mr-1" />
|
|
115
|
-
Remove
|
|
116
|
-
</a>
|
|
117
|
-
</div>
|
|
118
|
-
<Input class="w-full form-input" @value={{metaField.value}} placeholder={{metaField.label}} disabled={{unauthorized}} />
|
|
119
|
-
</div>
|
|
120
|
-
</div>
|
|
121
|
-
{{/each}} --}}
|
|
122
103
|
</ContentPanel>
|
|
123
104
|
|
|
124
105
|
<InputGroup>
|
|
@@ -130,7 +111,7 @@
|
|
|
130
111
|
/>
|
|
131
112
|
</InputGroup>
|
|
132
113
|
|
|
133
|
-
<div class="store-boolean-settings">
|
|
114
|
+
<div class="store-boolean-settings mb-4">
|
|
134
115
|
<div class="input-group mb-0">
|
|
135
116
|
<Checkbox @value={{this.product.is_service}} @onToggle={{fn (mut this.product.is_service)}} @disabled={{unauthorized}}>
|
|
136
117
|
<FaIcon @icon="house-leave" class="text-indigo-400 mx-2" /><span class="dark:text-gray-100 text-sm">This is a service</span>
|
|
@@ -164,18 +145,19 @@
|
|
|
164
145
|
</div>
|
|
165
146
|
</div>
|
|
166
147
|
|
|
167
|
-
<ContentPanel @title="Variants" @open={{true}} @wrapperClass="bordered-top">
|
|
168
|
-
<
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
148
|
+
<ContentPanel @title="Variants" @open={{true}} @wrapperClass="bordered-top" @panelBodyWrapperClass="px-0i">
|
|
149
|
+
<TabNavigation @tabs={{this.variantTabs}}>
|
|
150
|
+
<:actions>
|
|
151
|
+
<Button @text="New Variant" @size="xs" @icon="plus" @iconPrefix="fas" @onClick={{this.createProductVariant}} @permission="storefront create product-variant" />
|
|
152
|
+
</:actions>
|
|
153
|
+
<:default as |activeTab|>
|
|
154
|
+
{{#let activeTab.variant as |variant|}}
|
|
174
155
|
<div class="px-4 py-3">
|
|
175
156
|
<div class="flex items-center justify-end mb-3">
|
|
176
157
|
<Button
|
|
177
158
|
class="mr-2"
|
|
178
159
|
@type="danger"
|
|
160
|
+
@size="xs"
|
|
179
161
|
@text="Remove Variant"
|
|
180
162
|
@icon="trash"
|
|
181
163
|
@onClick={{fn this.removeProductVariant variant}}
|
|
@@ -184,6 +166,7 @@
|
|
|
184
166
|
<Button
|
|
185
167
|
class="mr-2"
|
|
186
168
|
@type="warning"
|
|
169
|
+
@size="xs"
|
|
187
170
|
@text="Edit Variant"
|
|
188
171
|
@icon="pencil"
|
|
189
172
|
@onClick={{fn this.editProductVariant variant}}
|
|
@@ -192,6 +175,7 @@
|
|
|
192
175
|
<Button
|
|
193
176
|
@text={{concat "New " (lowercase variant.name) " option"}}
|
|
194
177
|
@icon="plus"
|
|
178
|
+
@size="xs"
|
|
195
179
|
@iconPrefix="fas"
|
|
196
180
|
@onClick={{fn this.addVariantOption variant}}
|
|
197
181
|
@permission="storefront create product-variant-option"
|
|
@@ -238,9 +222,9 @@
|
|
|
238
222
|
{{/each}}
|
|
239
223
|
</div>
|
|
240
224
|
</div>
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
</
|
|
225
|
+
{{/let}}
|
|
226
|
+
</:default>
|
|
227
|
+
</TabNavigation>
|
|
244
228
|
</ContentPanel>
|
|
245
229
|
|
|
246
230
|
<ContentPanel @title="Add-Ons" @open={{true}} @wrapperClass="bordered-top">
|
|
@@ -248,6 +232,7 @@
|
|
|
248
232
|
<Button
|
|
249
233
|
@text="Select Addon Categories"
|
|
250
234
|
@icon="plus"
|
|
235
|
+
@size="xs"
|
|
251
236
|
@iconPrefix="fas"
|
|
252
237
|
@onClick={{perform this.promptSelectAddonCategories}}
|
|
253
238
|
@permission="storefront list product-addon"
|
package/composer.json
CHANGED
package/extension.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fleetbase/storefront-engine",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.10",
|
|
4
4
|
"description": "Headless Commerce & Marketplace Extension for Fleetbase",
|
|
5
5
|
"fleetbase": {
|
|
6
6
|
"route": "storefront",
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"@babel/core": "^7.23.2",
|
|
47
|
-
"@fleetbase/ember-core": "^0.3.
|
|
48
|
-
"@fleetbase/ember-ui": "^0.3.
|
|
49
|
-
"@fleetbase/fleetops-data": "^0.1.
|
|
47
|
+
"@fleetbase/ember-core": "^0.3.9",
|
|
48
|
+
"@fleetbase/ember-ui": "^0.3.15",
|
|
49
|
+
"@fleetbase/fleetops-data": "^0.1.24",
|
|
50
50
|
"@fortawesome/ember-fontawesome": "^2.0.0",
|
|
51
51
|
"@fortawesome/fontawesome-svg-core": "6.4.0",
|
|
52
52
|
"@fortawesome/free-brands-svg-icons": "6.4.0",
|
|
@@ -20,7 +20,7 @@ class CatalogController extends Controller
|
|
|
20
20
|
$results = [];
|
|
21
21
|
|
|
22
22
|
if (session('storefront_store')) {
|
|
23
|
-
$results = Catalog::
|
|
23
|
+
$results = Catalog::queryWithRequestCached($request, function (&$query) use ($limit, $offset) {
|
|
24
24
|
$query->where('subject_uuid', session('storefront_store'));
|
|
25
25
|
|
|
26
26
|
if ($limit) {
|
|
@@ -23,7 +23,7 @@ class CategoryController extends Controller
|
|
|
23
23
|
$results = [];
|
|
24
24
|
|
|
25
25
|
if (session('storefront_store')) {
|
|
26
|
-
$results = Category::
|
|
26
|
+
$results = Category::queryWithRequestCached($request, function (&$query) use ($request) {
|
|
27
27
|
$query->select([DB::raw('public_id as id'), 'public_id', 'uuid', 'parent_uuid', 'icon_file_uuid', 'name', 'description', 'tags', 'translations', 'icon', 'slug', 'created_at'])->where(['owner_uuid' => session('storefront_store'), 'for' => 'storefront_product']);
|
|
28
28
|
|
|
29
29
|
// only parent categories
|
|
@@ -67,7 +67,7 @@ class CategoryController extends Controller
|
|
|
67
67
|
})->first();
|
|
68
68
|
|
|
69
69
|
if ($store) {
|
|
70
|
-
$results = Category::
|
|
70
|
+
$results = Category::queryWithRequestCached($request, function (&$query) use ($store, $request) {
|
|
71
71
|
$query->select([DB::raw('public_id as id'), 'public_id', 'uuid', 'parent_uuid', 'icon_file_uuid', 'name', 'icon', 'description', 'tags', 'translations', 'slug', 'created_at'])->where(['owner_uuid' => $store->uuid, 'for' => 'storefront_product']);
|
|
72
72
|
|
|
73
73
|
// only parent categories
|
|
@@ -102,7 +102,7 @@ class CategoryController extends Controller
|
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
} else {
|
|
105
|
-
$results = Category::
|
|
105
|
+
$results = Category::queryWithRequestCached($request, function (&$query) use ($request) {
|
|
106
106
|
$query->select([DB::raw('public_id as id'), 'public_id', 'uuid', 'parent_uuid', 'name', 'icon', 'description', 'tags', 'translations', 'slug', 'created_at'])->where(['owner_uuid' => session('storefront_network'), 'for' => 'storefront_network']);
|
|
107
107
|
|
|
108
108
|
// only parent categories
|
|
@@ -74,7 +74,7 @@ class CustomerController extends Controller
|
|
|
74
74
|
return response()->apiError('Not authorized to view customers orders');
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
$results = Order::
|
|
77
|
+
$results = Order::queryWithRequestCached($request, function (&$query) use ($customer) {
|
|
78
78
|
$query->where('customer_uuid', $customer->uuid)->whereNull('deleted_at')->withoutGlobalScopes();
|
|
79
79
|
|
|
80
80
|
// dont query any master orders if its a network
|
|
@@ -102,7 +102,7 @@ class CustomerController extends Controller
|
|
|
102
102
|
return response()->apiError('Not authorized to view customers places');
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
-
$results = Place::
|
|
105
|
+
$results = Place::queryWithRequestCached($request, function (&$query) use ($customer) {
|
|
106
106
|
$query->where('owner_uuid', $customer->uuid);
|
|
107
107
|
});
|
|
108
108
|
|
|
@@ -341,7 +341,7 @@ class CustomerController extends Controller
|
|
|
341
341
|
*/
|
|
342
342
|
public function query(Request $request)
|
|
343
343
|
{
|
|
344
|
-
$results = Contact::
|
|
344
|
+
$results = Contact::queryWithRequestCached($request, function (&$query, $request) {
|
|
345
345
|
$query->where(['type' => 'customer', 'company_uuid' => session('company')]);
|
|
346
346
|
});
|
|
347
347
|
|
|
@@ -22,7 +22,7 @@ class FoodTruckController extends Controller
|
|
|
22
22
|
$results = [];
|
|
23
23
|
|
|
24
24
|
if (session('storefront_store')) {
|
|
25
|
-
$results = FoodTruck::
|
|
25
|
+
$results = FoodTruck::queryWithRequestCached($request, function (&$query) use ($limit, $offset) {
|
|
26
26
|
$query->where('store_uuid', session('storefront_store'));
|
|
27
27
|
|
|
28
28
|
if ($limit) {
|
|
@@ -327,7 +327,7 @@ class ProductController extends Controller
|
|
|
327
327
|
*/
|
|
328
328
|
public function query(Request $request)
|
|
329
329
|
{
|
|
330
|
-
$results = Product::
|
|
330
|
+
$results = Product::queryWithRequestCached($request, function (&$query, $request) {
|
|
331
331
|
// for stores
|
|
332
332
|
if (session('storefront_store')) {
|
|
333
333
|
$query->where(['store_uuid' => session('storefront_store')]);
|
|
@@ -33,7 +33,7 @@ class ReviewController extends Controller
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
if (session('storefront_store')) {
|
|
36
|
-
$results = Review::
|
|
36
|
+
$results = Review::queryWithRequestCached($request, function (&$query) use ($limit, $offset) {
|
|
37
37
|
$query->where('subject_uuid', session('storefront_store'));
|
|
38
38
|
|
|
39
39
|
if ($limit) {
|
|
@@ -59,7 +59,7 @@ class ReviewController extends Controller
|
|
|
59
59
|
return response()->json(['error' => 'Cannot find reviews for store'], 400);
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
$results = Review::
|
|
62
|
+
$results = Review::queryWithRequestCached($request, function (&$query) use ($store, $limit, $offset) {
|
|
63
63
|
$query->where('subject_uuid', $store->uuid);
|
|
64
64
|
|
|
65
65
|
if ($limit) {
|
|
@@ -5,7 +5,6 @@ namespace Fleetbase\Storefront\Http\Controllers\v1;
|
|
|
5
5
|
use Fleetbase\FleetOps\Http\Resources\v1\ServiceQuote as ServiceQuoteResource;
|
|
6
6
|
use Fleetbase\FleetOps\Models\Entity;
|
|
7
7
|
use Fleetbase\FleetOps\Models\IntegratedVendor;
|
|
8
|
-
use Fleetbase\FleetOps\Models\OrderConfig;
|
|
9
8
|
use Fleetbase\FleetOps\Models\Place;
|
|
10
9
|
use Fleetbase\FleetOps\Models\ServiceQuote;
|
|
11
10
|
use Fleetbase\FleetOps\Models\ServiceQuoteItem;
|
|
@@ -19,6 +18,7 @@ use Fleetbase\Storefront\Models\FoodTruck;
|
|
|
19
18
|
use Fleetbase\Storefront\Models\Product;
|
|
20
19
|
use Fleetbase\Storefront\Models\Store;
|
|
21
20
|
use Fleetbase\Storefront\Models\StoreLocation;
|
|
21
|
+
use Fleetbase\Storefront\Support\Storefront;
|
|
22
22
|
use Fleetbase\Support\Utils as CoreUtils;
|
|
23
23
|
use Illuminate\Support\Str;
|
|
24
24
|
|
|
@@ -102,11 +102,11 @@ class ServiceQuoteController extends Controller
|
|
|
102
102
|
$serviceQuotes = collect();
|
|
103
103
|
|
|
104
104
|
// get order configurations for ecommerce / task
|
|
105
|
-
$orderConfig =
|
|
105
|
+
$orderConfig = Storefront::getSessionOrderConfig();
|
|
106
106
|
$orderConfigKey = data_get($orderConfig, 'key', 'storefront');
|
|
107
107
|
|
|
108
108
|
// get service rates for config type
|
|
109
|
-
$serviceRates = ServiceRate::where('
|
|
109
|
+
$serviceRates = ServiceRate::where(['company_uuid' => session('company'), 'service_type' => $orderConfigKey])->get();
|
|
110
110
|
|
|
111
111
|
// if no service rates send an empty quote
|
|
112
112
|
if ($serviceRates->isEmpty()) {
|
|
@@ -290,11 +290,11 @@ class ServiceQuoteController extends Controller
|
|
|
290
290
|
$serviceQuotes = collect();
|
|
291
291
|
|
|
292
292
|
// get order configurations for ecommerce / task
|
|
293
|
-
$orderConfig =
|
|
293
|
+
$orderConfig = Storefront::getSessionOrderConfig();
|
|
294
294
|
$orderConfigKey = data_get($orderConfig, 'key', 'storefront');
|
|
295
295
|
|
|
296
296
|
// get service rates for config type
|
|
297
|
-
$serviceRates = ServiceRate::where('
|
|
297
|
+
$serviceRates = ServiceRate::where(['company_uuid' => session('company'), 'service_type' => $orderConfigKey])->get();
|
|
298
298
|
|
|
299
299
|
// if no service rates send an empty quote
|
|
300
300
|
if ($serviceRates->isEmpty()) {
|
|
@@ -8,6 +8,7 @@ use Fleetbase\Models\Company;
|
|
|
8
8
|
use Fleetbase\Models\User;
|
|
9
9
|
use Fleetbase\Traits\Expirable;
|
|
10
10
|
use Fleetbase\Traits\HasApiModelBehavior;
|
|
11
|
+
use Fleetbase\Traits\HasApiModelCache;
|
|
11
12
|
use Fleetbase\Traits\HasPublicId;
|
|
12
13
|
use Fleetbase\Traits\HasUuid;
|
|
13
14
|
use Illuminate\Support\Arr;
|
|
@@ -19,6 +20,7 @@ class Cart extends StorefrontModel
|
|
|
19
20
|
use HasUuid;
|
|
20
21
|
use HasPublicId;
|
|
21
22
|
use HasApiModelBehavior;
|
|
23
|
+
use HasApiModelCache;
|
|
22
24
|
use Expirable;
|
|
23
25
|
|
|
24
26
|
/**
|
|
@@ -6,6 +6,7 @@ use Fleetbase\Casts\Json;
|
|
|
6
6
|
use Fleetbase\Models\Company;
|
|
7
7
|
use Fleetbase\Models\User;
|
|
8
8
|
use Fleetbase\Traits\HasApiModelBehavior;
|
|
9
|
+
use Fleetbase\Traits\HasApiModelCache;
|
|
9
10
|
use Fleetbase\Traits\HasPublicid;
|
|
10
11
|
use Fleetbase\Traits\HasUuid;
|
|
11
12
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
|
@@ -17,6 +18,7 @@ class Catalog extends StorefrontModel
|
|
|
17
18
|
use HasUuid;
|
|
18
19
|
use HasPublicid;
|
|
19
20
|
use HasApiModelBehavior;
|
|
21
|
+
use HasApiModelCache;
|
|
20
22
|
|
|
21
23
|
/**
|
|
22
24
|
* The type of public ID to generate.
|
|
@@ -9,6 +9,7 @@ use Fleetbase\FleetOps\Models\Zone;
|
|
|
9
9
|
use Fleetbase\LaravelMysqlSpatial\Types\Point;
|
|
10
10
|
use Fleetbase\Storefront\Http\Resources\FoodTruck as FoodTruckResource;
|
|
11
11
|
use Fleetbase\Traits\HasApiModelBehavior;
|
|
12
|
+
use Fleetbase\Traits\HasApiModelCache;
|
|
12
13
|
use Fleetbase\Traits\HasPublicid;
|
|
13
14
|
use Fleetbase\Traits\HasUuid;
|
|
14
15
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
|
@@ -22,6 +23,7 @@ class FoodTruck extends StorefrontModel
|
|
|
22
23
|
use HasUuid;
|
|
23
24
|
use HasPublicid;
|
|
24
25
|
use HasApiModelBehavior;
|
|
26
|
+
use HasApiModelCache;
|
|
25
27
|
use SoftDeletes;
|
|
26
28
|
|
|
27
29
|
/**
|
|
@@ -13,6 +13,7 @@ use Fleetbase\Models\Invite;
|
|
|
13
13
|
use Fleetbase\Models\User;
|
|
14
14
|
use Fleetbase\Storefront\Support\Storefront;
|
|
15
15
|
use Fleetbase\Traits\HasApiModelBehavior;
|
|
16
|
+
use Fleetbase\Traits\HasApiModelCache;
|
|
16
17
|
use Fleetbase\Traits\HasOptionsAttributes;
|
|
17
18
|
use Fleetbase\Traits\HasPublicid;
|
|
18
19
|
use Fleetbase\Traits\HasUuid;
|
|
@@ -26,6 +27,7 @@ class Network extends StorefrontModel
|
|
|
26
27
|
use HasUuid;
|
|
27
28
|
use HasPublicid;
|
|
28
29
|
use HasApiModelBehavior;
|
|
30
|
+
use HasApiModelCache;
|
|
29
31
|
use HasOptionsAttributes;
|
|
30
32
|
use HasSlug;
|
|
31
33
|
use Searchable;
|
|
@@ -9,6 +9,7 @@ use Fleetbase\Models\Category;
|
|
|
9
9
|
use Fleetbase\Models\File;
|
|
10
10
|
use Fleetbase\Models\User;
|
|
11
11
|
use Fleetbase\Traits\HasApiModelBehavior;
|
|
12
|
+
use Fleetbase\Traits\HasApiModelCache;
|
|
12
13
|
use Fleetbase\Traits\HasMetaAttributes;
|
|
13
14
|
use Fleetbase\Traits\HasPublicid;
|
|
14
15
|
use Fleetbase\Traits\HasUuid;
|
|
@@ -30,6 +31,7 @@ class Product extends StorefrontModel
|
|
|
30
31
|
use HasUuid;
|
|
31
32
|
use HasPublicid;
|
|
32
33
|
use HasApiModelBehavior;
|
|
34
|
+
use HasApiModelCache;
|
|
33
35
|
use HasMetaAttributes;
|
|
34
36
|
use HasSlug;
|
|
35
37
|
use Searchable;
|
|
@@ -5,6 +5,7 @@ namespace Fleetbase\Storefront\Models;
|
|
|
5
5
|
use Fleetbase\Models\File;
|
|
6
6
|
use Fleetbase\Models\User;
|
|
7
7
|
use Fleetbase\Traits\HasApiModelBehavior;
|
|
8
|
+
use Fleetbase\Traits\HasApiModelCache;
|
|
8
9
|
use Fleetbase\Traits\HasPublicid;
|
|
9
10
|
use Fleetbase\Traits\HasUuid;
|
|
10
11
|
|
|
@@ -13,6 +14,7 @@ class Review extends StorefrontModel
|
|
|
13
14
|
use HasUuid;
|
|
14
15
|
use HasPublicid;
|
|
15
16
|
use HasApiModelBehavior;
|
|
17
|
+
use HasApiModelCache;
|
|
16
18
|
|
|
17
19
|
/**
|
|
18
20
|
* The type of public Id to generate.
|
|
@@ -13,6 +13,7 @@ use Fleetbase\Models\User;
|
|
|
13
13
|
use Fleetbase\Storefront\Support\Storefront;
|
|
14
14
|
use Fleetbase\Support\Utils as FleetbaseUtils;
|
|
15
15
|
use Fleetbase\Traits\HasApiModelBehavior;
|
|
16
|
+
use Fleetbase\Traits\HasApiModelCache;
|
|
16
17
|
use Fleetbase\Traits\HasMetaAttributes;
|
|
17
18
|
use Fleetbase\Traits\HasOptionsAttributes;
|
|
18
19
|
use Fleetbase\Traits\HasPublicid;
|
|
@@ -28,6 +29,7 @@ class Store extends StorefrontModel
|
|
|
28
29
|
use HasUuid;
|
|
29
30
|
use HasPublicid;
|
|
30
31
|
use HasApiModelBehavior;
|
|
32
|
+
use HasApiModelCache;
|
|
31
33
|
use HasOptionsAttributes;
|
|
32
34
|
use HasMetaAttributes;
|
|
33
35
|
use HasSlug;
|
|
@@ -256,6 +256,22 @@ class Storefront
|
|
|
256
256
|
return $orderConfig;
|
|
257
257
|
}
|
|
258
258
|
|
|
259
|
+
/**
|
|
260
|
+
* Get the current store or networks order config.
|
|
261
|
+
*
|
|
262
|
+
* @return \Fleetbase\Storefront\Models\OrderConfig|null
|
|
263
|
+
*/
|
|
264
|
+
public static function getSessionOrderConfig(): ?OrderConfig
|
|
265
|
+
{
|
|
266
|
+
if ($about = static::about()) {
|
|
267
|
+
$about->loadMissing('orderConfig');
|
|
268
|
+
|
|
269
|
+
return $about->orderConfig ?? static::getDefaultOrderConfig();
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
return static::getDefaultOrderConfig();
|
|
273
|
+
}
|
|
274
|
+
|
|
259
275
|
/**
|
|
260
276
|
* Get the default Storefront OrderConfig for the "current" company context.
|
|
261
277
|
*
|