规格的编辑以及组合筛选开发说明

1 SKU的维护需求

参考有赞

https://www.youzan.com

用户名:18618487753

密码:wangfeng

2 开发说明

2.1 交付数据格式:

如上的效果要形成的skuList数组

[
    {
        sku:{
                {
                    spec\_name:"颜色",spec\_value\_name:"红色",spec\_value\_id:1
                },
                {
                    spec\_name:"尺寸",spec\_value\_name:"S",spec\_value\_id:2
                }
    },
        price:100,
        quantity:10,
        cost:50
    },
    {
        sku:{
                {
                    spec\_name:"颜色",spec\_value\_name:"红色",spec\_value\_id:1
                },
                {
                    spec\_name:"尺寸",spec\_value\_name:"L",spec\_value\_id:3
                }
        },
        price:100,
        quantity:10,
        cost:50
    },
    {
        sku:{
                {
                    spec\_name:"颜色",spec\_value\_name:"绿色",spec\_value\_id:1
                },
                {
                    spec\_name:"尺寸",spec\_value\_name:"S",spec\_value\_id:2
                }
        },
        price:100,
        quantity:10,
        cost:50
    }
...
]

2.2 数据源

组合上述sku的数据源:

[
{
spec_name:"颜色",
spec_value_list: 
    [
        {
            spec_value_name:"绿色" , spec_value_id:1
        },
        {
            spec_value_name:"红色" , spec_value_id:2
        }
    ]
},
{
spec_name:"尺寸",
spec_value_list: 
    [
        {
            spec_value_name:"S" , spec_value_id:3
        },
        {
            spec_value_name:"L" , spec_value_id:4
        }
    ]
}
]

即由下面的操作结果形成的:

组合算法参考:

/javashop-web/src/main/webapp/themes/b2b2cv4/new_store/js/pages/goods/spec-v2.js

中的

也就是由源,组合成目标格式的json

2.2.1 规格列表来源:

2.2.1.1 规格列表获取API

get:/goods-info/seller/category/1spec.do

其中1是商品分类的id

返回值:

[
    {
    spec_id:1,
    spec_name:"颜色" 
    },

     {
    spec_id:2,
    spec_name:"尺寸" 
    }
...
]

2.2.1.2 规格项的获取

get:/goods-info/seller/spec/1/spec-values.do

其中1是规格的id

返回值:

[
    {
    spec_value_id:1,
    spec_value_name:"颜色" 
    },
    {
    spec_value _id:2,
    spec_value _name:"尺寸" 
    }
...
]

3 sku的展示和选择

4 开发说明

4.1 某商品可选择规格获取API

返回数据格式:

[
{
spec_name:"颜色",
spec_value_list: 
    [
        {
            spec_value_name:"绿色" , spec_value_id:1
        },
        {
            spec_value_name:"红色" , spec_value_id:2
        }
    ]
},

{
spec_name:"尺寸",
spec_value_list: 
    [
        {
            spec_value_name:"S" , spec_value_id:3
        },
        {
            spec_value_name:"L" , spec_value_id:4
        }
    ]
}
]

即用上述的数据形成的这个界面:

4.2 某商品的sku获取API

get:/goods-info/goods/sku/1.do

返回的数据结构:

[
{
  sku:{
        {
        spec_name:"颜色",spec_value_name:"红色",spec_value_id:1
        },
        {
        spec_name:"尺寸", spec_value_name:"S", spec_value_id:2
        }
    },
   price:100,
   quantity:10,
   sku_id:1
},
{
  sku:{
        {
        spec_name:"颜色", spec_value_name:"红色", spec_value_id:1
        },
        {
        spec_name:"尺寸", spec_value_name:"L", spec_value_id:3
        }
    },
   price:100,
   quantity:10 ,
    sku_id:2
},
{
  sku:{
        {
        spec_name:"颜色", spec_value_name:"绿色", spec_value_id:1
        },
        {
        spec_name:"尺寸", spec_value_name:"S", spec_value_id:2
        }
    },
   price:100,
   quantity:10 ,
    sku_id:3
}
...
]

用户点击选择spec(规格),程序通过运算来确定sku,这个过程中要根据库存(quantity)来确定某些(或个)的规格是否可选,当所有规格都选择完成时,要得到用户最终选择的sku。

4.3 其它

一、算法参考:

http://blog.csdn.net/liu_jun_y/article/details/53066490

http://www.cnblogs.com/rubylouvre/p/3422004.html

或根据下面的关键词在网上找找资料

SKU组合查询算法

二、json模拟:

上述api都在开发中,可以在statics目录下建立.json文件来模拟数据。

results matching ""

    No results matching ""