6.7 KiB
Invoice, Order, and Quantity Models
The Invoice
, Order
, and Quantity
models work together to facilitate order processing, invoicing, and inventory management within your application. These models enable the recording of customer transactions, tracking of orders, and management of stock quantities.
Invoice Model
The Invoice
model represents a record of a completed transaction between the customer and the business, detailing the items purchased and the associated costs.
Fields Description
1. id
- Type: Integer
- Description: A unique identifier for each invoice. This field is automatically generated and serves as the primary key for the model.
2. customer_id
- Type: Unsigned Big Integer
- Description: The ID of the customer associated with this invoice. This establishes a foreign key relationship with the
Customer
model.
3. status
- Type: Enum
- Description: The current status of the invoice, defined in the
Invoice
model's class variable$invoiceStatus
. The default is "PENDING".
4. total_price
- Type: Unsigned Big Integer (Nullable)
- Description: The total amount due on the invoice. The default value is
0
, and this field can beNULL
until calculated.
5. count
- Type: Integer (Nullable)
- Description: The total number of items included in the invoice. The default value is
0
.
6. meta
- Type: JSON (Nullable)
- Description: Additional metadata related to the invoice, useful for storing extra information in JSON format.
7. discount_id
- Type: Unsigned Big Integer (Nullable)
- Description: The ID of any discount applied to the invoice. This establishes a foreign key relationship with the
Discount
model.
8. desc
- Type: Text (Nullable)
- Description: A description or notes about the invoice. This field is optional.
9. hash
- Type: String (Max Length: 32) (Nullable, Unique)
- Description: A unique hash identifier for the invoice, used for tracking and referencing.
10. transport_id
- Type: Unsigned Big Integer (Nullable)
- Description: The ID of the transport method used for the invoice. This establishes a foreign key relationship with the
Transport
model.
11. transport_price
- Type: Unsigned Big Integer
- Description: The cost associated with the transport method. Default value is
0
.
12. credit_price
- Type: Unsigned Big Integer
- Description: The amount of credit applied to this invoice. Default value is
0
.
13. reserve
- Type: Boolean
- Description: Indicates whether the items on the invoice are reserved. Default value is
0
.
14. invoice_id
- Type: Unsigned Big Integer (Nullable)
- Description: This field can be used for linking to other invoices, creating relationships between them.
15. address_alt
- Type: String (Nullable)
- Description: An alternative address for delivery or billing purposes.
16. address_id
- Type: Unsigned Big Integer (Nullable)
- Description: The ID of the associated address for delivery, establishing a foreign key relationship with the
Address
model.
17. tracking_code
- Type: String (Nullable)
- Description: A code used for tracking shipment of the order associated with the invoice.
Summary
The Invoice
model provides a structured representation of a financial transaction, including customer details, status, payment information, and associated products.
Order Model
The Order
model represents a specific item or service being purchased within an invoice, linking the invoice to products.
Fields Description
1. id
- Type: Integer
- Description: A unique identifier for each order. This field is automatically generated and serves as the primary key for the model.
2. invoice_id
- Type: Unsigned Big Integer
- Description: The ID of the invoice associated with this order. Establishes a foreign key relationship with the
Invoice
model.
3. product_id
- Type: Unsigned Big Integer
- Description: The ID of the product being ordered. Establishes a foreign key relationship with the
Product
model.
4. quantity_id
- Type: Unsigned Big Integer (Nullable)
- Description: The ID of the specific quantity or stock item. This is optional and can be used for stock management.
5. count
- Type: Integer (Nullable)
- Description: The quantity of the product being ordered. The default value is
1
.
6. price_total
- Type: Unsigned Integer
- Description: The total price for the ordered product, typically calculated as
quantity * unit price
.
7. data
- Type: JSON (Nullable)
- Description: This field allows for flexible storage of additional information related to the order, in JSON format.
Summary
The Order
model provides a detailed structure for managing individual items within an invoice, allowing for clear tracking of purchases.
Quantity Model
The Quantity
model is designed to manage inventory levels for specific products, allowing for precise tracking of stock.
Fields Description
1. id
- Type: Integer
- Description: A unique identifier for each quantity record. This field is automatically generated and serves as the primary key for the model.
2. product_id
- Type: Unsigned Big Integer
- Description: The ID of the product associated with this quantity record. Establishes a foreign key relationship with the
Product
model.
3. count
- Type: Unsigned Integer
- Description: The current stock level of the product. The default value is
0
.
4. price
- Type: Unsigned Big Integer
- Description: The price of the product associated with this quantity record. The default value is
0
.
5. image
- Type: Unsigned Big Integer (Nullable)
- Description: The ID of an associated image for the product. This field is optional.
6. data
- Type: Long Text (Nullable)
- Description: Additional data related to the inventory record, allowing for flexible storage of information.
Summary
The Quantity
model allows for effective inventory management by tracking stock levels, prices, and additional information related to specific products.
Relationships Overview
- The
Invoice
model is linked to multipleOrder
records through theinvoice_id
. - Each
Order
can reference a specificProduct
and potentially aQuantity
. - The
Quantity
model is related toProducts
to accurately reflect inventory levels.
By integrating the Invoice
, Order
, and Quantity
models, your application can handle full e-commerce functionalities, including invoicing, order tracking, and stock management.