D. Product Management
Tutorial Product Management
1. Backend Product Model (src/models/Product.js)
const db = require('../config/database');
const Product = {
create: async (productData) => {
const { name, description, price, stock, image_url, category_id } = productData;
const [result] = await db.execute(
'INSERT INTO products (name, description, price, stock, image_url, category_id) VALUES (?, ?, ?, ?, ?, ?)',
[name, description, price, stock, image_url, category_id]
);
return result;
},
findAll: async () => {
const [rows] = await db.execute('SELECT * FROM products');
return rows;
},
findById: async (id) => {
const [rows] = await db.execute('SELECT * FROM products WHERE id = ?', [id]);
return rows[0];
},
update: async (id, productData) => {
const { name, description, price, stock, image_url, category_id } = productData;
const [result] = await db.execute(
'UPDATE products SET name = ?, description = ?, price = ?, stock = ?, image_url = ?, category_id = ? WHERE id = ?',
[name, description, price, stock, image_url, category_id, id]
);
return result;
},
delete: async (id) => {
const [result] = await db.execute('DELETE FROM products WHERE id = ?', [id]);
return result;
},
// Methods tambahan akan diimplementasikan nanti
/*
findByCategory: async (categoryId) => {...},
updateStock: async (id, quantity) => {...},
searchProducts: async (keyword) => {...},
*/
};
module.exports = Product;2. Backend Product Controller (src/controllers/productController.js)
3. Backend Product Routes (src/routes/product.routes.js)
4. Frontend Product Service (src/services/product.service.js)
5. Frontend Product Slice (src/store/slices/productSlice.js)
6. Frontend Product List Component (src/components/products/ProductList.js)
7. Frontend Product Form Component (src/components/products/ProductForm.js)
8. Frontend Product Detail Component (src/components/products/ProductDetail.js)
Catatan Implementasi:
Templates yang perlu dibuat:
Product list view (grid/list)
Product form modal
Product detail page
Product search dan filter
Product image upload
Features yang perlu ditambahkan:
Pagination
Search functionality
Category management
Image handling
Stock tracking
Price history
Additional Features:
Product variants
Bulk import/export
Product analytics
Product reviews
Stock alerts
Security Considerations:
Input validation
Image upload restrictions
Role-based access
Data sanitization
Langkah testing:
Test CRUD operations
Verify image uploads
Test search functionality
Verify role permissions
Test form validations
Check error handling
Last updated
Was this helpful?