feat: Update checkout form to collect detailed address fields
- Replace single shipping_address textarea with individual components - Collect: street_address, local_area, city, zone, postcode, country, type - Update checkout validation to require all address components - Update OrderController::process to save individual address fields - Fields are now captured per ShipLogic API requirements - Note: CustomOrder checkout address collection to be implemented later
This commit is contained in:
@@ -116,7 +116,13 @@ class OrderController extends Controller
|
|||||||
'customer_name' => 'required|string|max:255',
|
'customer_name' => 'required|string|max:255',
|
||||||
'customer_email' => 'required|email',
|
'customer_email' => 'required|email',
|
||||||
'customer_phone' => 'required|string|max:20',
|
'customer_phone' => 'required|string|max:20',
|
||||||
'shipping_address' => 'required|string|max:500',
|
'shipping_street_address' => 'required|string|max:255',
|
||||||
|
'shipping_local_area' => 'required|string|max:255',
|
||||||
|
'shipping_city' => 'required|string|max:255',
|
||||||
|
'shipping_zone' => 'required|string|max:255',
|
||||||
|
'shipping_postcode' => 'required|string|max:20',
|
||||||
|
'shipping_country' => 'required|string|max:2',
|
||||||
|
'shipping_type' => 'required|in:residential,business',
|
||||||
'notes' => 'nullable|string|max:500'
|
'notes' => 'nullable|string|max:500'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
@@ -219,7 +225,13 @@ class OrderController extends Controller
|
|||||||
'customer_name' => $request->input('customer_name'),
|
'customer_name' => $request->input('customer_name'),
|
||||||
'customer_email' => $request->input('customer_email'),
|
'customer_email' => $request->input('customer_email'),
|
||||||
'customer_phone' => $request->input('customer_phone'),
|
'customer_phone' => $request->input('customer_phone'),
|
||||||
'shipping_address' => $request->input('shipping_address'),
|
'shipping_street_address' => $request->input('shipping_street_address'),
|
||||||
|
'shipping_local_area' => $request->input('shipping_local_area'),
|
||||||
|
'shipping_city' => $request->input('shipping_city'),
|
||||||
|
'shipping_zone' => $request->input('shipping_zone'),
|
||||||
|
'shipping_postcode' => $request->input('shipping_postcode'),
|
||||||
|
'shipping_country' => $request->input('shipping_country'),
|
||||||
|
'shipping_type' => $request->input('shipping_type'),
|
||||||
];
|
];
|
||||||
|
|
||||||
if ($request->filled('notes')) {
|
if ($request->filled('notes')) {
|
||||||
|
|||||||
@@ -212,8 +212,41 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="shipping_address">Delivery Address</label>
|
<label for="shipping_street_address">Street Address</label>
|
||||||
<textarea id="shipping_address" name="shipping_address" required>{{ old('shipping_address') }}</textarea>
|
<input type="text" id="shipping_street_address" name="shipping_street_address" placeholder="e.g., 123 Main Street" value="{{ old('shipping_street_address') }}" required>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="shipping_local_area">Suburb/Local Area</label>
|
||||||
|
<input type="text" id="shipping_local_area" name="shipping_local_area" placeholder="e.g., Menlyn" value="{{ old('shipping_local_area') }}" required>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="shipping_city">City</label>
|
||||||
|
<input type="text" id="shipping_city" name="shipping_city" placeholder="e.g., Pretoria" value="{{ old('shipping_city') }}" required>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="shipping_zone">Province/Zone</label>
|
||||||
|
<input type="text" id="shipping_zone" name="shipping_zone" placeholder="e.g., Gauteng" value="{{ old('shipping_zone') }}" required>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="shipping_postcode">Postal Code</label>
|
||||||
|
<input type="text" id="shipping_postcode" name="shipping_postcode" placeholder="e.g., 0181" value="{{ old('shipping_postcode') }}" required>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="shipping_country">Country</label>
|
||||||
|
<input type="text" id="shipping_country" name="shipping_country" value="ZA" readonly>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="shipping_type">Address Type</label>
|
||||||
|
<select id="shipping_type" name="shipping_type" required>
|
||||||
|
<option value="residential" {{ old('shipping_type') === 'residential' ? 'selected' : '' }}>Residential</option>
|
||||||
|
<option value="business" {{ old('shipping_type') === 'business' ? 'selected' : '' }}>Business</option>
|
||||||
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
|
|||||||
Reference in New Issue
Block a user