feat(edit): 定价试算开发、SKU 样式功能修改

This commit is contained in:
R524809
2026-09-29 17:50:19 +08:00
parent 84b230e69a
commit 0a303414d8
52 changed files with 4278 additions and 1393 deletions
@@ -0,0 +1,30 @@
SET search_path TO atlas, public;
-- 包装重量与尺寸可分别由商品通用值或逐 SKU 值填写;空草稿也需要保存模式。
ALTER TABLE products
ADD COLUMN package_weight_mode TEXT NOT NULL DEFAULT 'common'
CHECK (package_weight_mode IN ('common', 'variant')),
ADD COLUMN package_dimensions_mode TEXT NOT NULL DEFAULT 'common'
CHECK (package_dimensions_mode IN ('common', 'variant'));
-- 旧编辑器在每个 SKU 都有对应覆盖值时即展示逐 SKU 表单,迁移时保留该显示模式。
UPDATE products p
SET package_weight_mode = 'variant'
WHERE EXISTS (
SELECT 1 FROM product_variants v WHERE v.product_id = p.id AND v.deleted_at IS NULL
)
AND NOT EXISTS (
SELECT 1 FROM product_variants v
WHERE v.product_id = p.id AND v.deleted_at IS NULL AND v.shipping_weight_g IS NULL
);
UPDATE products p
SET package_dimensions_mode = 'variant'
WHERE EXISTS (
SELECT 1 FROM product_variants v WHERE v.product_id = p.id AND v.deleted_at IS NULL
)
AND NOT EXISTS (
SELECT 1 FROM product_variants v
WHERE v.product_id = p.id AND v.deleted_at IS NULL
AND (v.package_length_mm IS NULL OR v.package_width_mm IS NULL OR v.package_height_mm IS NULL)
);