Så fungerar systemet

En teknisk översikt av LaserQuote-plattformen

Byggd för prestanda och skalbarhet

LaserQuote är ett komplett WordPress-plugin för konfiguration, prisberäkning och beställning av laserskurna plåtdetaljer. Systemet är byggt med moderna designprinciper och optimerat för snabb respons.

6 Databastabeller
8+ REST API endpoints
5 Malltyper

Systemarkitektur

Frontend

Konfigurator Vanilla JS (~2500 rader)
DXF-parser Klient-side analys
Kundvagn localStorage
REST API

Backend (PHP)

API Controllers Materials, Calculate, Orders
Price Calculator Komplett prislogik
Integrations FluentCart, Email
Database Layer

Databas

wp_sb_materials Material & varianter
wp_sb_coefficients Priskoefficienter
wp_sb_orders Ordrar (JSON)

Databasstruktur

Pluginet använder egna databastabeller för optimal prestanda och flexibilitet.

wp_sb_materials

Grundmaterial som S235, Rostfritt, Aluminium med egenskaper som densitet och pris per kg.

id, name, density, price_per_kg, cutting_speed_factor, active

wp_sb_material_variants

Tjockleksvarianter per material med specifik skärhastighet och bockbarhet.

id, material_id, thickness, cutting_speed, bendable, price_modifier

wp_sb_coefficients

Konfigurerbara priskoefficienter för alla beräkningar.

id, coefficient_key, value, description

wp_sb_discount_tiers

Mängdrabattnivåer baserat på antal eller ordervärde.

id, min_quantity, discount_percent, active

wp_sb_orders

Kompletta ordrar med all data lagrad som JSON för flexibilitet.

id, order_number, status, customer_data, items, totals, tracking_token

wp_sb_order_status_history

Statushistorik för varje order med tidsstämplar.

id, order_id, status, changed_by, created_at

REST API

Alla endpoints är tillgängliga via /wp-json/sb-laser/v2/

Material & Priser

GET /materials Hämta alla material med varianter
GET /materials/{id} Hämta specifikt material
GET /coefficients Hämta priskoefficienter

Prisberäkning

POST /calculate-price Beräkna pris för mall
POST /calculate-price-dxf Beräkna pris för DXF-fil

Ordrar

POST /orders Skapa ny order
GET /orders/lookup Sök order (publik)
GET /orders/track/{token} Spåra order via token

Webhooks

POST /fluentcart-webhook FluentCart betalningsnotis

Orderflöde

1

Konfiguration

Kund väljer mall/DXF, material, tjocklek och tillval

Frontend JS
2

Prisberäkning

Realtidsberäkning vid varje ändring

JS + API verify
3

Kundvagn

Artiklar sparas i localStorage

localStorage
4

Checkout

Kundinfo, leverans, betalningsmetod

3-stegs wizard
5

Order skapas

POST /orders → Databas + FluentCart

REST API
6

Notifieringar

Email till kund + admin

wp_mail
7

Betalning

FluentCart → Stripe/Klarna

Webhook callback

Prisberäkningslogik

Totalprisformel

Totalpris = (Material + Skärning + Bockning + Svetsning + Avgradning + Hantering + Start) × (1 - Rabatt)

Materialkostnad

Vikt × 1.15 (spill) × kr/kg

Vikt beräknas från geometri × densitet

Skärningskostnad

(Skärlängd ÷ Hastighet + Genomborr.) × 1200 kr/h

Hastighet varierar per material/tjocklek

Bockningskostnad

150 kr (setup) + Antal × 25 kr

Endast för bockkurvor mallar

Hantering

15 kr per artikel

Packning och kvalitetskontroll

Startavgift

250 kr ÷ antal

Fördelas på antal artiklar

Viktiga filer

Huvudfiler

  • laserquote.php Plugin huvudfil, laddar alla klasser
  • includes/calculations/class-price-calculator.php All prisberäkningslogik
  • includes/calculations/class-geometry-calculator.php Geometriberäkning för mallar

API

  • includes/api/class-api-orders.php Order endpoints
  • includes/api/class-api-calculate.php Prisberäkning endpoint
  • includes/api/class-api-materials.php Material endpoints

Frontend

  • assets/js/configurator.js Huvudlogik (~2500 rader)
  • assets/js/dxf-analyzer.js DXF-parser och analys
  • assets/css/configurator.css All styling

Integrationer

  • includes/integrations/class-fluentcart.php FluentCart-integration
  • includes/integrations/class-email-handler.php E-postutskick
  • templates/emails/ E-postmallar

Shortcodes

[sb_laser_configurator]

Komplett konfigurator med kundvagn och checkout

show_hero="true" theme="dark"
[sb_laser_hero]

Endast hero-sektionen

[sb_laser_calculator]

Prisberäkning utan kundvagn

[sb_laser_order_status]

Orderspårning för kunder

Teknisk stack

WordPress 6.x

Plugin-arkitektur

JS

Vanilla JavaScript

Ingen ramverksberoende

REST API

WordPress REST endpoints

MySQL/MariaDB

Egna tabeller

FluentCart

Betalningshantering

DXF Parser

Klient-side filanalys