Shopify嵌套块架构

时间:2017-12-14 07:03:27

标签: schema shopify shopify-app

我想知道shopify架构上的嵌套块是否可行。我搜索它但我无法找到答案。如果有人知道怎么做,请帮帮我。

这是我的架构

"blocks": [
  {
    "type": "block_main",
    "name": "Block Main",
    "settings": [
      {
        "type": "text",
        "id": "block-name",
        "label": "Quote"
      },
      {
        "type": "url",
        "id": "block-link",
        "label": "URL"
      }
    ],
    "blocks": [
      {
        "type": "sub_block",
        "name": "Sub Block",
        "settings": [
          {
            "type": "text",
            "id": "sub-block-name",
            "label": "Quote"
          },
          {
            "type": "url",
            "id": "sub-block-link",
            "label": "URL"
          }
        ]
      }
    ]
  }
]

3 个答案:

答案 0 :(得分:3)

不,这是不可能的。 (遗憾地)

您必须使用不同的逻辑才能创建嵌套块。

例如,您可以使用link_list字段,并使用链接中的文字和网址来填充您要查找的信息。

答案 1 :(得分:0)

我认为这只是表示数据通信的一种方式。 为此,我总是创建一个关联数组,然后将其转换为JSON。看看这个示例PHP代码

//创建关联数组

$data = array("blocks" => array("type" => "block_main", "name": "Block Main","settings" => array("0" => array("type" => "text", "id": "block-name", "label": "Quote"), [1] => array(type": "url", "id": "block-link", "label": "URL")), "blocks": "type": "sub_block", "name": "Sub Block", "settings": array("0" => array("type": "text", "id": "sub-block-name", "label": "Quote"), "1" => array(type": "url", id": "sub-block-link", "label": "URL"))))

//将数组编码为json

$json = json_decode($data)

当我们发送Post请求时,在服务器端也会发生同样的情况。它还会将嵌套的JSON请求呈现给关联数组,然后对数据做出反应。

答案 2 :(得分:0)

这样做(例如)

{
   "name": "FAQs",
   "settings": [
     {
       "id": "dev-faq-title",
       "type": "text",
       "label": "FAQ Title",
       "default": "Frequently Asked Questions"
     }
   ],
   "blocks":[
     {
       "type": "block-1",
       "name": "Block 1",
       "settings": [
         {
           "type": "text",
           "id": "title",
           "label": "Title"
         },
         {
           "type": "text",
           "id": "accordion-title",
           "label": "Accordion Title"
         }
       ]
     },
     {
       "type": "block-2",
       "name": "Block 2",
       "settings": [
         {
           "type": "text",
           "id": "title",
           "label": "Title"
         }
       ]
     },
     {
       "type": "block-3",
       "name": "Block 3",
       "settings": [
         {
           "type": "text",
           "id": "title",
           "label": "Title"
         }
       ]
     }
   ],
   "presets": [
   {
     "category": "Text",
     "name": "Top Bar"
   }
 ]

}