Versandart soll nur bis maximal Menge 2 gelten - danach andere Versandart

Hallo,

wie kann ich angeben, dass die Versandart nur bis Menge 2 gelten soll?

habe unter „eigen Bedingungen“ folgendes eingetragen:

 

leider bekomme ich sobald ich dies so eintrage immer folgenden Fehler sobald ich in den Warenkorb wechsel:

 

hat jemand eine Idee?

@JanineOverhausKocan‍ habe dich hier einfach mal auf cc gesetzt - habe gesehen, dass du in einem anderen Beitrag auch bezüglich Versandkosten geholfen hast. Würde mich freuen, wenn es vielleicht auch hier von Dir eine Lösung geben würde…?!

Es muss doch möglich sein eine Versandgruppe ab einer bestimmten Menge komplett zu sperren bzw. nicht als auswählbar im Checkout anzeigen zu lassen.

Ich bitte um Rückmeldung.

Warum muss das möglich sein?

Mach mal die Fehlermeldungen an vielleicht sieht man an der Fehlermeldung was das Problem ist.

Aus welcher Doku hast Du die Bedingung?

1 „Gefällt mir“

Hi @NextMike‍ ,

ich weiss nicht ob es möglich ist.

Die Bedingung stammt aus meinem „Gusto“    
 

b.quantity <= 2

 

habe die Bedingung für quantity hieraus hergeleitet:

 

Aber wie soll es sonst möglich sein - eine Versandart auf eine Menge zu begrenzen? 

Hast Du eine andere Idee?

Ich bitte um Rückmeldung.

 

 

Mach mal die Fehlermeldungen an. > http://community.shopware.com/config.php-Tweaks_detail_1801.html#Debug-Configuration

1 „Gefällt mir“

@NextMike‍
wo setze ich den folgende block ein in der config.php?
direkt nach dbname? und vor der schließenden Klammer?

 

Vor dem Semikolon

1 „Gefällt mir“
  array (
    'host' => 'localhost',
    'port' => '3306',
    'username' => 'username',
    'password' => 'password',
    'dbname' => 'dbname',
  ),

'front' => [
    'showException' => true,
    'throwExceptions' => true,
    'noErrorHandler' => false,
],
 
//Zeige Low-Level PHP-Fehler
'phpsettings' => [
    'display_errors' => 1,
],
 
// Template-Cache
'template' => [
    'forceCompile' => true,
],
 
// Backend-Cache
'cache' => [
    'backend' => 'Black-Hole',
    'backendOptions' => [],
    'frontendOptions' => [
        'write_control' => false
    ],
],
 
// Model-Cache
'model' => [
    'cacheProvider' => 'Array' // supports Apc, Array, Wincache and Xcache
],
 
// Http-Cache
'httpCache' => [
    'enabled' => true, // true or false
    'debug' => true,
],
);

@NextMike‍ okay - habe ich jetzt aktiviert.
Wie kann ich den Fehler auslesen?

Sorry meinte vor );

also die Klammer oben musste runter zum Semikolon. 

1 „Gefällt mir“

@n8lauscher schrieb:

Hi @NextMike‍ ,

ich weiss nicht ob es möglich ist.

Die Bedingung stammt aus meinem „Gusto“    
 

b.quantity <= 2

 

habe die Bedingung für quantity hieraus hergeleitet:

http://community.shopware.com/Individuelle-Versandkosten-Bedingungen-und-Berechnungen_detail_1933.html

 

Aber wie soll es sonst möglich sein - eine Versandart auf eine Menge zu begrenzen? 

Hast Du eine andere Idee?

Ich bitte um Rückmeldung.

Ich babe es mal so probiert wie du geschrieben hattest

b.quantity <= 2

und es kommt die Fehlermeldung.

Mach es mal so das funktioniert jetzt bei mir.

Einstellungen > Grundeinstellungen > Storefront > Versandkosten-Modul die „Erweiterte SQL-Abfrage“ erweitert mit:

 , MAX(b.quantity) as maximalstueckzahl

und bei den Versandkosten, eigene Bedingungen:

maximalstueckzahl <= 2

Warum das aber nur so geht und nicht direkt?

Uwe

1 „Gefällt mir“

@NextMike‍
ah okay! sorry - wenn ich hier dehr schleppend vorankommen!

Aso die Fehlermeldung lautet:

Uncaught PDOException: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'b.quantity' in 'where clause' in /var/www/clients/client1/web4/web/dshop/engine/Library/Zend/Db/Statement/Pdo.php:228 Stack trace: #0 /var/www/clients/client1/web4/web/dshop/engine/Library/Zend/Db/Statement/Pdo.php(228): PDOStatement->execute(Array) #1 /var/www/clients/client1/web4/web/dshop/engine/Library/Zend/Db/Statement.php(303): Zend_Db_Statement_Pdo->_execute(Array) #2 /var/www/clients/client1/web4/web/dshop/engine/Library/Zend/Db/Adapter/Abstract.php(480): Zend_Db_Statement->execute(Array) #3 /var/www/clients/client1/web4/web/dshop/engine/Library/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('\n SE...', Array) #4 /var/www/clients/client1/web4/web/dshop/engine/Library/Enlight/Components/Db/Adapter/Pdo/Mysql.php(96): Zend_Db_Adapter_Pdo_Abstract->query('\n SE...', Arra in /var/www/clients/client1/web4/web/dshop/engine/Library/Zend/Db/Statement/Pdo.php on line 234
503 Service Unavailable

 

@useg‍
Wenn das wie DU geschrieben hast funktioniert fall ich vom Glauben ab!!
Das wäre ja genial!

@n8lauscher schrieb:

@useg‍
Wenn das wie DU geschrieben hast funktioniert fall ich vom Glauben ab!!
Das wäre ja genial!

Musst aber nach dem Eintrag der erweiterten Datenbankabfrage den Cache löschen 

1 „Gefällt mir“

@useg‍ 

DANKE!

@useg‍ ‍
wenn jetzt maximalstueckzahl als Freitextfeld zu jedem Artikel hinterlegt werden könnte - wäre alles perfekt.
Hast Du hier vielleicht auch noch eine goldene Idee?

habe folgendes als Bedingung im Versandprofil hinterelgt:

maximalstueckzahl <= at.attr4

in attr4 steht dann jeweils wie oft maximal.
Leider bekomme ich dann erneut eine Fehlermeldung. 

@n8lauscher schrieb:

@useg‍ ‍
wenn jetzt maximalstueckzahl als Freitextfeld zu jedem Artikel hinterlegt werden könnte - wäre alles perfekt.
Hast Du hier vielleicht auch noch eine goldene Idee?

habe folgendes als Bedingung im Versandprofil hinterelgt:

maximalstueckzahl <= at.attr4

in attr4 steht dann jeweils wie oft maximal.
Leider bekomme ich dann erneut eine Fehlermeldung. 

Hallo,

warum leitest du nicht einfach useg sein Beispiel ab? Oder hast du dies nicht verstanden?

Bei „Einstellungen“ > „Grundeinstellungen“ > „Storefront“ > „Versandkosten-Modul“ die „Erweiterte SQL-Abfrage“ erweitern:

, MAX(b.quantity) as maximalstueckzahl, at.attr4 as individuellemaximalstueckzahl

Und in der Bedingung:

maximalstueckzahl <= individuellemaximalstueckzahl

Du wirst doch sicher selbst schon gemerkt haben, das die Kürzel für die Datenbank-Tabellen in den Bedingungen nicht verfügbar sind.

Beste Grüße

Sebastian

1 „Gefällt mir“

@sschreier‍
ja habe die Lösung auch gerade gefunden! danke! 

so einfach geht das glaub ich nicht denn die Berechnung weiß ja nicht welche attr4.

Du weißt jetzt bei jeden Artikel das Freitextfeld zu und befüllen es mit einer Zahl. z.B. 4

dann soll bis 4 Stück diese versandart eingeblendet werden, bei über 4 Stück steht diese nicht mehr zur Verfügung.

was ist aber wenn ein Artikel mit 4 Stück und ein weiterer mit 3 Stück im Warenkorb ist, soll die Versandart da noch zur Verfügung stehen?, wahrscheinlich nicht

Du müsstest also in der erweiterten SQL-Abfrage die Summe der attr4 ausgeben und diesen Wert dann mit irgenwas vergleichen, aber mit welchen Wert wenn dieser pro Artikel unterschiedlich sein kann

Uwe

1 „Gefällt mir“

@useg‍ es geht leider noch ein wenig weiter:

wie bekomme ich jetzt eine indvidual abfrage zu dem jeweiligen Versanddienstleister hin?

angenommen in attr5 steht :

UPS oder
DPD oder
Spedition

Versandsandprofil:

  • UPS soll nur angezeigt werden - wenn in attr5 UPS steht
  • DPD nur wenn in attr5 DPD steht
  • Spedition nur wenn in attr5 Spedition steht?

Versandprofill 
xspedition
soll nur angezeigt werden, wenn Artikel im Warenkorb mit UPS, DPD oder Spedition in attr5 gemischt sind?

Hier auch jemand ne Idee?