Quantcast
Channel: OXID Community Forum - Module
Viewing all 816 articles
Browse latest View live

oxcmp_basket erweitern (Individualisierbare Artikel)

$
0
0
Oxid Version: 4.8

Ich hatte das Problem, dass ich keine Individualisierungsoptionen übergeben konnte, wenn das Standardfeld "details" nicht gesetzt war. Nach langer Internetsuche bin ich dann über zwei Bug-Reports von Oxid gestolpert, wo der Grund dafür ersichtlich wurde:

Der komplette persParam Array wird auf NULL gesetzt, wenn das Element "details" nicht exisitert bzw. leer ist. Das ist natürlich ärgerlich, wenn man dieses Feld nicht setzen will.

Ich bin jetzt auch so weit, dass ich eine funktionierende Lösung habe, aber die bereitet mir irgendwie Bauchschmerzen. Ich habe oxcmp_basket erweitert und zwei Funktionen komplett aus dem Core-Source kopiert und meine Änderungen vorgenommen (fürs Forum habe ich die Änderungen mal hervorgehoben):

PHP Code:

<?php

class dacmp_basket extends oxcmp_basket {
    
/**
     * Collects and returns array of items to add to basket. Product info is taken not only from
     * given parameters, but additionally from request 'aproducts' parameter
     *
     * @param string $sProductId product ID
     * @param double $dAmount    product amount
     * @param array  $aSel       product select lists
     * @param array  $aPersParam product persistent parameters
     * @param bool   $blOverride amount override status
     *
     * @return mixed
     */
    
protected function _getItems$sProductId null$dAmount null$aSel null$aPersParam null$blOverride false )
    {
        
// collecting items to add
        
$aProducts oxConfig::getParameter'aproducts' );

        
// collecting specified item
        
$sProductId $sProductId?$sProductId:oxConfig::getParameter'aid' );
        if ( 
$sProductId ) {

            
// additionally fething current product info
            
$dAmount = isset( $dAmount ) ? $dAmount oxConfig::getParameter'am' );

            
// select lists
            
$aSel = isset( $aSel )?$aSel:oxConfig::getParameter'sel' );

            
// persistent parameters
            
if ( empty($aPersParam) ) {
                
$aPersParam oxConfig::getParameter'persparam' );


//======= ÄNDERUNG NÄCHSTE ZEILE: Bedingung auskommentiert
                
if ( !is_array($aPersParam/*|| empty($aPersParam['details'])*/ ) {
                    
$aPersParam null;
                }



            }

            
$sBasketItemId oxConfig::getParameter'bindex' );

            
$aProducts[$sProductId] = array( 'am' => $dAmount,
                                             
'sel' => $aSel,
                                             
'persparam' => $aPersParam,
                                             
'override'  => $blOverride,
                                             
'basketitemid' => $sBasketItemId
                                           
);
        }

        if ( 
is_array$aProducts ) && count$aProducts ) ) {

            if (
oxConfig::getParameter'removeBtn' ) !== null) {
                
//setting amount to 0 if removing article from basket
                
foreach ( $aProducts as $sProductId => $aProduct ) {
                    if ( isset(
$aProduct['remove']) && $aProduct['remove']) {
                        
$aProducts[$sProductId]['am'] = 0;
                    } else {
                        unset (
$aProducts[$sProductId]);
                    }
                }
            }

            return 
$aProducts;
        }

        return 
false;
    }

    
/**
     * Adds all articles user wants to add to basket. Returns
     * last added to basket item.
     *
     * @param array $aProducts products to add array
     *
     * @return  object  $oBasketItem    last added basket item
     */
    
protected function _addItems $aProducts )
    {
        
$oActView   $this->getConfig()->getActiveView();
        
$sErrorDest $oActView->getErrorDestination();

        
$oBasket $this->getSession()->getBasket();
        
$oBasketInfo $oBasket->getBasketSummary();

        foreach ( 
$aProducts as $sAddProductId => $aProductInfo ) {

            
$sProductId = isset( $aProductInfo['aid'] ) ? $aProductInfo['aid'] : $sAddProductId;

            
// collecting input
            
$aProducts[$sAddProductId]['oldam'] = isset( $oBasketInfo->aArticles[$sProductId] ) ? $oBasketInfo->aArticles[$sProductId] : 0;

            
$dAmount = isset( $aProductInfo['am'] )?$aProductInfo['am']:0;
            
$aSelList = isset( $aProductInfo['sel'] )?$aProductInfo['sel']:null;
            






/* ================================================== */                          
            
if ( isset( $aProductInfo['persparam'] ) && is_array$aProductInfo['persparam'] ) ) {
                
$aPersParam $aProductInfo['persparam'];

                
//Delete all empty params
                
foreach ($aPersParam as $curKey => $sParam) {
                    if (empty(
$sParam)) {
                        unset(
$aProductInfo['persparam'][$curKey]);
                    }
                }
                
                
//If the Array is now empty, set it to NULL explicitly
                
if (empty($aPersParam)) {
                    
$aPersParam NULL;
                }
            }
/* ================================================== */            
   






         
            
$blOverride = isset( $aProductInfo['override'] )?$aProductInfo['override']:null;
            
$blIsBundle = isset( $aProductInfo['bundle'] )?true:false;
            
$sOldBasketItemId = isset( $aProductInfo['basketitemid'] )?$aProductInfo['basketitemid']:null;

            try {
                
$oBasketItem $oBasket->addToBasket$sProductId$dAmount$aSelList$aPersParam$blOverride$blIsBundle$sOldBasketItemId );
            } catch ( 
oxOutOfStockException $oEx ) {
                
$oEx->setDestination$sErrorDest );
                
// #950 Change error destination to basket popup
                
if ( !$sErrorDest  && $this->getConfig()->getConfigParam'iNewBasketItemMessage') == 2) {
                    
$sErrorDest 'popup';
                }
                
oxRegistry::get("oxUtilsView")->addErrorToDisplay$oExfalse, (bool) $sErrorDest$sErrorDest );
            } catch ( 
oxArticleInputException $oEx ) {
                
//add to display at specific position
                
$oEx->setDestination$sErrorDest );
                
oxRegistry::get("oxUtilsView")->addErrorToDisplay$oExfalse, (bool) $sErrorDest$sErrorDest );
            } catch ( 
oxNoArticleException $oEx ) {
                
//ignored, best solution F ?
            
}
            if ( !
$oBasketItem ) {
                
$oInfo $oBasket->getBasketSummary();
                
$aProducts[$sAddProductId]['am'] = isset( $oInfo->aArticles[$sProductId] ) ? $oInfo->aArticles[$sProductId] : 0;
            }
        }

        
//if basket empty remove posible gift card
        
if ( $oBasket->getProductsCount() == ) {
            
$oBasket->setCardIdnull );
        }

        
// information that last call was tobasket
        
$this->_setLastCall$this->_getLastCallFnc(), $aProducts$oBasketInfo );

        return 
$oBasketItem;
    }
}

Zwei Fragen stellen sich mir mit dieser Lösung: Warum kann ich oxcmp_basket nicht wie gewohnt mit oxcmp_basket_parent erweitern und was passiert nun, wenn jemand anderes die gleiche Klasse erweitern will?

Irgendwie scheint mir diese Lösung schmutzig zu sein, ich weiß aber nicht, warum. Sollte man das so umsetzen? Oder gibt es eine elegantere Lösung? Die Logik, wann die Parameter nicht übernommen werden, wird in Zukunft ggf. noch etwas komplexer werden als die einfache Überprüfung, ob alle Elemente leer sind.

Falls es interessant sein sollte, hier meine metadata.php:

PHP Code:

<?php

/**
 * Metadata version
 */
$sMetadataVersion '1.1';

/**
 * Module information
 */
$aModule = array(

// Uninteressantes entfernt

    
'extend'       => array(
        
'oxcmp_basket' => 'da/daPersonalizeArticle/components/dacmp_basket'
    
),
    
'blocks' => array(
        array(
            
'template' => 'page/details/inc/productmain.tpl',
            
'block'=>'details_productmain_persparams',
            
'file'=>'/tpl/blocks/persParams.tpl'
        
),
    ),

   
'settings' => array(
        array(
'group' => 'main''name' => 'bDaOptionExtendDefaultBlock''type' => 'bool''value' => 'false'),
        array(
'group' => 'main''name' => 'aDaOptionPersColors''type' => 'arr',  'value' => array('Rot','Grün','Blau')),
    )

);


Afterbuy Modul

$
0
0
Hallöchen,

die Beiträge die ich über die Foren Suche gefunden habe, sind alle schon ein paar Jährchen alt.

Wie ist denn der aktuelle Stand der Dinge!? Ich brauche ein Modul für meine bestehende Afterbuy Warenwirtschaft.

Idealerweise sollten nicht nur die Bestellungen vom Oxid ins Afterbuy übertragen werden, sondern auch im Afterbuy angelegte Artikel in den Oxid Shop übertragen werden können, da ich keine Lust habe die Artikel im Oxid und Afterbuy doppelt einzupflegen.

Ich möchte also den Artikel einmal im Afterbuy anlegen und dann paralell zu Oxid, Ebay und Amazon hochladen können.

Vielen Dank!

Paypal - Keine Weiterleitung

$
0
0
Ich plage mich jetzt schon seit Stunden damit.
Nachdem ich Paypal als Zahlungsmethode ausgewählt habe,
komme ich wieder zurück zum Warenkorb.

Bitte um Hilfe!


LG, Marcello

Postpay Modul entfernen

$
0
0
Ich habe im Adminbereich das Postpay Modul deaktiviert. Kann ich auch die Postpay Tabellen und die Postpay Dateien aus dem Verzeichniss "modules" entfernen?

D3 Analytics Adwords- Einstellungen

$
0
0
Hallo,
ich habe das Analyticsmodul von D3 einbegunden und habe eine Verständnisfrage zu den Einstellungen beim Reiter Adwords.
Unser Analyticskonto und unser Adwordskonto sind schon verknüpft und Analyticsdaten werden an Adwords gesendet.
Nach meinem Verständnis müsste ich dann im D3- Modul bei Adwords "Kampagnentracking nicht aktivieren " einhakeln, damit nicht das Modul selbst nochmals Daten an Adwords schickt. Stimmt das?

Danke für einen Tip,

Grüsse

Mignon

WYSIWYG Editor welcher ist aktuell brauchbar?

$
0
0
NAchdem ich vermutlich durch tinymce meinen Shop immer wieder hacken lies..suche ich nun eine andere brauchbare Alternative...
Was passt denn möglichst als Modul zum aktuellen CE Shop?
Der möglichst nicht gleich wieder eine Sicherheitslücke darstellt

Option "Filter nach Größe"

$
0
0
Hallo zusammen,
vorab: ich bin technisch absolut unbegabt und kämpfe mich mehr oder weniger durch diese OXID-Welt da ich vor Kurzem einen kleinen Onlineshop an den Markt gebracht habe (die hauptsächliche Arbeit wurde hier bis auf das gestalterische von einer Agentur gemacht). Mittlerweile fehlt mir (und die Kunden fragen danach!) die Option, nach den verschiedenen Größen zu filtern. Wir nutzen die Edition 4.8.7
Das kann man doch bestimmt irgendwie realisieren!? Aber wie? Muss ich dafür eine neue Version kaufen? Ein bestimmtes Modul dazu kaufen? Mit welchen Kosten/ Aufwand ist das verbunden?
Vielen Dank!!!

Geburtstagsgutschein - Generierung und Versand nach Geburtsdatum im Kundenaccount

$
0
0
Hallo,

gibt es ein Oxid-Modul, dass folgende Parameter erfüllt:
  • Generierung und Versand eines Geburtstagsgutscheines
  • Adressat und Terminierung anhand der Geburtsdaten im Kundenaccount z.B. immer 5 Tage vor dem Geburstag des jeweiligen Kunden
  • Gutscheinversand per E-Mail, Standdart-Content mit wechselndem Gutscheincode
Ist das ggf. mit dem integrierten Gutscheinmodul von Oxid möglich oder bedarf es da einer Erweiterung?

Freue mich über Tipps.

Gruß Gabriele

Amazon Payment by Jankowfsky AG

$
0
0
Ich habe nun das Modul von Jankowfsky AG installiert, doch im WebShop tut sich nicht viel.

"Bezahlen mit Amazon" wurde den dazugehörigen Ländern und Versandarten zugeordnet.

Das Modul scheint gar nicht geladen zu sein, da $oViewConf->getAmazonPaymentIsActive() nichts zurückwirft.

Tmp ist auch gelöscht und Views aktualisiert. In den Einstellungen ist der "Sandbox Modus" eingestellt.

In der sehr kurz gehaltenen Dokumentation konnte ich nichts finden:

https://jankowfsky.atlassian.net/wik...onPayment4OXID

Was benötigt denn das Modul um überhaupt zu laufen?

Heidelpay Sofortüberweisung Sandbox

$
0
0
Moin,

Hat jemand schon bei Zahlungsarten - Testen die Meldung "Autorisierung der Zahlung fehlgeschlagen. Bitte prüfen Sie Ihre Eingabe!“ bekommen? Das entspricht dem payment error = 2.

Wenn ja, wie habt Ihr das Problem gelöst?

Egal welche OXID-Version und welches Zahlungsmodul, Hauptsache die obige Fehlermeldung kam.

Danke und Gruß,

marsium

ps Die Backend Einstellungen, mit denen getestet wird (Channel-ID Login, Pwd) sollten stimmen, laut Heidelpay
Da das Modul von D3 stammt, haben die Heidelpayer mich and D3 weitergeleitet. D3 meinen aber, es liegt am Heidelpay (klar).

Incompatible file format: The encoded file has format major ID 3, whereas the Loader expects 4

$
0
0
Moin,

ich weiß, Zend & PHP 5.2 vs. PHP 5.3 wurde schon 100+ mal besprochen, aber Zend hin oder her löst mein Problem in dem Fall leider nicht. Ich verstehe es einfach nicht.

Ich habe heute Paypal 3.2.1 für Oxid 4.6 installiert, und zwar in meinen beiden Shops (CE 4.6.5)

Auf rotweinversand.de: Kein Problem, Installation auf Anhieb ohne Fehler, 100% Funktion.

Auf deli-vinos.de: Jede Menge Ärger mit offensichtlich alten registrierten Modulen, aber dank stundenlanger Recherche im Forum und anschließend manueller Bereinigung der oxconfig war die Installation dann doch möglich.

Während auf rotweinversand.de das neue PayPal Modul einwandfrei arbeitet, schmeißt mir dasselbe Modul auf deli-vinos.de den im Betreff genannten Fehler beim Klick auf einen beliebigen PayPal Button.

Beide Shops laufen unter PHP Version 5.3.3-7+squeeze25

Auf beiden Shops ist der (hoffentlich) richtige Zend installiert:

This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
with the ionCube PHP Loader v4.0.1, Copyright (c) 2002-2010, by ionCube Ltd., and
with Zend Guard Loader v3.3, Copyright (c) 1998-2010, by Zend Technologies

Zend Guard Loader
Zend Guard Loader enabled
License Path no value
Obfuscation level 3

Alle Parameter (Zend Memory Manager, Zend Multibyte Support etc.) sind bei beiden Shops identisch.

Der eine Shop funktioniert, der andere schmiert beim Checkout ab. Ich habe jetzt bei deli-vinos.de das alte PayPal-Modul wieder aktiviert, da ich ungern auf die eingehenden Bestellungen verzichten möchte, bis es einen Lösungsansatz gibt.

Ich habe natürlich alle Dateien binär hochgeladen. Und mit Blick auf meine Signatur sind die anderen Basics Ehrensache. ;)

Hat jemand eine Idee? Für Hilfe wäre ich sehr dankbar.

kann händlerkonto nicht für paypal plus freischalten

dontshowtocart und antipreisalarm

$
0
0
Hallo, ich suche ein kostenloses Modul womit ich
1. den Preisalarm ausschalten kann
2. den "in den Warenkorb" Button in der Kategorievorschau ausblenden kann

für die Shopversion Community Edition 4.9.2.

Wer kann mir da weiterhelfen?

Tinymce wird nicht angezeigt...

Probleme bei Einrichtung von Sodortüberweisungt

$
0
0
Hi Leutz,

bin bei der Einrichtung der Zahlarten. Hat mit allen soweit geklappt, bis auf Sofortüberweisung (Modul von Tronet).

Habe das Modul installiert, aktiviert, den Haken auf aktiv gesetzt, die Benutzergruppen zugewiesen, sowie die Länder.

Aber diese Zahlart erscheint nicht mal zur Auswahl....Irgend eine Idee was man da falsch gemacht haben könnte!?

Da keine Meldung erscheint, weiß ich garnicht wo ich mit suchen anfangen soll.

Grüße Day

Welches PayPal Modul für CE 4.5.11_46050?

$
0
0
Hallo alle zusammen,

Welches Modul für PayPal Zahlungen ist bei der ShopVersion CE 4.5.11_46050 zu empfehlen?

Vielen Dank für Tips

Paymill für CE 4.9

$
0
0
Hallo zusammen,

ich bin auf der Suche nach einem PSP für Kreditkarte und Lastschriftverfahren für OXID CE 4.9. Wichtig dabei ist mir, dass keine monatliche Grundgebühr, sondern nur transaktionsgebundene Kosten anfallen.

Ich bin bei meiner Suche auf Paymill gestoßen. Allerdings steht bei Paymill unter eXchange, dass dieses Plug-in nur bis 4.8.x kompatibel ist. Hatte bereits beim Support von Paymill angefragt und er sagte mir, dass das Plug-in, obwohl dort nur bis 4.8.x bei OXID steht, es trotzdem auch für 4.9. kompatibel ist. Bin da allerdins etwas skeptisch.:rolleyes::confused:

Hat jemand von euch Erfahrungen mit der Anbindung dieses Plug-ins für CE 4.9.x? Und funktioniert es wirklich?

Vielen Dank vorab für eure Antworten.

Viele Grüße

Speedy

OXID CE 4.9.4 + Amazon Login & Pay 4 OXID by JAG

$
0
0
hi,

ich habe einen OXID CE Shop in Version 4.9.4 am laufen. Nachdem ich ich Paypal und Sofortüberweisung als zahlungsmittel erfolgreich eingerichtet habe, ist nun noch Amazon Payments angedacht.

Dazu habe ich das Modul:

Amazon Login & Pay 4 OXID by JAG

installiert. Es liegt z.Zt. in version 2.1.0 vor.

Nach der Installation und Aktivierung bekomme ich im Shop-Backend eine Fehlermeldung bzgl. der Shopgesundheit. Dies liegt an einer Falschen Kollation des Feldes OXIDORDERID in der Tabelle "jagamazonrefunds". Wenn die Kollation auf "latin1_general_ci" geändert wurde ist die Fehlermeldung weg.

Bisheriger Stand:
- Die Einstellungen meines Amazon Payments Konto sind gemacht. Das sollte alles passen.
- Das Modul ist konfiguriert.
- Der Zahlungsvorgang funktioniert als nicht angemeldeter Nutzer nicht korrekt.
D.h. der Bestellprozess wird bis zum letzten Schritt korrekt durchlaufen. Beim Drücken des Button "Zahlungspflichtig bestellen" wird die Bestellung abgesetzt und im Shopsystem regisitriert. Der Kunde kommt aber auf der Seite offline.html und nicht einer Bestätigungsseite aus.

Kann mir jemand einen Tip geben, wo das Problem liegt.

herzliche Grüße

Probleme mit Dateitransfer in Modul und Strato

$
0
0
Hallo miteinander,

ich habe ein custom-Template für die Oxid Community Edition 4.8.4 und Problem mit einem custom-Modul, welches eine Datei auf den Server hochlädt. Wenn ich das ganze in meiner lokalen VM Teste funktioniert es, aber wenn ich as auf dem Strato-Rechner durchführe klappt es nicht und bricht mit einer "Internal Server Error" Fehlermeldung ab.

Die Datei, die ich hochladen will hat ca 7.5 MB und erst wenn ich sie auf ca unter 2Mb kleinstückele kommt die Fehlermeldung nicht. Das Hochladen geht nicht so schnell (habe nur 1MBit upstream), aber es dauert bei Strato auch recht lange bis die Fehlermeldung nach dem upload dann kommt.

Ich dachte zuerst an irgendwelche php-Probleme, habe dann aber in der form, in der ich die Datei hochlade ein phpinfo() eingefügt und die typischen Verdächtigen im Core geprüft, welche bei Strato dann so aussehen:

Directive Local Value Master Value
max_execution_time 0 0
max_file_uploads 20 20
max_input_nesting_level 64 64
max_input_time 60 60
max_input_vars 4000 4000
memory_limit 128M 128M
open_basedir no value no value
output_buffering no value no value
output_handler no value no value
post_max_size 48M 48M
precision 14 14
realpath_cache_size 16K 16K
realpath_cache_ttl 120 120
register_argc_argv On On
register_globals Off Off
register_long_arrays Off Off
report_memleaks On On
report_zend_debug On On
request_order no value no value
safe_mode Off Off
safe_mode_exec_dir no value no value
safe_mode_extra_uid 0 0
safe_mode_gid Off Off
safe_mode_include_dir /opt/RZphp5/includes /opt/RZphp5/includes
sendmail_from no value no value
sendmail_path /usr/sbin/sendmail -t -i /usr/sbin/sendmail -t -i
serialize_precision 100 100
short_open_tag On On
SMTP localhost localhost
smtp_port 25 25
sql.safe_mode Off Off
track_errors Off Off
unserialize_callback_func no value no value
upload_max_filesize 32M 32M
upload_tmp_dir no value no value
user_dir no value no value
user_ini.cache_ttl 300 300

Die Werte sind eigentlich besser als die in meiner VM, welche so aussehen:

max_execution_time 30 30
max_file_uploads 20 20
max_input_nesting_level 64 64
max_input_time 60 60
max_input_vars 1000 1000
memory_limit 128M 128M
open_basedir no value no value
output_buffering 4096 4096
output_handler no value no value
post_max_size 8M 8M
precision 14 14
realpath_cache_size 16K 16K
realpath_cache_ttl 120 120
register_argc_argv Off Off
register_globals Off Off
register_long_arrays Off Off
report_memleaks On On
report_zend_debug On On
request_order GP GP
safe_mode Off Off
safe_mode_exec_dir no value no value
safe_mode_gid Off Off
safe_mode_include_dir no value no value
sendmail_from no value no value
sendmail_path /usr/sbin/sendmail -t -i /usr/sbin/sendmail -t -i
serialize_precision 17 17
short_open_tag Off Off
SMTP localhost localhost
smtp_port 25 25
sql.safe_mode Off Off
track_errors Off Off
unserialize_callback_func no value no value
upload_max_filesize 32M 32M
upload_tmp_dir no value no value
user_dir no value no value
user_ini.cache_ttl 300 300
user_ini.filename .user.ini .user.ini
variables_order GPCS GPCS
xmlrpc_error_number 0 0
xmlrpc_errors Off Off
y2k_compliance On On
zend.enable_gc On On

Oxid ist recht neu für mich, und ich kenne die typischen Fallstricke nicht, die es z.B. bei einem Webhosting Server by Strato gibt. Ich habe bereits das Forum durchsucht aber leider nichts passendes gefunden.

Weiss da jemand evtl. etwas mehr darüber?

Zahlungsbestätigung senden

$
0
0
Hallo zusammen!

Da schon mehrer Kunden gefragt haben,
ob das Geld schon auf dem Konto sei,
habe ich soeben nach einem Modul gesucht,
welches folgendes machen soll.


Es gibt ja bei einer Bestellung die Funktion:
E-Mail schicken? Jetzt versenden


Gibt es so etwas ebenfalls schon für die Funktion Bezahlt am .
Und wenn man das aktuelle Datum speichert,
dass dann eine Bestätigungsmail versendet wird.


LG, Marcello
Viewing all 816 articles
Browse latest View live