Product (Sản phẩm)
Class: \Ecommerce\Models\Product
Alias: Product (đã đăng ký toàn cục)
Table: products
Namespace: Ecommerce\Models
Cấu trúc Cột (Columns)
| Tên Cột | Kiểu | Mặc định | Mô tả |
|---|---|---|---|
title | string | — | Tên sản phẩm |
attribute_label | string | — | Label biến thể đã chọn (tổng hợp) |
slug | string | — | Đường dẫn URL |
code | string | — | Mã SKU (tự sinh: SP000012) |
content | wysiwyg | — | Nội dung mô tả dài |
excerpt | wysiwyg | — | Mô tả ngắn |
seo_title | string | — | Tiêu đề SEO |
seo_description | string | — | Mô tả SEO |
seo_keywords | string | — | Từ khoá SEO |
price | price | 0 | Giá gốc (VND) |
price_sale | price | 0 | Giá khuyến mãi (0 = không KM) |
status | string | public | Trạng thái (public/draft/private) |
status1 | int | 0 | Collection: Yêu thích (1=có) |
status2 | int | 0 | Collection: Bán chạy (1=có) |
status3 | int | 0 | Collection: Hot (1=có) |
image | image | — | Ảnh đại diện |
public | int | 1 | Hiển thị công khai (1/0) |
trash | int | 0 | Đã xóa mềm (1/0) |
order | int | 0 | Thứ tự sắp xếp |
parent_id | int | 0 | ID sản phẩm cha (cho biến thể) |
brand_id | int | 0 | ID thương hiệu |
weight | int | 0 | Cân nặng (gram) |
long | int | 0 | Chiều dài (mm) |
width | int | 0 | Chiều rộng (mm) |
height | int | 0 | Chiều cao (mm) |
hasVariation | int | 0 | Có biến thể không (1=có) |
type | string | product | Loại: product hoặc variations |
Lưu ý: Mỗi sản phẩm còn có thể có metadata mở rộng trong bảng
products_metadata(truy cập quaProduct::getMeta($id, $key, true))
Truy Vấn Cơ Bản
// Tất cả sản phẩm đang hiển thị (public=1 được áp tự động trên Frontend)
$products = Product::all();
// Tìm theo ID
$product = Product::find(12);
// Tìm theo slug
$product = Product::where('slug', 'ao-phong-nam')->first();
// Sản phẩm trong danh mục (bao gồm danh mục con)
$products = Product::whereByCategory($categoryId)->get();
$products = Product::whereByCategory($categoryObject)->get();
// Sản phẩm bán chạy
$products = Product::where('status2', 1)->limit(8)->get();
// Sản phẩm có biến thể (loại trừ record variations)
$products = Product::widthVariation()->get();
// tương đương: whereIn('type', ['product', 'variations'])
Query Scopes (Tùy chỉnh Truy vấn)
scopeWidthVariation()
Lọc chỉ lấy sản phẩm thuộc type product và variations (loại trừ các record là biến thể con).
Product::widthVariation()->get();