【问题标题】:Create metafields for smart collection on shopify在 shopify 上为智能收藏创建元字段
【发布时间】:2021-07-15 16:19:21
【问题描述】:

设置

我在 Shopify 中创建了一个智能收藏。

在商店的管理员中,我可以设置集合的 SEO 元字段,但是我想通过 API 来做到这一点。


代码

为此,我使用以下代码,

payload = {
    'metafields': [
        {
           'namespace': 'global',
           'key': 'title_tag',
           'value': collection_title + ' – Kappersstoelshop.nl',
           'value_type': 'string',
           },
        {
           'namespace': 'global',
           'key': 'description_tag',
           'value': collection_title +' ✅ Gratis bezorgd vanaf €70 ✅  14 dagen bedenktijd ✅  Leasen, gespreid of achteraf betalen',
           'value_type': 'string',},
        ]
    }

r = requests.post(shop_url + '/collections/'+collection_id+'/metafields.json',
                  json=payload,headers=headers)

其中collection_titlecollection_id 是字符串。

我已将此代码基于将元字段插入产品的方法,即,

r = requests.post(shop_url + '/products/'+product_id+'/metafields.json',
                  json=payload,headers=headers)

问题

上面的代码产生一个<Response [400]>错误代码,根据Shopify API response codes的意思是;

服务器无法理解请求,通常是由于语法错误或 Content-Type 标头未正确设置为 application/json。 如果在 OAuth 令牌交换过程中请求提供了无效的代码参数,也会返回此状态。

现在,诚然,Shopify 没有给出任何关于如何准确创建集合元字段的解释,除了将集合 here 命名为可以具有元字段的资源并说明 here 关于为“商店”创建元字段的内容资源”。


问题

知道如何通过 API 为(智能)集合创建元字段吗?

【问题讨论】:

    标签: api python-requests shopify


    【解决方案1】:

    使用您给定的有效负载,API 以 404 响应,并且对我来说出现以下错误:

    {
        "errors": {
            "metafield": "Required parameter missing or invalid"
        }
    }
    

    元字段端点不允许在单个请求中创建多个元字段。它只需要主体 https://shopify.dev/docs/admin-api/rest/reference/metafield?api%5Bversion%5D=2021-04#create-2021-04 中的一个元字段。 您可能需要使用如下负载执行多个 POST 请求:

    payload = {
        'metafield':
            {
               'namespace': 'global',
               'key': 'title_tag',
               'value': collection_title + ' – Kappersstoelshop.nl',
               'value_type': 'string',
             }
        }
    

    另一个选项,如果你真的需要元字段的插入是原子的,将 value_type 更改为 json_string 并组合 value 中的所有数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多