2016-05-13 10 views
0

Wir verkaufen Autoteile und jedes Teil passt nur bestimmte Jahre, Marken, Modelle, Untermodelle usw. Da unsere Varianten die Grenzen von Shopify überschreiten, überlege ich, für jedes Teil ein Metefield hinzuzufügen, das eine JSON-Beschreibung aller möglichen Kombinationen enthält verfügbar für dieses Fahrzeug. Ich würde diese Daten in eine Reihe von Dropdown-Auswahllisten auf der Produktseite analysieren. Wenn Sie im folgenden JSON-Beispiel 1973 in der ersten Auswahlliste auswählen, können Sie Chevrolet oder GMC in der zweiten Auswahlliste auswählen. Die dritte Liste würde die verfügbaren Modelle anzeigen, und eine vierte Auswahlliste würde Benutzern erlauben, Liter auszuwählen, und so weiter.Wie erstelle ich in Shopify kaskadierende Auswahllisten aus Metafield JSON?

Leider weiß ich nicht, wie diese JSON-Daten in Auswahllisten in der Produktflüssigkeit eingegeben werden, und ich bin nicht einmal sicher, ob der JSON richtig formatiert ist. Kann mir jemand helfen, mich zu beginnen oder zu einer Ressource zu führen, die mir helfen könnte, die nächsten Schritte zur Anzeige dieser Daten auf meiner Shopify-Produktflüssigkeit zu lernen? Denken Sie daran, dass dieses JSON in einem Metafeld gespeichert wird.

Im Folgenden ist ein Beispiel für die MetaField JSON für einen Teil:

{"VEHICLES":[{"Year":"1973","Make":"Chevrolet","Model":"K20 Pickup","Submodel":"","Liter":"4.1"},{"Year":"1973","Make":"Chevrolet","Model":"K20 Pickup","Submodel":"","Liter":"4.8"},{"Year":"1973","Make":"Chevrolet","Model":"K20 Pickup","Submodel":"","Liter":"5.0"},{"Year":"1973","Make":"Chevrolet","Model":"K20 Pickup","Submodel":"","Liter":"5.7"},{"Year":"1973","Make":"Chevrolet","Model":"K20 Pickup","Submodel":"","Liter":"7.4"},{"Year":"1973","Make":"Chevrolet","Model":"K30 Pickup","Submodel":"","Liter":"4.1"},{"Year":"1973","Make":"Chevrolet","Model":"K30 Pickup","Submodel":"","Liter":"4.8"},{"Year":"1973","Make":"Chevrolet","Model":"K30 Pickup","Submodel":"","Liter":"5.0"},{"Year":"1973","Make":"Chevrolet","Model":"K30 Pickup","Submodel":"","Liter":"5.7"},{"Year":"1973","Make":"Chevrolet","Model":"K30 Pickup","Submodel":"","Liter":"7.4"},{"Year":"1973","Make":"GMC","Model":"K25/K2500 Pickup","Submodel":"","Liter":"4.1"},{"Year":"1973","Make":"GMC","Model":"K25/K2500 Pickup","Submodel":"","Liter":"4.8"},{"Year":"1973","Make":"GMC","Model":"K25/K2500 Pickup","Submodel":"","Liter":"5.7"},{"Year":"1973","Make":"GMC","Model":"K25/K2500 Pickup","Submodel":"","Liter":"7.4"},{"Year":"1973","Make":"GMC","Model":"K35/K3500 Pickup","Submodel":"","Liter":"4.1"},{"Year":"1973","Make":"GMC","Model":"K35/K3500 Pickup","Submodel":"","Liter":"4.8"},{"Year":"1973","Make":"GMC","Model":"K35/K3500 Pickup","Submodel":"","Liter":"5.0"},{"Year":"1973","Make":"GMC","Model":"K35/K3500 Pickup","Submodel":"","Liter":"5.0"},{"Year":"1973","Make":"GMC","Model":"K35/K3500 Pickup","Submodel":"","Liter":"5.7"},{"Year":"1973","Make":"GMC","Model":"K35/K3500 Pickup","Submodel":"","Liter":"7.4"},]} 
+0

Sie werden nicht in der Lage sein, dieses Muster zu tun. Das Speichern von JSON in einem Metafield ist in Ordnung, aber nur das Client-seitige Front-End-JavaScript kann JSON parsen und damit umgehen. Unter der Annahme, dass Sie Produkte mit einer JSON-Payload codieren, die Ihr Front-End darüber informiert, worum es bei diesem Produkt geht, sollten Sie einen Front-End-Code schreiben, der das Shopify-Produkterlebnis verbessert. Damit meine ich, dass Sie jetzt in der Lage sein werden, was zu tun? Irgendwie sicherstellen, dass dem Kunden nur die richtigen Produkte gezeigt werden? Oder dass der Filter aus den JSON-Daten möglicherweise dafür sorgt, dass der Kunde die richtige Variante bekommt? –

+0

Danke David. Das macht Sinn. Ja, ein Teil davon ist einfach, um sicherzustellen, dass der Kunde verfügbare Varianten auswählt und kein Produkt bestellt, das nicht zu ihrem Fahrzeug passt. Ich hoffe auch, dass Sie damit einen Fitment-Selektor für die Homepage- und Kategorieseiten erstellen können. Das Problem ist, dass die meisten unserer Produkte denen, die ich aufgelistet habe, ähnlich sind (viele Variationen, aber keine Änderung in der Artikelnummer), aber einige unserer Produkte sind echte Varianten (dh, wenn Sie die Farbe oder Größe ändern, ändert sich die Artikelnummer) . Kurz gesagt, es fällt mir schwer, ein sinnvolles Datenmodell zu entwickeln, das funktioniert. – bonaventure

+0

Ich bin irgendwie grok. Vor einiger Zeit wurde ich beauftragt, ein Geschäft zu machen, um Reifen zu verkaufen. Make, Modelljahr Daten führten zu Auswahlen von Reifen. Eine riesige und nicht ganz bereit für Primetime E-Commerce-Domain ... –

Antwort

0

Um zu erreichen, was Sie beabsichtigen, Sie JSON-Struktur auch in den gleichen Ebenen sein sollte, wie Sie es einfacher zu machen, beschrieben.

Haben Sie Ihre Daten wie folgt angeordnet:

var Vehicles = { 
    'Years' : ['1973'], 
    '1973' : { 
     'Make' : ['Chevrolet', 'GMC'], 
     'Chervolet' : { 
      'Models' : ['K20 Pickup', 'K30 Pickup'], 
      'K20 Pickup' : { 
       'Liters' : ['4.1', '4.8', '5.0', '5.7', '7.4'], 
       '4.1' : '<link>', 
       '4.8' : '<link>', 
       '5.0' : '<link>', 
       '5.7' : '<link>', 
       '7.4' : '<link>' 
      }, 
      'K30 Pickup' : { 
       'Liters' : ['4.1', '4.8', '5.0', '5.7', '7.4'], 
       '4.1' : '<link>', 
       '4.8' : '<link>', 
       '5.0' : '<link>', 
       '5.7' : '<link>', 
       '7.4' : '<link>' 
      } 
     }, 
     'GMC' : { 
      'Models' : ['K25/K2500 Pickup', 'K35/K3500 Pickup'], 
      'K25/K2500 Pickup' : { 
       'Liters' : ['4.1', '4.8', '5.0', '5.7', '7.4'], 
       '4.1' : '<link>', 
       '4.8' : '<link>', 
       '5.0' : '<link>', 
       '5.7' : '<link>', 
       '7.4' : '<link>' 
      }, 
      'K35/K3500 Pickup' : { 
       'Liters' : ['4.1', '4.8', '5.0', '5.7', '7.4'], 
       '4.1' : '<link>', 
       '4.8' : '<link>', 
       '5.0' : '<link>', 
       '5.7' : '<link>', 
       '7.4' : '<link>' 
      } 
     } 
    } 
} 

Es wird leichter sein, die Struktur zu verfolgen und auch die Felder abzurufen. Zum Beispiel, wenn jemand "Chervolet" auswählt, müssen Sie nur Werte von Vehicles['1973']['Chervolet']['Models'] erhalten, um Ihr drittes Dropdown zu füllen.

P.S. Es gibt einen Weg, wo Sie die "Schlüssel" in jedem JSON-Objekt direkt aufrufen können, aber ich hatte keine gute Erfolgsrate damit ich nicht beraten kann.

+0

Vielen Dank! Das macht viel mehr Sinn. Ich werde mein Bestes tun, um zu sehen, ob ich das entsprechende Skript erstellen kann, um diese Struktur zu konsumieren. Ich habe vielleicht mehr Fragen, wenn ich mich einnehme, aber das ist ein guter Anfang. Danke noch einmal. – bonaventure