如何在Shopify中从Metafield JSON创建级联选择列表



我们销售汽车零件,每个零件只适合特定年份、品牌、型号、子模型等。由于我们的变体超过了Shopify的限制,我正在考虑为每个零件添加一个metafield,其中包括该车辆所有可能组合的JSON描述。我想将这些数据解析为产品页面上的一系列级联下拉选择列表。使用下面的JSON示例,如果您在第一个选择列表中选择1973,那么您可以在第二个选择列表选择雪佛兰或GMC。第三个列表将显示可用的型号,第四个选择列表将允许用户选择Liters,依此类推

不幸的是,我不知道如何将JSON数据输入到产品流中的选择列表中,甚至不确定JSON的格式是否正确。有人能帮助我开始或引导我找到一个资源,帮助我学习在我的Shopify产品液体上显示这些数据的下一步步骤吗。同样,请记住,此JSON将存储在元字段中。

以下是一部分的元字段JSON示例:

{"VEHICLES":[{"Year":"1973","Make":"Chevrolet","Model":"K20 Pickup","Submodel":"","Liter":"4.1"},{"Year":"1973","Make":"Chevrolet","Model":"K20 Pickup","Submodel":"","Liter":"4.8"},{"Year":"1973","Make":"Chevrolet","Model":"K20 Pickup","Submodel":"","Liter":"5.0"},{"Year":"1973","Make":"Chevrolet","Model":"K20 Pickup","Submodel":"","Liter":"5.7"},{"Year":"1973","Make":"Chevrolet","Model":"K20 Pickup","Submodel":"","Liter":"7.4"},{"Year":"1973","Make":"Chevrolet","Model":"K30 Pickup","Submodel":"","Liter":"4.1"},{"Year":"1973","Make":"Chevrolet","Model":"K30 Pickup","Submodel":"","Liter":"4.8"},{"Year":"1973","Make":"Chevrolet","Model":"K30 Pickup","Submodel":"","Liter":"5.0"},{"Year":"1973","Make":"Chevrolet","Model":"K30 Pickup","Submodel":"","Liter":"5.7"},{"Year":"1973","Make":"Chevrolet","Model":"K30 Pickup","Submodel":"","Liter":"7.4"},{"Year":"1973","Make":"GMC","Model":"K25/K2500 Pickup","Submodel":"","Liter":"4.1"},{"Year":"1973","Make":"GMC","Model":"K25/K2500 Pickup","Submodel":"","Liter":"4.8"},{"Year":"1973","Make":"GMC","Model":"K25/K2500 Pickup","Submodel":"","Liter":"5.7"},{"Year":"1973","Make":"GMC","Model":"K25/K2500 Pickup","Submodel":"","Liter":"7.4"},{"Year":"1973","Make":"GMC","Model":"K35/K3500 Pickup","Submodel":"","Liter":"4.1"},{"Year":"1973","Make":"GMC","Model":"K35/K3500 Pickup","Submodel":"","Liter":"4.8"},{"Year":"1973","Make":"GMC","Model":"K35/K3500 Pickup","Submodel":"","Liter":"5.0"},{"Year":"1973","Make":"GMC","Model":"K35/K3500 Pickup","Submodel":"","Liter":"5.0"},{"Year":"1973","Make":"GMC","Model":"K35/K3500 Pickup","Submodel":"","Liter":"5.7"},{"Year":"1973","Make":"GMC","Model":"K35/K3500 Pickup","Submodel":"","Liter":"7.4"},]}

为了实现您想要的,JSON结构也应该与您描述的级别相同,以使其更容易。

把你的数据排列成这样:

var Vehicles = {
    'Years' : ['1973'],
    '1973' : {
        'Make' : ['Chevrolet', 'GMC'],
        'Chervolet' : {
            'Models' : ['K20 Pickup', 'K30 Pickup'],
            'K20 Pickup' : {
                'Liters' : ['4.1', '4.8', '5.0', '5.7', '7.4'],
                '4.1' : '<link>',
                '4.8' : '<link>',
                '5.0' : '<link>',
                '5.7' : '<link>',
                '7.4' : '<link>'
            },
            'K30 Pickup' : {
                'Liters' : ['4.1', '4.8', '5.0', '5.7', '7.4'],
                '4.1' : '<link>',
                '4.8' : '<link>',
                '5.0' : '<link>',
                '5.7' : '<link>',
                '7.4' : '<link>'
            }
        },
        'GMC' : {
            'Models' : ['K25/K2500 Pickup', 'K35/K3500 Pickup'],
            'K25/K2500 Pickup' : {
                'Liters' : ['4.1', '4.8', '5.0', '5.7', '7.4'],
                '4.1' : '<link>',
                '4.8' : '<link>',
                '5.0' : '<link>',
                '5.7' : '<link>',
                '7.4' : '<link>'
            },
            'K35/K3500 Pickup' : {
                'Liters' : ['4.1', '4.8', '5.0', '5.7', '7.4'],
                '4.1' : '<link>',
                '4.8' : '<link>',
                '5.0' : '<link>',
                '5.7' : '<link>',
                '7.4' : '<link>'
            }
        }
    }
 }

跟踪结构和检索字段会更容易。例如,当有人选择"Chervolet"时,您只需要从Vehicles['1973']['Chervolet']['Models']中获取值来填充第三个下拉列表。

附言:有一种方法可以直接调用每个JSON对象中的"键",但我没有很好的成功率,所以我不能提供建议。

最新更新