Drupal Commerce - 99 Produkte im Konfigurator freigeben [gelöst]
am 04.07.2017 - 10:42 Uhr in
Hallo zusammen,
ich habe einen Produktkonfigurator mit Drupal Commerce entwickelt, anhand dessen sich der User ein Produkt über 3 Auswahlmenüs zusammenklicken kann. Hierfür verwende ich Attribute und "Option Sets". Hinter jeder Variante steht ein SKU. Ich habe also ca. 40 SKU's angelegt, die der User auswählen kann (immer nur eins). Aufgrund der Attribute funktioniert die Auswahl im Konfigurator.
Mein problem:
Aktuell werden ca. 10 Produkte angezeigt, aber ich bekomme es nicht hin, dass alle restlichen im Konfigurator angezeigt werden. Es ist leider schon zu lange her, sodass ich die Stelle nicht mehr finde oder aber es einfach seitens Drupal auf 10 beschränkt ist?!
Hat jemand eine Idee, wo ich jene selektieren muss?
Für diesen Produktkonfigurator habe ich folgende Seiten eingerichtet:
- neuer Contenttype
- neuer Content
- 40 SKUs - also Produkte mit entsprechenden Refrenzierungen
- entsprechende Attribute und "Option Sets"
- Anmelden oder Registrieren um Kommentare zu schreiben
Hi, wenn es eine View ist,
am 04.07.2017 - 12:40 Uhr
Hi,
wenn es eine View ist, kannst Du das normalerweise in den Einstellungen max nodes per page einstellen.
Könnte auch sein dass in einem Modul die folgende Variable verwendet wird (in node.admin.inc)
variable_get('default_nodes_main', 10)
Die sollte in der variables Tabelle stehen.
MfG
Robert
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Danke für deine
am 05.07.2017 - 17:43 Uhr
Danke für deine Mithilfe!
meinst du die Datei in modules.node.admin.inc
Dort konnte ich das hier finden, was jedoch nicht stimmen kann oder?!
function node_mass_update($nodes, $updates) {
// We use batch processing to prevent timeout when updating a large number
// of nodes.
if (count($nodes) > 60) {
$batch = array(
'operations' => array(
array('_node_mass_update_batch_process', array($nodes, $updates))
),
Nein stimmt nicht das ist die
am 05.07.2017 - 18:06 Uhr
Nein stimmt nicht das ist die falsche Funktion!
Da sollt ein variable_get stehen wie oben beschreiben.
Du kannst auch in der Variables Tabelle nach der Variable names
"default_nodes_main" suchen und schauen was dort für ein Wert steht.
MfG
Robert
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Hey danke! Sorry, ich bin
am 05.07.2017 - 18:16 Uhr
Hey danke!
Sorry, ich bin noch nicht so ganz fit in drupal! Wo ist diese Variablentabelle?
In der Datenbank in der
am 05.07.2017 - 19:05 Uhr
In der Datenbank in der Tabelle "variables" dort sind die gespeichert.
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Also ich habe mal folgendes
am 06.07.2017 - 18:04 Uhr
Also ich habe mal folgendes in der Datenbank gemacht:
Tabelle: variable -> default_nodes_main
Dort ist die Binärdateimit folgendem Inhalt:
s:2:"10";
Diese habe ich mal geändert in
s:2:"100";
Trotz Cache leeren passiert nichts und ich kann nicht mehr Producte auswählen. Gibts noch eine andere Idee?
Hi, ein grep über die Modul
am 06.07.2017 - 19:09 Uhr
Hi,
ein grep über die Modul Verzeichnisse nach:
variable_get('default_nodes_main'
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Folgendes habe ich gefunden
am 06.07.2017 - 20:35 Uhr
Folgendes habe ich gefunden und geändert, aber es geht leider immernoch nicht
Sites/all/modules/Ctools/pager_manager/plugins/tasks/term_view.inc
Modules/system/system.admin.inc
Modules/taxonomy/taxonomy.pages.inc
Modules/blog/blog.pages.inc
Wenn Du oben in DB die
am 07.07.2017 - 07:44 Uhr
Wenn Du oben in DB die Variable geanändert hast zu s:100
und es funktioniertt nicht, dann muss wohl:
variable_get('default_nodes_main',10);
irgendwo hardcodiert sein.
Mach auch mal einen grep über das sites/all/modules Ordner.
Du könntest auch mal im Ordn er mit dem Payment Modul suchen ob eine 10 hardcodiert ist.
MfG
Robert
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Hi nochmal. da Du die
am 07.07.2017 - 09:12 Uhr
Hi nochmal.
da Du die Variable ja in der DB geändert hast und das wurde nicht übernommen,
bringt mich zum Schluss, dass die default_nodes_main Variable
für Deine Ausgabe gar nicht verwendet wird!
variable_get('default_nodes_main',10);
Da ist wohl eher etwas hardcodiert.
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Zitat: ich habe einen
am 07.07.2017 - 09:45 Uhr
ich habe einen Produktkonfigurator mit Drupal Commerce entwickelt
Hast du einen eigenen Konfigurator entwickelt, oder nutzt du https://www.drupal.org/project/commerce_custom_product
Wenn Modul, dann gucke dir mal die commerce_custom_product.module Datei an, bei ca. Zeile 51 ist folgender Code:
'weight' => 10,
Falls das zutrifft vermerke dir irgendwo diese Änderung oder überschreibe es mit einem eigenen Mini-Modul, weil es beim nächsten Update wieder weg wäre.
Bei Zeile 38 gibt es noch: 'weight' => 5, als Eintrag
Ich konnte das jetzt nicht checken, ob das dein Problem löst, habe lediglich diesen Modulordner für dich durchsucht nach Texteintrag 10.
Grüße Jenna
Danke euch schonmal!! Ich
am 07.07.2017 - 10:05 Uhr
Danke euch schonmal!! Ich versuche es weiter.
@hype1: ich habe nur 4 Dateien in ganz Drupal gefunden, die 'default_nodes_main' haben. Das funktioniert noch nicht. Eine 10 haben zu viele Dateien ... leider
@Jenna: commerce_custom_product habe ich leider nicht, aber ich habe auch nichts selbst programmiert. Das mit den weight ist ein guter Tipp! Ich schaue jetzt mal überall, wo eine 10 ist. Ich arbeite mit folgenden:
commerce
commerce_buttonloesung
commerce_fancy_attributes
commerce_message
commerce_option
commerce_paypal
commerce_product_attributes
pay
paypal
Hi, die default_nodes_main
am 07.07.2017 - 10:23 Uhr
Hi, die default_nodes_main variable wird dafür gar nicht verendet, sonst hätte es
nach der Änderung in der DB schon funktioniert.
Verwendest Du auch das commerce_product_reference.module?
commerce_product_reference.module
commerce_product_reference_options_list()
1'048: $limit = 10;
/**
* Implements hook_options_list().
*/
function commerce_product_reference_options_list($field, $instance = NULL) {
$options = array();
// Look for an options list limit in the field settings.
if (!empty($field['settings']['options_list_limit'])) {
$limit = (int) $field['settings']['options_list_limit'];
}
else {
$limit = 10;
}
// Loop through all product matches.
foreach (commerce_product_match_products($field, $instance, '', 'contains', array(), $limit) as $product_id => $data) {
// Add them to the options list in optgroups by product type.
$name = check_plain(commerce_product_type_get_name($data['type']));
if (!empty($instance['widget']['type']) && $instance['widget']['type'] == 'options_select') {
$options[$name][$product_id] = t('!sku: !title', array('!sku' => $data['sku'], '!title' => $data['title']));
}
else {
$options[$name][$product_id] = t('@sku: @title', array('@sku' => $data['sku'], '@title' => $data['title']));
}
}
// Simplify the options list if only one optgroup exists.
if (count($options) == 1) {
$options = reset($options);
}
return $options;
}
Wenn $field['settings']['options_list_limit'] leer ist, dann wird ein limit 10 genommen.
MfG
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
[gelöst]
am 07.07.2017 - 10:59 Uhr
prima das letzte hat funktioniert :))
*happy*
limit einfach auf 99 o.ä. setzen in
Sites/all/modules/commerce/ product_reference/commerce_product_reference.module
Hallo nochmal,freut mich
am 07.07.2017 - 11:06 Uhr
Hallo nochmal,
freut mich dass Du die Stelle gefunden hast.
Aber das ist eine schlechte Lösung, denn bei einem Modul update geht diese Änderung ja verloren.
Kannst Du denn nicht in den Feldeinstellungen des Feldes das Limit setzen(ggf. unlimited)?
Es ist ja ein Feld mit mehreren Werten, da sollte man das irgendwo setzen können.
$field['settings']['options_list_limit']
Gruss
Robert
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Schau mal dort wird das Limit
am 07.07.2017 - 11:22 Uhr
Schau mal, dort wird das Limit gesetzt. Man sollte es also Einstellen können:
commerce_product_reference_field_settings_form
http://www.drupalcontrib.org/api/drupal/contributions%21commerce%21modul...
Gruss
Robert
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)