首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Etsy API错误- "sku必须在连接的产品之间保持一致“

Etsy API错误- "sku必须在连接的产品之间保持一致“
EN

Stack Overflow用户
提问于 2020-07-23 20:26:02
回答 1查看 364关注 0票数 1

我试图通过这种方法更新列表的变体.

清单/‘.$listing_id.’/库存

但是,当我尝试添加第二个SKU时,它会给我一个错误信息,即"SKU必须在链接的产品之间保持一致“。

我知道在变体中有一个包含多个SKU的列表是可能的,因为这就是我们目前的操作方式。我们只是尝试将一些功能转移到我们的管理门户(即更改列表上的变体)。

现在我们用“尺寸”和“袖子长度”作为变体。

我可以创建多个“袖子长度”,但当我试图添加多个大小与SKU,它错误。

我还在这里链接了一段视频来解释这个问题。

https://drive.google.com/file/d/1_dywrCfv0QjNzR2VyHqh5un7TXzuV5p8/view?usp=sharing

任何人能提供的任何帮助都将不胜感激。

这就是我要发送的数组。

代码语言:javascript
复制
$testarray=  array(
                  [
                    'sku' => 'sku-1',
                    'property_values' => [
                        [
                            'property_id' => '52047899318',
                            'property_name' => 'Size',
                            'scale_id' => 30,
                            'scale_name' => '',
                            'value' => '0-3M White Onesie',
                            'value_id' => '117126874336'
                        ],
                        [
                             'property_id' => '513',
                             'property_name' => 'Sleeve Length',
                             'value' => 'Short SL Onesie',
                             'value_id' => '774674484481'
                        ]
                    ],
                    'offerings' => [
                        [
                            'price' => 10,
                            'quantity' => 3
                        ]
                    ]
                 ],
                  [
                    'sku' => 'sku-2',
                    'property_values' => [
                        [
                            'property_id' => '52047899318',
                            'property_name' => 'Size',
                            'scale_id' => 30,
                            'scale_name' => '',
                            'value' => '0-3M White Onesie',
                            'value_id' => '117126874336'
                        ],
                        [
                             'property_id' => '513',
                             'property_name' => 'Sleeve Length',
                             'value' => 'Short SL Onesie',
                             'value_id' => '774674484481'
                        ]
                    ],
                    'offerings' => [
                        [
                            'price' => 10,
                            'quantity' => 3
                        ]
                    ]
                 ]);
EN

回答 1

Stack Overflow用户

发布于 2022-03-20 17:26:20

我知道这个问题已经有两年历史了,但是由于我在实现Etsy时遇到了同样的错误,所以我希望通过发布我的发现来帮助其他人。

假设您的项目有以下变体

代码语言:javascript
复制
Size: 
    M
    L
Sleeve Length: 
    Long
    Short

首先,您必须知道,当发送属性值时,必须发送所有可能的组合。这意味着:

代码语言:javascript
复制
Size M -> Sleeve Length Long

Size M -> Sleeve Length Short

Size L -> Sleeve Length Long

Size L -> Sleeve Length Short

这是您的产品数组中的样子,请注意我现在是如何省略skus的:

代码语言:javascript
复制
[
    {
        "property_values": [
            {
                "property_id": "52047899318",
                "property_name": "Size",
                "value": "M"
            },
            {
                "property_id": "513",
                "property_name": "Sleeve Length",
                "value": "Short"
            }
        ]
    },
    {
        "property_values": [
            {
                "property_id": "52047899318",
                "property_name": "Size",
                "value": "M"
            },
            {
                "property_id": "513",
                "property_name": "Sleeve Length",
                "value": "Long"
            }
        ]
    },
    {
        "property_values": [
            {
                "property_id": "52047899318",
                "property_name": "Size",
                "value": "L"
            },
            {
                "property_id": "513",
                "property_name": "Sleeve Length",
                "value": "Short"
            }
        ]
    },
    {
        "property_values": [
            {
                "property_id": "52047899318",
                "property_name": "Size",
                "value": "L"
            },
            {
                "property_id": "513",
                "property_name": "Sleeve Length",
                "value": "Long"
            }
        ]
    }
]

现在,关于skus,假设我们有以下内容:

sku-1指的是Size M Sleeve Length Short

sku-2指的是Size L Sleeve Length Long

我们没有Size M Sleeve Length LongSize L Sleeve Length Short的sku

记住这一点,我们的数组现在将如下所示:

代码语言:javascript
复制
[
    {
        "sku": "sku-1",
        "property_values": [
            {
                "property_id": "52047899318",
                "property_name": "Size",
                "value": "M"
            },
            {
                "property_id": "513",
                "property_name": "Sleeve Length",
                "value": "Short"
            }
        ]
    },
    {
        "sku": "",
        "property_values": [
            {
                "property_id": "52047899318",
                "property_name": "Size",
                "value": "M"
            },
            {
                "property_id": "513",
                "property_name": "Sleeve Length",
                "value": "Long"
            }
        ]
    },
    {
        "sku": "",
        "property_values": [
            {
                "property_id": "52047899318",
                "property_name": "Size",
                "value": "L"
            },
            {
                "property_id": "513",
                "property_name": "Sleeve Length",
                "value": "Short"
            }
        ]
    },
    {
        "sku": "sku-2",
        "property_values": [
            {
                "property_id": "52047899318",
                "property_name": "Size",
                "value": "L"
            },
            {
                "property_id": "513",
                "property_name": "Sleeve Length",
                "value": "Long"
            }
        ]
    }
]

我们必须做的最后一件事,因为我们的sku正在从变到变--在我们的情况下,它是根据大小和袖子长度而变化的,在发送数据之前,我们必须告诉etsy,sku是根据属性的不同而变化的,为了做到这一点,我们必须设置sku_on_property属性。

在本例中,sku基于属性id、52047899318513进行更改。

基本上,我们的请求主体将如下所示:

代码语言:javascript
复制
{
    "products": [
        {
            "sku": "sku-1",
            "property_values": [
                {
                    "property_id": "52047899318",
                    "property_name": "Size",
                    "value": "M"
                },
                {
                    "property_id": "513",
                    "property_name": "Sleeve Length",
                    "value": "Short"
                }
            ]
        },
        {
            "sku": "",
            "property_values": [
                {
                    "property_id": "52047899318",
                    "property_name": "Size",
                    "value": "M"
                },
                {
                    "property_id": "513",
                    "property_name": "Sleeve Length",
                    "value": "Long"
                }
            ]
        },
        {
            "sku": "",
            "property_values": [
                {
                    "property_id": "52047899318",
                    "property_name": "Size",
                    "value": "L"
                },
                {
                    "property_id": "513",
                    "property_name": "Sleeve Length",
                    "value": "Short"
                }
            ]
        },
        {
            "sku": "sku-2",
            "property_values": [
                {
                    "property_id": "52047899318",
                    "property_name": "Size",
                    "value": "L"
                },
                {
                    "property_id": "513",
                    "property_name": "Sleeve Length",
                    "value": "Long"
                }
            ]
        }
    ],
    "sku_on_property": [
        52047899318,
        513
    ]
}

我希望这句话至少对每一个遇到这条线的人都有帮助。

你必须记住的小事情:

如果您使用Etsy "sku_on_property":"52047899318,513",我认为sku_on_property应该是一个逗号分隔的字符串,而不是一个整数数组,例如:

  • 如果您的价格和/或数量根据这些变化而发生变化,那么您还必须分别设置属性price_on_propertyquantity_on_property,就像您为skus.

所做的那样。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63062605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档