Weblog von markus.wilhelm

Magento exception 'Varien_Exception' with message 'Invalid method Mage_CatalogRule_Model_Rule::loadProductRules

  • Posted on: 6 January 2015
  • By: markus.wilhelm

Dear all,
after I updated my shop to Magento CE 1.9.1 I was unable to save any product. After searching a while I found the problem must be anywhere arround price rules but I could not find a solution. A quick fix was to uncomment the function Mage::getModel('catalogrule/rule')->loadProductRules($product), I do not use price rules anyhow.

in /...//lib/Varien/Object.php:653
Stack trace:
#0 /...//app/code/core/Mage/CatalogRule/Model/Observer.php(72): Varien_Object->__call('loadProductRule...', Array)
#1 /...//app/code/core/Mage/CatalogRule/Model/Observer.php(72): Mage_CatalogRule_Model_Rule->loadProductRules(Object(Mage_Catalog_Model_Product))
#2 /...//app/code/core/Mage/Core/Model/App.php(1338): Mage_CatalogRule_Model_Observer->loadProductRules(Object(Varien_Event_Observer))
#3 /...//app/code/core/Mage/Core/Model/App.php(1317): Mage_Core_Model_App->_callObserverMethod(Object(Mage_CatalogRule_Model_Observer), 'loadProductRule...', Object(Varien_Event_Observer))
#4 /...//app/Mage.php(448): Mage_Core_Model_App->dispatchEvent('catalog_product...', Array)
#5 /...//app/code/core/Mage/Core/Model/Abstract.php(391): Mage::dispatchEvent('catalog_product...', Array)
#6 /...//app/code/core/Mage/Catalog/Model/Abstract.php(315): Mage_Core_Model_Abstract->_beforeSave()
#7 /...//app/code/core/Mage/Catalog/Model/Product.php(515): Mage_Catalog_Model_Abstract->_beforeSave()
#8 /...//app/code/core/Mage/Core/Model/Abstract.php(316): Mage_Catalog_Model_Product->_beforeSave()
#9 /...//app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php(728): Mage_Core_Model_Abstract->save()
#10 /...//app/code/core/Mage/Core/Controller/Varien/Action.php(418): Mage_Adminhtml_Catalog_ProductController->saveAction()
#11 /...//app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('save')
#12 /...//app/code/core/Mage/Core/Controller/Varien/Front.php(172): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#13 /...//app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#14 /...//app/Mage.php(684): Mage_Core_Model_App->run(Array)
#15 /...//index.php(87): Mage::run('', 'website')
#16 {main}

public function loadProductRules($observer)
    {
	/** @var Mage_Catalog_Model_Product $product */
        $product = $observer->getEvent()->getProduct();
        if (!$product instanceof Mage_Catalog_Model_Product) {
            return $this;
        }
        //Mage::getModel('catalogrule/rule')->loadProductRules($product);
        return $this;
    }

New:

Development: 

Finley besteht seine erste Rettungshundeprüfung

  • Posted on: 16 September 2013
  • By: markus.wilhelm

Hallo,
unser Finley hat seine erste Rettungshundeprüfung bestanden ;-).

Bild

 

 

 

 

 

 

Er hat die beiden Opfer in der Suche in weniger als 5 Minuten gefunden gehabt und super angezeigt.

Wir sind sehr stolz auf ihn, dass er mit gerade mal 2 Jahren seine Prüfung mit der Note 1 in der Suche bestanden hat.

Rettungshunde: 

Emma und Finley im DEZ

  • Posted on: 3 April 2013
  • By: markus.wilhelm

Hallo,
anbei ein paar Bilder wie sich unsere beiden bei den Gesundheitstagen im Donau Einkaufszentrum gemacht haben. Emma musst unter meinen beiden an ihrer Kenndecke angebrachten Luftballons leiden und Finley wurde zum "eintreiben" von Spenden "missbraucht".

Bild Bild Bild
Rettungshunde: 

Magento Varnish and Turpentine Error wiht Paypal

  • Posted on: 23 February 2013
  • By: markus.wilhelm

I had an error in my Magento Shop with 1.7 using Varnish and Turpentine extension. The redirect page from Magento to Paypal was cached and my customers did have a different basket in Paypal then the had previously in Magento. I changed the varnish config in the vcl_recv Funktion and added the following line:

Old:

if (req.restarts == 0) {
        if (req.http.X-Forwarded-For) {
            set req.http.X-Forwarded-For =
            req.http.X-Forwarded-For + ", " + client.ip;
        } else {
            set req.http.X-Forwarded-For = client.ip;
        }
    }
    set req.http.X-Turpentine-Secret-Handshake = "1";
     
         
    if (req.request !~ "^(GET|HEAD|PUT|POST|TRACE|DELETE|OPTIONS)$") {
        return (pipe);
    }

New:

if (req.restarts == 0) {
        if (req.http.X-Forwarded-For) {
            set req.http.X-Forwarded-For =
            req.http.X-Forwarded-For + ", " + client.ip;
        } else {
            set req.http.X-Forwarded-For = client.ip;
        }
    }
    set req.http.X-Turpentine-Secret-Handshake = "1";
     
    if (req.url ~ "^/paypal") {
        return (pass);
    }
     
         
    if (req.request !~ "^(GET|HEAD|PUT|POST|TRACE|DELETE|OPTIONS)$") {
        return (pipe);
    }

BR Markus

Development: 
Rettungspfoten: 

Neuigkeiten aus dem Rettungspfoten-Shop

  • Posted on: 23 February 2013
  • By: markus.wilhelm

Hi ihr,
wir verwenden seit einigen Tagen in unserem Rettungspfoten-Shop eine neue Shop-Software. Mit dieser konnten wir unseren Service für Sie verbessern. In Kürze werden die Lieferzeitangaben verbessert. Ab diesem Zeitpunkt kann auch der aktuelle Lagerbestand angezeigt werden. Ab sofort haben wir auch immer Produkte mit einem reduzierten Preis im Angebot. Ebenso können Sie direkt Artikel finden, die wir Ihnen als Tipp des Monats empfehlen und Artikel, die wir neu im Sortiment haben.

Test- oder Erfahrungsberichte finden Sie im Rettungspfoten-Blog.

Ebenso können Sie uns jetzt auch bei Facebook und Twitter finden. Dort werden wir unsere Neuheiten oder andere Informationen posten.

Development: 
Rettungshunde: 
Beruf: 
Rettungspfoten: 

Migrate XT Commerce to Magento Release 1.7.1

  • Posted on: 23 February 2013
  • By: markus.wilhelm

Dear all,
the new release fixes some bugs found during the last tests and will support Magenta CE 1.7. You mus not install the script from Magento Connect, please download the zip file and extract it to the magento root installation folder. Please read the config file carefully. Please discuss the topics in our board.
You can find some how tos in here:
http://g2forum.bessieundmarkus.de/how-to-magento.html

Please report bugs to our Bugtracker:
http://bugs.rescue-dogs.de/

You may download the script in from here: migrate_1.7.1.zip

Development: 

Magento error in order by name for directory_country_region bug

  • Posted on: 23 February 2013
  • By: markus.wilhelm

Dear all,
after searching like hell for solving the error message while trying to save the system default configuration in Magento I finally found an "error". Not sure where this comes from: Magento, German Market Ready. Whell I don't care, it now works ;-)
Just change the file: app/code/core/Mage/Directory/Model/Resource/Region/Collection.php

class Mage_Directory_Model_Resource_Region_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract
{
...
 
 protected function _construct()
    {
        $this->_init('directory/region');
 
        $this->_countryTable    = $this->getTable('directory/country');
        $this->_regionNameTable = $this->getTable('directory/country_region_name');
 
// comment out the next line-----------------------------------------------
        //$this->addOrder('name', Varien_Data_Collection::SORT_ORDER_ASC);
// ------------------------------------------------------------------------
        $this->addOrder('default_name', Varien_Data_Collection::SORT_ORDER_ASC);
    }
...
}
BR Markus
Development: 

SQLITE JDBC Adapter for SAP PI 7.30

  • Posted on: 23 February 2013
  • By: markus.wilhelm

To be able to use the SQLITE Jdbc class within a SAP PI 7.30 JDBC Adapter (sender or receiver) you must mdify the Jdbc class a little.
SQLITE Homepage: http://www.sqlite.org/
SQLITE JDBC Adapter from Xerial: http://www.xerial.org/trac/Xerial/wiki/SQLiteJDBC

The default jdbc classes for SQLITE need native libraries being available on the host where the jdbc class is used. Xerial implemented the SQLITE libraries within their SQLITE jdbc class but you must tell the class if you want to use native or build in Java SQLITE libraries. Within the calling code you may set the variable sqlite.purejava.

Example:

public class sample
{
  public static void main(String[] args) throws ClassNotFoundException
  {
    // load the sqlite-JDBC driver using the current class loader
    System.setProperty("sqlite.purejava", "true");
    Class.forName("org.sqlite.JDBC");
...
}

This is not possible within SAP PI, so I changed the jdbc jar to allways use the build in java library for SQLITE. I changed the function getPureJavaFlag file SQLiteJDBCLoader.java in the following way. You may download the jar file here.

package org.sqlite;
 
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
...
public class SQLiteJDBCLoader
{
...
    static boolean getPureJavaFlag() {
        //return Boolean.parseBoolean(System.getProperty("sqlite.purejava", "false"));
        return true;
    }
...
}
This now enables you to use SQLITE JDBC Adapter within SAP PI 7.30 as all other jdbc database connection:
- JDBC Driver: org.sqlite.JDBC
- Connection: jdbc:sqlite:/usr/sap/trans/interfaces/example.db
- leave username and password empty

Frasdorf 2013

  • Posted on: 19 February 2013
  • By: markus.wilhelm

Hallo,
auch dieses Jahr waren Bessie und ich zusammen mit der Ansbacher Rettungshundestaffel wieder in Frasdorf. Nächstes Jahr sind wir das 10. Mal dabei. Bei wunderschönem Wetter (naja, es hat viel geschneit und gab recht wenig Sonne) haben wir mit unseren Hunden wieder tolle Ausflüge im Schnee auf die Berge rund um die Frasi gemacht.

Bild Bild Bild
Rettungshunde: 

Feuerzangenbowle

  • Posted on: 26 January 2013
  • By: markus.wilhelm

Dieses Jahr haben Bessie und ich zum ersten Mal zu einer Feuerzangenbowle bei uns im Garten eingeladen. Bei viel Schnee (sogar so viel, dass wir eine Schneebar bauen konnten) haben sich Kameraden aus der Rettungshundestaffel und einige Nachbarn eingefunden und mit uns zusammen den kalten/warmen Abend genossen. Wie sagt man so schön im Französischen: á la prochaine

Wir werden es wiederholen ;-)

Seiten