Guten Morgen,
ich habe ein Fehler in Magento 1.7.0.2 beim Checkout:
Fatal error: Class 'Sisu_Checkout_Helper_Data' not found in app/Mage.php on line 546
Kann mir jemand bei meinem Fehler bitte helfen?
VG
Haufe
Hi,
was steht den in der Zeile?
Gruß Helle
self::register($registryKey, new $helperClass);
Hier ist eine Mögliche Lösung:
Hi,
check mal ob die unter app/code/local oder community/Sisu/Checkout/Helper/ die Datei Data.php vorhanden ist.
Wenn ja, einmal den Inhalt posten, wenn nein anlegen mit folgendem Inhalt
<?php class Sisu_Checkout_Helper_Data extends Mage_Core_Helper_Abstract{ //nothing to do atm }
Bleibt der Fehler bestehen, bitte mal ein
Zend_Debug::dump($registryKey); Zend_Debug::dump(new $helperClass);
auf Zeile 455 in der fehlerverursachenden Datei und die Ausgabe ebenfalls hier posten...
Nabend,
die Data.php ist vorhanden:
<?php /** * This file is part of the simplesurance GmbH checkout plugin for Magento. * * @link https://simplesurance.de * @copyright (C) simplesurance GmbH */ /** * Helper class. Retrieves the required data from the shop system. * Will be called from templates. Also provides the event observer for * the category export. */ class Sisu_Checkout_Helper_Data extends Mage_Core_Helper_Abstract { /** * Javascript source * * @const string */ const JAVASCRIPT_SOURCE = 'www.schutzklick.de/jsapi/sisu-checkout-2.x.min.js'; /** * Returns the contents of the shopping cart as json * * @return string */ public function getCartItems() { /** @var Mage_Sales_Model_Quote $quote */ /** @var Mage_Sales_Model_Quote_Item $item */ $products = array(); $quote = Mage::getSingleton('checkout/session')->getQuote(); $cartItems = $quote->getAllVisibleItems(); $currency = $this->getCurrency(); $country = strtolower($quote->getShippingAddress()->getCountryId()); foreach ($cartItems as $item) { $mageProduct = Mage::getModel('catalog/product')->load($item->getProductId()); $product = array( 'id' => $item->getProductId(), 'name' => $mageProduct->getName(), 'price' => $item->getCalculationPrice(), 'currency' => $currency, 'sku' => $mageProduct->getSku(), 'qty' => $item->getQty(), ); $product['categories'] = $this->getProductCategories($mageProduct); $products[] = $product; } return array( count($products) > 0 ? json_encode($products) : json_encode(null), empty($country) ? 'de' : $country ); } /** * Returns the last order id and the customer data as json * * @return string */ public function getLastOrderDetails() { /** @var Mage_Sales_Model_Order_Address $address */ $order = $this->getOrder(); $address = $order->getBillingAddress(); $country = strtolower($address->getCountryId()); $customerData = array( 'firstname' => $address->getFirstname(), 'lastname' => $address->getLastname(), 'email' => $this->getCustomerEmail($order), 'street' => $address->getStreetFull(), 'street_number' => '', 'zip' => $address->getPostcode(), 'city' => $address->getCity(), 'country' => $country, 'phone' => $address->getTelephone(), ); return array($this->getOrderId(), json_encode($customerData), $country); } /** * Returns partner_id value from shop config * * @return mixed */ public function getPartnerId() { return Mage::getStoreConfig('sisu_checkout/settings/partner_id'); } /** * Returns shop_id value from shop config * * @return mixed */ public function getShopId() { return Mage::getStoreConfig('sisu_checkout/settings/shop_id'); } /** * Returns the JavaScript source to include * * @return string */ public function getJavascriptSource() { return self::JAVASCRIPT_SOURCE; } /** * Hooks into Magento's event system right before the response * will be sent. If GET['schutzklickCategoryExport'] is present and * the category export has been allowed in backend the page will * output JSON and die(). * * @return boolean */ public function controllerFrontSendResponseBefore() { $allow = Mage::getStoreConfig( 'sisu_checkout/settings/allow_category_export' ); if (isset($_GET['schutzklickCategoryExport']) && $allow) { $export = array(); foreach ($this->getStoreCategories() as $category) { $export []= array( 'id' => $category->getId(), 'parent_id' => $category->getParentId(), 'name' => $category->getName() ); } // send the json - and only the json Mage::app()->getResponse() ->setHeader('Content-Type', 'application/json') ->setBody(json_encode($export)) ->sendResponse(); die(); } return true; } /** * Gets the category tree recursively. (Unlike the Mage helper function * with the same name.) * * @param integer $parentId defaults to null * @param boolean $isChild defaults to false * * @return array */ protected function getStoreCategories($parentId = null, $isChild = false) { if (is_null($parentId)) { $parentId = Mage::app()->getStore()->getRootCategoryId(); } $allCats = Mage::getModel('catalog/category')->getCollection() ->addAttributeToSelect('*') ->addAttributeToFilter('is_active','1') ->addAttributeToFilter('include_in_menu','1') ->addAttributeToFilter('parent_id',array('eq' => $parentId)) ->addAttributeToSort('position', 'asc'); $cats = array(); foreach ($allCats as $category) { $subcats = $category->getChildren(); $cats []= $category; if ($subcats) { $cats = array_merge($cats, $this->getStoreCategories($category->getId(), true)); } } return $cats; } /** * @param Mage_Catalog_Model_Product $mageProduct * @return array */ protected function getProductCategories($mageProduct) { /** @var Mage_Catalog_Model_Resource_Category_Collection $mageProductCategories */ $categories = array(); $mageProductCategories = $mageProduct->getCategoryCollection(); $mageProductCategories->addAttributeToSelect('name'); foreach ($mageProductCategories as $c) { $categories[] = array($c->getId() => $c->getName()); } return $categories; } /** * Returns completed order object * * @return Mage_Sales_Model_Order */ protected function getOrder() { return Mage::getModel('sales/order')->loadByIncrementId($this->getOrderId()); } /** * Returns completed order id * * @return string */ protected function getOrderId() { return Mage::getSingleton('checkout/session')->getLastRealOrderId(); } /** * @param Mage_Sales_Model_Order $order * @return string Email address */ protected function getCustomerEmail($order) { /** @var Mage_Sales_Model_Quote $quote */ $customer = Mage::getModel('customer/customer')->load($order->getCustomerId()); $quote = Mage::getModel('sales/quote')->load($order->getQuoteId()); return $this->coalesce( $order->getCustomerEmail(), $quote->getCustomerEmail(), $customer->getEmail() ); } /** * Returns shop's active currency * * @return string */ protected function getCurrency() { return Mage::app()->getStore()->getCurrentCurrencyCode(); } /** * Takes multiple arguments and the returns the first of them which * evaluates to true or returns NULL if none of them evaluates to true. * * @param mixed $param1 * ... * @param mixed $paramN * * @return mixed */ protected function coalesce(/* ... */) { $args = func_get_args(); foreach ($args as $arg) { if ($arg) { return $arg; } } return null; } }
Danke für die Hilfe