20260204
This commit is contained in:
44
doc_mall/consumer/sql/fix_order_items_images.sql
Normal file
44
doc_mall/consumer/sql/fix_order_items_images.sql
Normal file
@@ -0,0 +1,44 @@
|
||||
-- Fix missing product data in order items
|
||||
-- Updates order items to use actual product names and images from the product table
|
||||
-- instead of placeholders or NULLs.
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
-- 1. Update image_url from SKU if available
|
||||
UPDATE public.ml_order_items oi
|
||||
SET image_url = sku.image_url
|
||||
FROM public.ml_product_skus sku
|
||||
WHERE oi.sku_id = sku.id
|
||||
AND (oi.image_url IS NULL OR oi.image_url = '');
|
||||
|
||||
-- 2. Update image_url from Product Main Image if still NULL
|
||||
UPDATE public.ml_order_items oi
|
||||
SET image_url = p.main_image_url
|
||||
FROM public.ml_products p
|
||||
WHERE oi.product_id = p.id
|
||||
AND (oi.image_url IS NULL OR oi.image_url = '');
|
||||
|
||||
-- 3. Update product_name from Product if it looks like a placeholder
|
||||
-- (checking for "Product" or similar might be too aggressive, but let's update all to ensure consistency with current product DB)
|
||||
-- Actually, let's only update if it looks like the mock data we inserted "Pending Order Product", etc.
|
||||
UPDATE public.ml_order_items oi
|
||||
SET product_name = p.name
|
||||
FROM public.ml_products p
|
||||
WHERE oi.product_id = p.id
|
||||
AND (
|
||||
oi.product_name LIKE '%Product%'
|
||||
OR oi.product_name LIKE 'Pending Order%'
|
||||
OR oi.product_name = 'Test Product'
|
||||
);
|
||||
|
||||
-- 4. Ensure we have items for all orders (Cleanup empty orders if any, or insert default item)
|
||||
-- For now, let's just log if there are orders without items
|
||||
-- SELECT count(*) FROM ml_orders o WHERE NOT EXISTS (SELECT 1 FROM ml_order_items oi WHERE oi.order_id = o.id);
|
||||
|
||||
-- Insert a default item for orders that have NO items (if any exist)
|
||||
-- We need a valid product ID for this.
|
||||
-- This is a bit complex in a DO block without specific IDs, so we'll skip creating new items for now
|
||||
-- unless specifically requested. The main issue reported was likely "missing associated data" (images/names).
|
||||
|
||||
RAISE NOTICE 'Updated order items with real product data.';
|
||||
END $$;
|
||||
Reference in New Issue
Block a user