Verwaltung

aikanet

shopware AG Partner

Hallo zusammen,
ich habe ein neues Anliegen. Aktuell werden mir bei Artikeln mit Staffelpreisen in der Listenansicht ein zu hoher "ab"-Preis ausgegeben. Genauer gesagt der Preis ab 1 Stück. Die Artikel werden bei Staffelpreisen natürlich immer günstiger. Somit sollte in der Kategorieauflistung auch der günstigste Preis erscheinen.

Gibt es eine Lösung hierzu?

Danke und Grüße,
Rafael Kutscha
Zuletzt geändert von aikanet am Fr Feb 17, 2012 2:36 pm, insgesamt 1-mal geändert.

Aikanet UG (haftungsbeschränkt) - Tel: 0211 / 9468107-40
 
  • Beiträge: 66
  • Mitglied seit: Di Jan 31, 2012 4:47 pm
  • Ort: Düsseldorf
  • WWW: Website
  • Danke abgegeben: 9
  • Danke erhalten: 3
 

ottscho

Shopware Guru

aikanet hat geschrieben:Hallo zusammen,
ich habe ein neues Anliegen. Aktuell werden mir bei Artikeln mit Staffelpreisen in der Listenansicht ein zu hoher "ab"-Preis ausgegeben. Genauer gesagt der Preis ab 1 Stück. Die Artikel werden bei Staffelpreisen natürlich immer günstiger. Somit sollte in der Kategorieauflistung auch der günstigste Preis erscheinen.

Gibt es eine Lösung hierzu?

Danke und Grüße,
Rafael Kutscha


Hey,

so wird der letzte Preis ausgegeben. In der Regel ist dies auch der günstigste:
{foreach from=$sArticle.sBlockPrices item=row key=key name="counter"}
{if $smarty.foreach.counter.last}{$row.price|currency} {s name="Star" namespace="frontend/listing/box_article"}{/s}
{/if}
{/foreach}

 
  • Beiträge: 2068
  • Mitglied seit: Fr Okt 22, 2010 10:26 am
  • Danke abgegeben: 68
  • Danke erhalten: 158
 
Für diesen Beitrag haben sich bedankt:
aikanet (Fr Feb 17, 2012 1:44 pm)
 

aikanet

shopware AG Partner

Anscheinend ist $sArticle.sBlockPrices in der Listenansicht jedoch nicht befüllt? :(
Ich vermute mal, dass hier nur die nötigsten Artikeldaten geladen werden.

Folgendes ergibt bei mir bei einem "normalen" Artikel mit Staffelpreisen Null:
{$sArticle.sBlockPrices|@count}


Danke für weitere Tipps,
Rafael Kutscha

Aikanet UG (haftungsbeschränkt) - Tel: 0211 / 9468107-40
 
  • Beiträge: 66
  • Mitglied seit: Di Jan 31, 2012 4:47 pm
  • Ort: Düsseldorf
  • WWW: Website
  • Danke abgegeben: 9
  • Danke erhalten: 3
 

ottscho

Shopware Guru

Sorry, habe ich über sehen. Habe nicht gelesen, dass du dies im Listing brauchst.

Dann musst du den Controller/Modul anpassen, damit du die Staffelpreise erhälst.
Am besten über ein Plugin.

public static function onListingPostDispatch(Enlight_Event_EventArgs $args)
   {   
      $request = $args->getSubject()->Request();
      $response = $args->getSubject()->Response();
      $view = $args->getSubject()->View();

      $articles = $view->sArticles;
      
      if(!$request->isDispatched()||$response->isException()||$request->getModuleName()!='frontend'){
         return;
      }
      
      $i = 0;

      foreach($articles as $article) {         
         if ($articles[$i]['articleDetailsID']) {         
            $sql = "SELECT `from` AS valFrom,`to` AS valTo, price, pseudoprice FROM s_articles_prices WHERE articledetailsID={$articles[$i]['articleDetailsID']}
                  AND (pricegroup='EK')
                  ORDER BY id ASC
                  ";
            $getBlockPricings = Shopware()->Db()->fetchAll($sql);
         }
                  
         // If more then one row, there are block-prices            
         if (count($getBlockPricings)>1){
            foreach ($getBlockPricings as $blockPriceKey => $blockPriceValue){
                  $getBlockPricings[$blockPriceKey]["from"] = $blockPriceValue["valFrom"];
                  $getBlockPricings[$blockPriceKey]["to"] = $blockPriceValue["valTo"];
                  $getBlockPricings[$blockPriceKey]["price"] = Shopware()->Modules()->Articles()->sCalculatingPrice($blockPriceValue["price"],19,$articles[$i]);
                  $getBlockPricings[$blockPriceKey]["pseudoprice"] =  Shopware()->Modules()->Articles()->sCalculatingPrice($blockPriceValue["pseudoprice"],19,$articles[$i]);
            }
            $articles[$i]['sBlockPrices'] = $getBlockPricings;
         } // block pricing
         else {
            $articles[$i]['sBlockPrices'] = array();
         }
         

         $i++;
      }
      
      $view->sArticles = $articles;


   }

 
  • Beiträge: 2068
  • Mitglied seit: Fr Okt 22, 2010 10:26 am
  • Danke abgegeben: 68
  • Danke erhalten: 158
 
Für diesen Beitrag haben sich bedankt:
aikanet (Fr Feb 17, 2012 2:30 pm)
 

aikanet

shopware AG Partner

Danke, Danke!
Ich werde die Methode sGetArticlesByCategory() in meiner myArticle entsprechend erweitern. Ich vermute mal, dass diese Anpassung an mehreren Stellen benötigt wird und ich zudem auch wieder meinen Patch zur Berücksichtigung der Herstellerrabatte verwenden muss.

Viele Grüße,
Rafael Kutscha

Aikanet UG (haftungsbeschränkt) - Tel: 0211 / 9468107-40
 
  • Beiträge: 66
  • Mitglied seit: Di Jan 31, 2012 4:47 pm
  • Ort: Düsseldorf
  • WWW: Website
  • Danke abgegeben: 9
  • Danke erhalten: 3
 
  • Seite 1 von 1
 
 
Twitter Facebook