@fleetbase/storefront-engine 0.3.23 → 0.3.24

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.
@@ -221,7 +221,7 @@ export default class StorefrontService extends Service.extend(Evented) {
221
221
  modal.startLoading();
222
222
 
223
223
  try {
224
- const store = await store.save();
224
+ await store.save();
225
225
  this.notifications.success(this.intl.t('storefront.service.storefront.storefront-create-success'));
226
226
  // this.currentUser.setOption('activeStorefront', store.id);
227
227
  this.setActiveStorefront(store);
package/composer.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fleetbase/storefront-api",
3
- "version": "0.3.23",
3
+ "version": "0.3.24",
4
4
  "description": "Headless Commerce & Marketplace Extension for Fleetbase",
5
5
  "keywords": [
6
6
  "fleetbase-extension",
package/extension.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "Storefront",
3
- "version": "0.3.23",
3
+ "version": "0.3.24",
4
4
  "description": "Headless Commerce & Marketplace Extension for Fleetbase",
5
5
  "repository": "https://github.com/fleetbase/storefront",
6
6
  "license": "AGPL-3.0-or-later",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fleetbase/storefront-engine",
3
- "version": "0.3.23",
3
+ "version": "0.3.24",
4
4
  "description": "Headless Commerce & Marketplace Extension for Fleetbase",
5
5
  "fleetbase": {
6
6
  "route": "storefront",
@@ -0,0 +1,39 @@
1
+ <?php
2
+
3
+ namespace Fleetbase\Storefront\Console\Commands;
4
+
5
+ use Illuminate\Console\Command;
6
+ use Illuminate\Support\Facades\DB;
7
+
8
+ class PurgeExpiredCarts extends Command
9
+ {
10
+ /**
11
+ * The name and signature of the console command.
12
+ *
13
+ * @var string
14
+ */
15
+ protected $signature = 'storefront:purge-carts';
16
+
17
+ /**
18
+ * The console command description.
19
+ *
20
+ * @var string
21
+ */
22
+ protected $description = 'Permanently delete all expired carts from the database';
23
+
24
+ /**
25
+ * Execute the console command.
26
+ *
27
+ * @return int
28
+ */
29
+ public function handle()
30
+ {
31
+ // Alternatively, using the DB facade for direct deletion
32
+ $dbDeletedCount = DB::table('carts')->where('expires_at', '<', now())->delete();
33
+
34
+ // Log and output the results
35
+ $this->info("Successfully deleted {$dbDeletedCount} expired carts.");
36
+
37
+ return Command::SUCCESS;
38
+ }
39
+ }
@@ -0,0 +1,43 @@
1
+ <?php
2
+
3
+ namespace Fleetbase\Storefront\Http\Controllers\v1;
4
+
5
+ use Fleetbase\FleetOps\Models\Order;
6
+ use Fleetbase\Http\Controllers\Controller;
7
+ use Fleetbase\Storefront\Support\Storefront;
8
+ use Illuminate\Http\Request;
9
+
10
+ class OrderController extends Controller
11
+ {
12
+ /**
13
+ * Marks a pickup order as completed by "customer pickup".
14
+ *
15
+ * @return \Illuminate\Http\Response
16
+ */
17
+ public function completeOrderPickup(Request $request)
18
+ {
19
+ $customer = Storefront::getCustomerFromToken();
20
+ $order = Order::where('public_id', $request->order)->whereNull('deleted_at')->with(['customer'])->first();
21
+
22
+ if (!$order) {
23
+ return response()->apiError('No order found.');
24
+ }
25
+
26
+ // Confirm the completion is done by the customer
27
+ if ($order->customer_uuid !== $customer->uuid) {
28
+ return response()->apiError('Not authorized to pickup this order for completion.');
29
+ }
30
+
31
+ // Patch order config
32
+ Storefront::patchOrderConfig($order);
33
+
34
+ // update activity to completed
35
+ $order->updateStatus('completed');
36
+
37
+ return response()->json([
38
+ 'status' => 'ok',
39
+ 'order' => $order->public_id,
40
+ 'status' => $order->status,
41
+ ]);
42
+ }
43
+ }
@@ -5,8 +5,8 @@ namespace Fleetbase\Storefront\Http\Resources;
5
5
  use Fleetbase\Http\Resources\FleetbaseResource;
6
6
  use Fleetbase\Support\Http;
7
7
  use Illuminate\Support\Arr;
8
- use Illuminate\Support\Str;
9
8
  use Illuminate\Support\Collection;
9
+ use Illuminate\Support\Str;
10
10
 
11
11
  class Product extends FleetbaseResource
12
12
  {
@@ -5,7 +5,9 @@ namespace Fleetbase\Storefront\Notifications;
5
5
  use Exception;
6
6
  use Fleetbase\FleetOps\Models\Order;
7
7
  use Fleetbase\FleetOps\Support\Utils;
8
+ use Fleetbase\Storefront\Models\Network;
8
9
  use Fleetbase\Storefront\Models\NotificationChannel;
10
+ use Fleetbase\Storefront\Models\Store;
9
11
  use Fleetbase\Storefront\Support\Storefront;
10
12
  // use Fleetbase\FleetOps\Support\Utils;
11
13
  use Illuminate\Bus\Queueable;
@@ -28,6 +30,9 @@ class StorefrontOrderPreparing extends Notification
28
30
  {
29
31
  use Queueable;
30
32
 
33
+ public Order $order;
34
+ public Store|Network $storefront;
35
+
31
36
  /**
32
37
  * Create a new notification instance.
33
38
  *
@@ -55,6 +55,7 @@ class StorefrontServiceProvider extends CoreServiceProvider
55
55
  public $commands = [
56
56
  \Fleetbase\Storefront\Console\Commands\NotifyStorefrontOrderNearby::class,
57
57
  \Fleetbase\Storefront\Console\Commands\SendOrderNotification::class,
58
+ \Fleetbase\Storefront\Console\Commands\PurgeExpiredCarts::class,
58
59
  ];
59
60
 
60
61
  /**
@@ -89,6 +90,7 @@ class StorefrontServiceProvider extends CoreServiceProvider
89
90
  $this->registerCommands();
90
91
  $this->scheduleCommands(function ($schedule) {
91
92
  $schedule->command('storefront:notify-order-nearby')->everyMinute()->storeOutputInDb();
93
+ $schedule->command('storefront:purge-carts')->daily()->storeOutputInDb();
92
94
  });
93
95
  $this->registerObservers();
94
96
  $this->registerMiddleware();
@@ -84,6 +84,11 @@ Route::prefix(config('storefront.api.routing.prefix', 'storefront'))->namespace(
84
84
  $router->delete('{id}', 'ReviewController@find');
85
85
  });
86
86
 
87
+ // storefront/v1/orders
88
+ $router->group(['prefix' => 'orders'], function () use ($router) {
89
+ $router->put('picked-up', 'OrderController@completeOrderPickup');
90
+ });
91
+
87
92
  // storefront/v1/customers
88
93
  $router->group(['prefix' => 'customers'], function () use ($router) {
89
94
  $router->put('{id}', 'CustomerController@update');