Etsy API 错误 - “链接产品之间的 sku 必须一致”

1 php api etsy

我正在尝试通过此方法更新列表上的变体...

清单/'.$listing_id.'/inventory

但是,当我尝试添加第二个 SKU 时,它会显示错误消息:“SKU 必须在链接的产品之间保持一致”。

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

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

我可以创建多个“袖长”,但当我尝试使用 SKU 添加多个尺码时,会出错。

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

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

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

这是我试图发送的数组。

$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
                        ]
                    ]
                 ]);
Run Code Online (Sandbox Code Playgroud)

小智 6

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

假设您的商品有以下变体

Size: 
    M
    L
Sleeve Length: 
    Long
    Short
Run Code Online (Sandbox Code Playgroud)

您必须知道的第一件事是,在发送属性值时,您必须发送所有可能的组合。这意味着以下内容:

Size M -> Sleeve Length Long

Size M -> Sleeve Length Short

Size L -> Sleeve Length Long

Size L -> Sleeve Length Short
Run Code Online (Sandbox Code Playgroud)

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

Size M -> Sleeve Length Long

Size M -> Sleeve Length Short

Size L -> Sleeve Length Long

Size L -> Sleeve Length Short
Run Code Online (Sandbox Code Playgroud)

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

sku-1指的是Size M Sleeve Length Short

sku-2指的是Size L Sleeve Length Long

我们没有 skuSize M Sleeve Length LongSize L Sleeve Length Short

记住这一点,我们的数组现在看起来像这样:

[
    {
        "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"
            }
        ]
    }
]

Run Code Online (Sandbox Code Playgroud)

我们要做的最后一件事是,由于我们的 sku 在我们的案例中不断变化,它会根据尺寸和袖长而变化,因此在发送数据之前,我们必须告诉 etsy sku 正在根据属性而变化,并执行此操作我们必须设置sku_on_property属性。

在我们的例子中,sku 根据属性 id52047899318和进行更改513

基本上我们的请求正文将如下所示:

[
    {
        "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"
            }
        ]
    }
]
Run Code Online (Sandbox Code Playgroud)

我希望至少这个评论对遇到这个帖子的每个人都有帮助。

您必须记住的小事情:

  • 这是针对 Etsy api v3 的,如果您使用 etsy api v2,我认为应该sku_on_property是逗号分隔的字符串而不是整数数组,例如:"sku_on_property":"52047899318,513"

  • 如果您的价格和/或数量根据变化而变化,那么您还必须以与 sku 相同的方式分别设置属性price_on_property和。quantity_on_property