Fixed 3 critical issues:
1. ✅ Price and Type Column Display
Problem: Columns showing empty even though data exists
Root Cause: price_html returns empty string for products without prices
Solution:
- Added fallback chain in index.tsx:
1. Try price_html (formatted HTML)
2. Fallback to regular_price (plain number)
3. Fallback to "—" (dash)
- Added fallback for type: {product.type || '—'}
Now displays:
- Formatted price if available
- Plain price if no HTML
- Dash if no price at all
2. ✅ Redirect After Create Product
Problem: Stays on form after creating product
Expected: Return to products index
Solution:
- Changed New.tsx redirect from:
navigate(`/products/${response.id}`) → navigate('/products')
- Removed conditional logic
- Always redirect to index after successful create
User flow now:
Create product → Success toast → Back to products list ✅
3. ✅ Edit Form Not Loading Data
Problem: Edit form shows empty fields instead of product data
Root Cause: Missing fields in API response (virtual, downloadable, featured)
Solution:
- Added to format_product_full() in ProductsController.php:
* $data['virtual'] = $product->is_virtual();
* $data['downloadable'] = $product->is_downloadable();
* $data['featured'] = $product->is_featured();
Now edit form receives complete data:
- Basic info (name, type, status, descriptions)
- Pricing (SKU, regular_price, sale_price)
- Inventory (manage_stock, stock_quantity, stock_status)
- Categories & tags
- Virtual, downloadable, featured flags
- Attributes & variations (for variable products)
Result:
✅ Products list shows prices and types correctly
✅ Creating product redirects to index
✅ Editing product loads all data properly