wip order
This commit is contained in:
@@ -4,6 +4,35 @@ import (
|
|||||||
"gorm.io/gorm"
|
"gorm.io/gorm"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type OrderStatus string
|
||||||
|
|
||||||
|
const (
|
||||||
|
Received OrderStatus = "Received"
|
||||||
|
AwaitingPayment OrderStatus = "AwaitingPayment"
|
||||||
|
Payed OrderStatus = "Payed"
|
||||||
|
ReadyForPickup OrderStatus = "ReadyForPickup"
|
||||||
|
Shipped OrderStatus = "Shipped"
|
||||||
|
Cancelled OrderStatus = "Cancelled"
|
||||||
|
)
|
||||||
|
|
||||||
|
type AddressInfo struct {
|
||||||
|
FirstName string `json:"firstname"`
|
||||||
|
LastName string `json:"lastname"`
|
||||||
|
Address string `json:"address"`
|
||||||
|
PostalCode string `json:"postalcode"`
|
||||||
|
City string `json:"city"`
|
||||||
|
Country string `json:"country"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Order struct {
|
||||||
|
gorm.Model
|
||||||
|
Status OrderStatus `json:"status"`
|
||||||
|
Token string `json:"token" binding:"required" gorm:"not null"`
|
||||||
|
CartItems []CartItem `json:"cartitems"`
|
||||||
|
Email string `json:"email"`
|
||||||
|
Comment string `json:"comment"`
|
||||||
|
}
|
||||||
|
|
||||||
type CartItem struct {
|
type CartItem struct {
|
||||||
gorm.Model
|
gorm.Model
|
||||||
SessionId string `json:"sessionid" binding:"required" gorm:"not null"`
|
SessionId string `json:"sessionid" binding:"required" gorm:"not null"`
|
||||||
@@ -12,4 +41,5 @@ type CartItem struct {
|
|||||||
ItemVariantId uint
|
ItemVariantId uint
|
||||||
ItemVariant ItemVariant `json:"itemvariant" gorm:"foreignKey:ItemVariantId"` //gorm one2one
|
ItemVariant ItemVariant `json:"itemvariant" gorm:"foreignKey:ItemVariantId"` //gorm one2one
|
||||||
Quantity int `json:"quantity" binding:"required"`
|
Quantity int `json:"quantity" binding:"required"`
|
||||||
|
OrderId uint
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -116,40 +116,4 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<form action="/submit-product" method="POST">
|
|
||||||
<label for="product-name">Product Name:</label>
|
|
||||||
<input type="text" id="product-name" name="product-name" required><br><br>
|
|
||||||
|
|
||||||
<label for="product-type">Product Type:</label>
|
|
||||||
<select id="product-type" name="product-type" required>
|
|
||||||
<option value="magazine">Magazine</option>
|
|
||||||
<option value="t-shirt">T-Shirt</option>
|
|
||||||
</select><br><br>
|
|
||||||
|
|
||||||
<h3>Options</h3>
|
|
||||||
<div class="option-group">
|
|
||||||
<label for="option-name-1">Option Name:</label>
|
|
||||||
<input type="text" id="option-name-1" name="option-name[]" required>
|
|
||||||
<label for="option-price-1">Price:</label>
|
|
||||||
<input type="number" id="option-price-1" name="option-price[]" required><br><br>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="option-group">
|
|
||||||
<label for="option-name-2">Option Name:</label>
|
|
||||||
<input type="text" id="option-name-2" name="option-name[]" required>
|
|
||||||
<label for="option-price-2">Price:</label>
|
|
||||||
<input type="number" id="option-price-2" name="option-price[]" required><br><br>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="option-group">
|
|
||||||
<label for="option-name-3">Option Name:</label>
|
|
||||||
<input type="text" id="option-name-3" name="option-name[]" required>
|
|
||||||
<label for="option-price-3">Price:</label>
|
|
||||||
<input type="number" id="option-price-3" name="option-price[]" required><br><br>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<input type="submit" value="Add Product">
|
|
||||||
</form>
|
|
||||||
|
|
||||||
|
|
||||||
{{ template "footer.html" . }}
|
{{ template "footer.html" . }}
|
||||||
|
|||||||
@@ -68,18 +68,15 @@
|
|||||||
<textarea id="description" name="description" type="textarea" class="block w-full px-4 py-2 mt-2 text-gray-700 bg-white border border-gray-300 rounded-md dark:bg-gray-800 dark:text-gray-300 dark:border-gray-600 focus:border-blue-500 dark:focus:border-blue-500 focus:outline-none focus:ring"></textarea>
|
<textarea id="description" name="description" type="textarea" class="block w-full px-4 py-2 mt-2 text-gray-700 bg-white border border-gray-300 rounded-md dark:bg-gray-800 dark:text-gray-300 dark:border-gray-600 focus:border-blue-500 dark:focus:border-blue-500 focus:outline-none focus:ring"></textarea>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-4">
|
|
||||||
<label class="block text-sm/6 text-gray-900">Shipping</label>
|
<div class="flex mb-4">
|
||||||
<div class="space-y-2">
|
<label for="DeliveryMethod" class="block mb-2 text-sm font-medium text-gray-900 dark:text-white"></label>
|
||||||
<label class="flex text-sm/6 items-center">
|
<select name="DeliveryMethod" id="DeliveryMethod" required class="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500">
|
||||||
<input type="checkbox" class="form-checkbox h-4 w-4 text-gray-900" value="{{ .ID }}" name="shipping">
|
<option selected value="">Shipping</option>
|
||||||
<span class="ml-2 text-sm/6 text-gray-900">Germany</span>
|
<option value="germany">germany (DHL) 3.99€</option>
|
||||||
<input type="checkbox" class="form-checkbox h-4 w-4 text-gray-900" value="{{ .ID }}" name="shipping">
|
<option value="international">international (DHL) 5.99€</option>
|
||||||
<span class="ml-2 text-sm/6 text-gray-900">International</span>
|
<option value="pickup">pickup 0.00€</option>
|
||||||
<input type="checkbox" class="form-checkbox h-4 w-4 text-gray-900" value="{{ .ID }}" name="shipping">
|
</select>
|
||||||
<span class="ml-2 text-sm/6 text-gray-900">Pickup</span>
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p class="mt-10 text-center text-sm/6 text-red-500">
|
<p class="mt-10 text-center text-sm/6 text-red-500">
|
||||||
|
|||||||
Reference in New Issue
Block a user