Trường dữ liệu tùy chỉnh trong S-Cart

1. Trường dữ liệu tùy chỉnh trong S-Cart
2. Các bảng được hỗ trợ
3. Hướng dẫn thêm trường dữ liệu
4. Hướng dẫn lấy dữ liệu
5. Helper

Kể từ phiên bản 7.2.5, S-Cart đã có những cập nhật để hỗ trợ tốt hơn cho tính linh hoạt trong dữ liệu của người dùng. 
Thông thường, để thêm một trường dữ liệu cho đối tượng, bạn phải thêm một cột dữ liệu mới. Điều này khiến bạn phải thay đổi cấu trúc dữ liệu và chỉnh sửa code để xử lý thêm, xóa, sửa dữ liệu.
Quá phức tạp và khó khăn cho những ai không hiểu rõ về laravel. Bên cạnh đó, nó cũng là một trở ngại khi người dùng muốn chuyển dữ liệu từ hệ thống khác sang S-Cart khi chúng khác nhau về các trường dữ liệu.

1. Trường dữ liệu tùy chỉnh trong S-Cart là gì?

Chúng ta sẽ không thêm trực tiếp các trường dữ liệu mới trong từng bảng, điều đó sẽ làm cấu trúc dữ liệu phình to, khó kiểm soát, tốn chi phí viết mã.
Thay vào đó, toàn bộ các trường dữ liệu mới được thêm không giới hạn trong 2 bảng shop_custom_field và shop_custom_field_detail. Chúng được liên kết với từng bảng dữ liệu chính.


2. Từ phiên bản 7.2.5, danh sách các bảng hỗ trợ tùy chỉnh field gồm:

+ shop_customer
+ shop_product
+ shop_banner
+ shop_brand
+ shop_supplier
+ shop_category
+ shop_news
+ shop_page


3. Hướng dẫn thêm field tùy chỉnh:
Truy cập Admin -> SystemConfig -> Setting system -> Custom field data
Lưu ý: 
Cột giá trị "Default" chỉ dành cho các lựa chọn dữ liệu là "Select", "Check box", "Radio".  Giá trị mặc định là kiểu Json, ví dụ: {"value1": "Name 1", "value2":"Name 2"}




4. Hướng dẫn lấy dữ liệu
a. Lấy danh sách trường dữ liệu tùy chỉnh
Ví dụ lấy toàn bộ các trường dữ liệu tùy chỉnh dành cho khách hàng

$listCustomFields = (new \SCart\Core\Front\Models\ShopCustomField)->getCustomField($type = 'shop_customer')

b. Lấy dữ liệu tùy chỉnh

$customer = (new \SCart\Core\Front\Models\ShopCustomer)->find($id);
$allDataCustomeField = $customer->getCustomFields(); or $customer->custom_fields;
$dataViaCode = $customer->getCustomField($code);//webding-day


5. Helper
Các hàm helper dành cho custom field đặt trong vendor/S-Cart/core/src/Library/Helpers/custom_field.php

Xem đầy đủ quan hệ dữ liệu trong S-Cart tại đây: https://s-cart.org/vi/developer/master/data-relations-in-s-cart.html

Bài viết liên quan

Tài liệu mới nhất