2016-04-30 17 views
2

Wir haben einen Magento-Speicher (v1.9.2) und ich möchte in der Lage sein, Bundle-Produkte über eine URL mit den Optionen in der Abfragezeichenfolge hinzuzufügen.Hinzufügen von Bundle-Produkten über URL-Abfragezeichenfolge

Es funktioniert fast ... aber das Problem ist, dass jede Bundle-Option mehrere Elemente hat, die ausgewählt werden müssen, aber die Abfragezeichenfolge wird nur eine von ihnen auswählen.

Beispiel Screenshot der Optionen auf dem Frontend: https://www.dropbox.com/s/80s1pjl7nfmum8t/Screen%20Shot%202016-04-30%20at%2010.20.02.png?dl=0

Beispiel der URL:

/Kasse/Warenkorb/add/product/329/Menge/1/bundle_option [174] = 1531 & package_option [174] = 1532 & form_key = rGK59KHglVmkjdRg

Dies sollte zwei Elemente in Bündel Option 174 auswählen, aber es wählt nur eins aus.

Kann mir bitte jemand helfen, ich weiß nicht, ob mir etwas an der URL-Struktur fehlt, ob der Code geändert werden muss!

Antwort

1

TL; DR

Sie fehlen einige []

So sollte Ihr Wunsch-URL sein:
http://www.example.org/checkout/cart/add/product/329/qty/1/?bundle_option[174][]=1531&bundle_option[174][]=1532&form_key=rGK59KHglVmkjdRg


, dass eine grundlegende Verwendung von Array ist in Parameter erhalten.

Wenn Sie bundle_option[174]=1531&bundle_option[174]=1532 sagen Sie sagen tatsächlich, dass der Schlüssel 174 des Parameters bundle_option ist 1531 dann außer Kraft setzen Sie es sofort den Schlüssel 174 des Parameters sagen bundle_option1532 ist.

Sie, dass in jedem grundlegenden PHP-Skript versuchen:
Lassen Sie uns sagen, dass wir some.php?bundle_option[174]=1531&bundle_option[174]=1532 diesen Code enthält, rufen

<?php var_dump($_GET); 

Es wird Echo:

some.php:1: 
array (size=1) 
    'bundle_option' => 
    array (size=1) 
     174 => string '1532' (length=4) 

Wenn das, was Sie brauchen, und was für Magento Ich erwarte, dass Sie für Checkbox-Optionen, in denen Sie mehrere Optionen aktiviert haben, ein Array von Array haben.

Also mit der exakt gleichen Datei wie oben:
Wenn wir some.php?bundle_option[174][]=1531&bundle_option[174][]=1532 nennen, das wird Ihnen eine Reihe von Array:

some.php:1: 
array (size=1) 
    'bundle_option' => 
    array (size=1) 
     174 => 
     array (size=2) 
      0 => string '1531' (length=4) 
      1 => string '1532' (length=4) 

Wenn Sie tatsächlich einen Magento-Controller mit zu testen, können Sie auch Verwenden Sie eine Aktion dort und schauen Sie sich das Ergebnis der Abfrageparameter an, indem Sie

Zend_Debug::dump($this->getRequest()->getParams()); 
verwenden
Verwandte Themen