2016-06-28 5 views
0

dies tun auf meiner Shopify Seite:Shopify - Name in Variante ist null, aber andere Tasten sind nicht

{{ product.selected_or_first_available_variant | json }} 

Yields mir dieses JSON ausgegeben.

{ 
    "id": 22061938375, 
    "title": "Small/Black", 
    "option1": "Small", 
    "option2": "Black", 
    "option3": null, 
    "sku": "LSL2", 
    "requires_shipping": true, 
    "taxable": true, 
    "featured_image": { 
     "id": 14987460807, 
     "product_id": 6956222919, 
     "position": 1, 
     "created_at": "2016-06-24T11:03:47+01:00", 
     "updated_at": "2016-06-24T18:17:08+01:00", 
     "src": "https://cdn.shopify.com/s/files/1/1071/2704/products/Lace1-Black-LS-LifeStyle-Shop-R.jpg?v=1466788628", 
     "variant_ids": [ 
      22061938375 
     ] 
    }, 
    "available": false, 
    "name": "Long Sleeve Chantilly Lace Shimmy - Small/Black", 
    "options": [ 
     "Small", 
     "Black" 
    ], 
    "price": 8800, 
    "weight": 454, 
    "compare_at_price": null, 
    "inventory_quantity": 0, 
    "inventory_management": "shopify", 
    "inventory_policy": "deny", 
    "barcode": "" 
} 

Wenn ich dann tun: {{ product.selected_or_first_available_variant.id | json }} erhalte ich: 22061938375 (richtig).

Allerdings, wenn ich versuchen, einen anderen Schlüssel wie Name mit diesem greifen: {{ product.selected_or_first_available_variant.name | json }} ich null (falsch).

Was um alles in der Welt geht hier vor? Warum kann ich nur auf einige Tasten und nicht auf alle zugreifen, obwohl ich sie in der vollen Ausgabe sehen kann? Es ergibt für mich keinen Sinn.

Jede Hilfe sehr geschätzt.

Danke!

Antwort

0

Ich glaube, Ihr Problem ist, dass "Name" kein Mitglied von variant ist. Ich vermute, dass der "Name", der in der JSON-Ausgabe erscheint, dynamisch generiert wird. Es ist einfach die Verkettung des Produkttitels und des Variantentitels.

Auch die Verwendung des JSON-Filters dafür ist Overkill. Sie können

{{ product.title }} {{ product.selected_or_first_available_variant.title }} 

tun, wenn Sie wissen, dass das Produkt hat Optionen oder so etwas wie:

{% assign currVar = product.selected_or_first_available_variant %} 
{{ product.title }}{% unless currVar.title contains 'Default' %} {{ currVar.title }}{% endunless %} 
+0

ich Shopify möchte diese Sachen dokumentieren würde. Was bringt es, es in das Objekt zu legen, wenn es nicht direkt verwendet werden kann? Seltsam. Danke für Ihre Hilfe. Ich habe es manuell erstellt, wie Sie es vorgeschlagen haben. Ich habe nur den JSON-Filter für Debugging-Zwecke verwendet. –

+0

Beachten Sie den Variantenlink in meiner Antwort. Die für Liquid verfügbaren Objekte sind ziemlich gut dokumentiert. Die Funktion des JSON-Filters ist nicht so sehr. – bknights