2012-11-07 39 views
8

मेरे पास उत्पाद हैंडल की एक सूची है, और मैं इस हैंडल के आधार पर उत्पाद लाने के लिए चाहता हूं। ऐसा लगता है कि तरल पदार्थ को जाने और एक उत्पाद प्राप्त करने का कोई तरीका नहीं है। मैं इसे एपीआई के साथ कर सकता हूं, लेकिन अगर मैं एपीआई का उपयोग करता हूं तो मुझे जावास्क्रिप्ट का उपयोग करना होगा, और मुझे HTML को कॉपी करना होगा जो मेरे पास पहले से ही स्निपेट में है, और तर्क भी कॉपी करें। के रूप में मुझे पता है आप तरल में इसके हैंडल से एक उत्पाद को नहीं लाया जा सकता हूँ जहाँ तकमैं Shopify तरल पदार्थ में एक विशिष्ट उत्पाद कैसे प्राप्त करूं?

{% assign handle = 'my-product-handle' %} 
{% assign product = products.handle %} 
{% include 'snippet-product-item' %} 

उत्तर

1

:

एक मैं क्या प्रयास कर रहा हूँ के संस्करण में कटौती।

इससे मुझे कुछ प्रश्न पूछने की ओर अग्रसर किया जाता है: आपके पास पहले स्थान पर उत्पाद हैंडल की सूची क्यों है? यह कहां से आया? मैं एक कस्टम संकलन में उन उत्पादों डाल सलाह देते हैं, तो आप इस तरह से उन्हें देख सकते हैं: सभी उत्पादों के माध्यम से एक विशिष्ट के माध्यम से भी पाश लूपिंग (सकता है

{% for product in collection.all_products %} 
    {% if product.handle contains 'your-handle-name' %} 
     // Do what you want here 
    {% endif %} 
{% endfor %} 

: {% collections['my-collections'] %}

3

आप कुछ इस तरह की कोशिश कर सकते संग्रह), आप वांछित उत्पाद को अगर कथन के साथ पा सकते हैं।

चीयर्स।

+0

यह वास्तव में दिखता है यह एकमात्र विकल्प है की तरह:

मैं कुछ इस तरह से करते हैं। बहुत परीक्षण और त्रुटि के बाद यह है कि शॉपिफ़ हमें (यहां तक ​​कि 2015 में भी) छोड़ देता है – cpres

+2

एफवाईआई: दुकानों के लिए तरल 'तरल' के लिए 50 उत्पादों की हार्ड सीमा है।यदि आपके संग्रह में 50 से अधिक उत्पाद हैं, तो आप उन सभी तक नहीं पहुंचेंगे। चूंकि यह उत्तर पोस्ट किया गया था, इसलिए शॉपिफ़ ने अपने 'हैंडल' का उपयोग करके उत्पाद ऑब्जेक्ट तक पहुंचने के लिए 'all_products [' handle '] 'को अनुमति दी है; जैसा कि हाल के उत्तरों द्वारा उल्लेख किया गया है। – FactoryAidan

19

अब आप निम्नलिखित का उपयोग कर एक संभाल के माध्यम से एक उत्पाद प्राप्त कर सकते हैं:

{% assign someProduct = all_products.some-handle %} 

वर्तमान में इस बैकअप लेने के लिए कोई प्रलेखन है, लेकिन उम्मीद है कि जल्द ही Shopify पक्ष पर कुछ ठोस हो जाएगा।

+0

मेरा दिन बचाया। धन्यवाद –

+1

निम्नलिखित दोनों Shopify में मान्य हैं: '{{all_products ['कुछ-हैंडल']। शीर्षक}} 'और' {{all_products.some-handle.title}} ' – FactoryAidan

+0

क्या ऐसा करने का कोई तरीका है एक संग्रह जिसमें all_products के बजाय सभी उत्पादों को शामिल किया गया है ताकि हम 20 तक सीमित न हों? और क्या आप all_products पेजिंग कर सकते हैं? – Buts

6

बस इसे ढूंढने के लिए किसी को अपडेट करने के लिए, अब आप all_products['handle'] द्वारा this response के अनुसार अपने शॉपिफ़ी/तरल रेपो पर सीधे उत्पादों का संदर्भ दे सकते हैं।

+0

एक आकर्षण की तरह काम किया! – JoshHighland

4

न केवल आप अब किसी भी उत्पाद इसके हैंडल द्वारा किसी भी तरल पृष्ठ पर all_products['the-handle-of-the-product'] साथ उपयोग कर सकते हैं, लेकिन आप तो जैसे एक उत्पाद चर की तरह खतरा यह कर सकते हैं:

{{ all_products['the-handle-of-the-product'].title }} जो product.liquid पृष्ठ पर {{ product.title }} रूप में ही है ।

1

मैं भी इसके लिए खोज रहा था, और मुझे तरल फाइलों के अंदर आईडी द्वारा उत्पाद प्राप्त करने का कोई तरीका नहीं मिला है।

लेकिन जैसा कि ऊपर जवाब है, तो आप एक हैंडल

{{ all_products['product-handle'] }}

क्या मैं चिंतित था के माध्यम से किसी भी उत्पाद का उपयोग कर सकते के बारे में है कि मैंने सोचा था कि यदि आप उत्पाद संभाल का नाम बदलने के लिए स्वचालित रूप से बदल गया है, लेकिन वास्तव में बता ऐसा नहीं होता है, यह अभी भी पुराना संभाल होगा।

आपको हैंडल बदलने के लिए एक अलग उत्पाद बनाना होगा, इसलिए मुझे लगता है कि {{ all_products['product-handle'] }} आपके उत्पाद तक पहुंचने का बहुत अच्छा तरीका है।

{% assign product = all_products['test-product-1'] %} 
{% if product == blank %} 
    <h1>No product found</h1> 
{% else %} 
    <h1>{{ product.title }}</h1> 
{% endif %}