Backend Laravel
Il cuore operativo del prodotto: backoffice, configurazioni, wizard di setup, catalogo locale e strumenti amministrativi.
Il cuore operativo del prodotto: backoffice, configurazioni, wizard di setup, catalogo locale e strumenti amministrativi.
Il backend Laravel e' il centro operativo del prodotto. Non si limita a esporre API per l'app mobile, ma gestisce:
Le aree piu' importanti del backend sono:
app/Http/Controllers/app/Http/Middleware/app/Models/app/Support/resources/views/admin/routes/web.phproutes/api.phpdatabase/migrations/La logica piu' importante e' spostata nei service sotto app/Support/.
GET /GET /installPOST /install/databasePOST /install/adminPOST /install/licensePOST /install/shopifyPOST /install/importPOST /install/webhooksPOST /install/brandingGET /install/{step}GET /admin/loginPOST /admin/loginPOST /admin/logoutGET /admin/GET /admin/profilePUT /admin/profileGET /admin/usersGET /admin/users/{user}/editPOST /admin/usersPUT /admin/users/{user}DELETE /admin/users/{user}GET /admin/slidesGET /admin/slides/createPOST /admin/slidesGET /admin/slides/{slide}/editPUT /admin/slides/{slide}DELETE /admin/slides/{slide}GET /admin/notificationsPOST /admin/notificationsGET /admin/settingsPOST /admin/settingsGET /admin/catalogPOST /admin/catalog/collectionsPOST /admin/catalog/syncGET /admin/shopifyPOST /admin/shopify/credentialsPOST /admin/shopify/verifyPOST /admin/shopify/importPOST /admin/shopify/webhooksredirect.if.installedEvita la riapertura del wizard dopo il completamento dell'installazione.
installation.completeBlocca l'accesso al backoffice se l'istanza non risulta installata.
authProtegge l'area admin standard Laravel.
customer.authProtegge le API cliente usando il token sessione mobile hashato in customer_sessions.
Il wizard e' uno degli elementi piu' strategici del backend perche' rende il prodotto distribuibile come pacchetto self-hosted.
Gli step correnti sono:
shopsapp_settingsclient_id e client_secretE' presente un flusso di bootstrap di emergenza per casi in cui:
.env manchiAPP_KEY sia assenteQuesto rende il prodotto piu' robusto in contesti hosting reali.
La dashboard e' una vista riepilogativa basata su metriche locali:
Serve come punto di controllo rapido dello stato dell'istanza.
Il backend ora include due aree distinte:
Permette all'admin loggato di modificare:
Permette di:
Sono gia' presenti due regole di sicurezza importanti:
La sezione impostazioni governa:
Queste configurazioni vengono salvate in app_settings.
Il catalogo locale e' la base delle API usate dalla mobile app.
productsproduct_variantscollectionscollection_productServe a:
Il backend permette la gestione editoriale della home mobile tramite home_slides.
Per ogni slide sono gestiti:
Queste slide vengono poi esposte nell'endpoint home del catalogo.
Il blocco Shopify nel backoffice permette di:
Il sistema usa il modello Shopify attuale basato su:
client_idclient_secrete genera il token Admin API dal backend, evitando di richiedere all'utente un token statico copiato a mano.
ShopifyAdminAccessTokenServiceResponsabilita':
ShopifyConnectionProbeResponsabilita':
ShopifyInitialImportServiceResponsabilita':
ShopifyDeltaCatalogSyncServiceResponsabilita':
ShopifyStorefrontCheckoutServiceResponsabilita':
checkout_urlShopifyCustomerAccountServiceResponsabilita':
OneSignalPushServiceResponsabilita':
ShopifyOrderPushServiceResponsabilita':
GET /api/v1/platform/statusRestituisce stato installazione, dati essenziali shop e configurazione push.
GET /api/v1/catalog/homeGET /api/v1/catalog/collectionsGET /api/v1/catalog/collections/{collection}GET /api/v1/catalog/productsGET /api/v1/catalog/products/{product}POST /api/v1/commerce/checkoutPOST /api/v1/push/devicesPOST /api/v1/customer/loginPOST /api/v1/customer/registerPOST /api/v1/customer/password/recoverPOST /api/v1/customer/logoutGET /api/v1/customer/meGET /api/v1/customer/ordersShopRappresenta l'istanza del negozio. In questo progetto il runtime e' single-shop.
ShopifyConnectionMemorizza:
I campi sensibili sono cifrati.
AppSettingKV storage per:
CustomerSessionMantiene:
PushDeviceMemorizza:
PushNotificationStorico invii manuali e automatici con metadati.
Misure gia' implementate:
Misure consigliate come evoluzione:
Shop del database come contesto correntePunti da tenere presenti: