Hallo,
nutzt jemand actindo im Zusammenspiel mit Oxid 4.5 (Professional oder CE) und kann kurz über Stärken und Schwächen berichten?
Vielen Dank im Voraus!
Hallo,
nutzt jemand actindo im Zusammenspiel mit Oxid 4.5 (Professional oder CE) und kann kurz über Stärken und Schwächen berichten?
Vielen Dank im Voraus!
Hallo Adrian,
ich nutze Actindo zwar nicht selber, weiß aber von zwei Kunden, dass es noch massive Probleme mit 4.5 gibt. Ein Update ist zwar angekündigt, aber Actindo ist (ebenfalls aus überlieferten Erfahrungen) gut darin Dinge zu versprechen, diese dann aber erst viel später, oder gar nicht einzuhalten.
Ich würde also (auch aus anderen Gründen) zur 4.4.8 greifen, oder eine andere WaWi vorschlagen.
Gruß, Kai
Laut Actindo soll der neue Connector in maximal zwei Wochen erscheinen, aber wie es so ist mit den Pferden und Apotheken …
Wir beschäftigen uns jetzt seit einer Weile mit Actindo, sind aber einige Ecken und Kanten drin, mit denen man leben muß.
Rüdiger
Kannst du die Ecken und Kanten beschreiben?
Hy, ich arbeite mit 4.5.0 und Actindo und versuchte hier eine Verbindung herzustzellen.
Da diese Versuche immer mit “ERROR” endeten und Actindo sich so lange Zeit lässt habe ich mich an das umprogrammieren des Connectors gewagt. Den umprogrammierten Connector habe ich dann sogar an Actindo gesendet. Das war jetzt vor 4 oder 5 Wochen.
Er funktioniert soweit ich das beurteilen kann ganz gut und ohne errors.
Ich glaube ich bin der einzige der zzt. einen ich drücke es mal vorsichtig aus "Vermutlich funktionierenden Connector " hat.
Bisher konnte ich folgendes erfolgreich testen:
edit: Hier habe ich für euch noch den code der geändert werden muss damit ihr den alten connector für oxid 4.5.0 verwenden könnt.
Datei : import_products.php
Die Zeilen 699 - 711 ersetzen mit:
function _do_import_image( $imagetype, $imageidx, $iPos, $image_type,$tmpfile, $image_name )
{
global $myConfig;
if( version_compare($GLOBALS['myConfig']->getVersion(), '4.5.0', '<') ) {
$sTarget = $GLOBALS['myConfig']->getPictureDir() ."/$iPos/$image_name";
}
else
{
$sTarget = sprintf( "%s%s%s/%s",$GLOBALS['myConfig']->getPictureDir(),
$imagetype == "master" ? "master/" : "", $iPos, $image_name );
}
$sSource = $tmpfile;
edit 2:
Leider habe ich seit 3 Tagen jedoch das Problem das ich in Actindo die Fehlermeldung bekomme das die class PMMessage nicht gefunden werden kann.
Hat da jemand eine Lösung.
Gruß
Bengel
Funktionieren bei Dir die konfigurierbaren Optionen? Wir haben nämlich festgestellt, dass die Langbeschreibung (langtext) der bestellten Produkten nicht übertragen wird. d.h. Produkten mit konfigurierbaren Optionen (Farben, Größen, Text usw.) werden nicht korrekt importiert.
Die Funktionalität scheint schon vorhanden zu sein, wird aber nicht angesprochen:
pb_proto_shop_order.php, Zeile 656.
$this->fields[“8”] = “PBString”;
$this->fieldnames[“8”] = “langtext”;
pb_proto_shop_order.php, Zeile 726.
function set_langtext($value)
{
return $this->_set_value(“8”, $value);
}
Unser Coder hat versucht die export_orders.php zu erweitern, leider ohne Erfolg (ab Zeile 266).
$actindoarticle->set_art_nr( $article->oxorderarticles__oxartnum->rawValue );
$actindoarticle->set_art_name( $article->oxorderarticles__oxtitle->value );
...
$actindoarticle->set_langtext( nl2br($article->oxorderarticles__oxselvariant->value) );
Der Wert wird nicht von Actindo angenommen.
Rüdiger
[QUOTE=SubNet-One;62167]
Ich würde also (auch aus anderen Gründen) zur 4.4.8 greifen, oder eine andere WaWi vorschlagen.
Gruß, Kai[/QUOTE]
Wir setzen actindo mit der 4.4.8 ein und warten seit Wochen auf eine Lösung bzgl. import von Varianten aus Oxid nach actindo. Bei uns werden nur die Vaterartikel übernommen, nicht aber die Varianten. Aber auch hier “Still ruht der See”.
Hi Magnus,
wenn es sich nicht um viele verschiedene Auswahllisten handelt ist es mit einem kleinen Trick doch möglich die Varianten für neue Bestellungen zu übernehmen.
Datei: actindo/oxid4/export_orders.php
Die Zeile:
$actindoarticle->set_art_name( $article->oxorderarticles__oxtitle->value );
durch:
$actindoarticle->set_art_name( trim($article->oxorderarticles__oxtitle->value . "
" .$article->oxorderarticles__oxselvariant->value) );
…ersetzen.
Die Anpassung erweitert den Artikelnamen um die ausgewählten Varianten.
Schöne Grüße
Dave
[QUOTE=GN2 netwerk;67067]Funktionieren bei Dir die konfigurierbaren Optionen? Wir haben nämlich festgestellt, dass die Langbeschreibung (langtext) der bestellten Produkten nicht übertragen wird. d.h. Produkten mit konfigurierbaren Optionen (Farben, Größen, Text usw.) werden nicht korrekt importiert.
Die Funktionalität scheint schon vorhanden zu sein, wird aber nicht angesprochen:
pb_proto_shop_order.php, Zeile 656.
$this->fields[“8”] = “PBString”;
$this->fieldnames[“8”] = “langtext”;
pb_proto_shop_order.php, Zeile 726.
function set_langtext($value)
{
return $this->_set_value(“8”, $value);
}
Unser Coder hat versucht die export_orders.php zu erweitern, leider ohne Erfolg (ab Zeile 266).
$actindoarticle->set_art_nr( $article->oxorderarticles__oxartnum->rawValue );
$actindoarticle->set_art_name( $article->oxorderarticles__oxtitle->value );
...
$actindoarticle->set_langtext( nl2br($article->oxorderarticles__oxselvariant->value) );
Der Wert wird nicht von Actindo angenommen.
Rüdiger[/QUOTE]
Das kann ich leider gerade nicht testen da der connector wieder ausgestiegen ist. vermutlich gab es da wieder irgendwo eine Änderung.
Ich bin aber an dem Thema dran.
Vom Actindo Support habe ich gestern übrigens die Nachricht bekommen das der Release des Offizielen
Connectors schon bald sein soll, es gäbe jedoch noch keinen konkreten Termin! Die selbe Aussage wie vor 3 Monaten.
Danke für die Rückmeldung. Ja, das mit dem Termin-Blabla kenne ich auch mittlerweile bis zum Abwinken, wir wären grundsätzlich bereit, für die Beseitigung des Bugs auch Geld zu zahlen, aber selbst das Angebot wurde dafür nach 10 Tagen noch nicht erstellt, alles mehr als suboptimal. Deshalb die Frage, welche wirklich gute Alternative (außer pixi) wäre empfehlenswert?
Rüdiger
ich verstehe das nicht! die verkraulen sich doch so die Kunden… Die müssen echt viele davon haben sich das leisten zu können.
Eine gute Alternative? da fällt mir spontan auch nichts ein außer Lexware oder SAP! Aber da greift man auch ziemlich tief in Tasche.
Solltet ihr ein Angebot vorliegen haben dann würde es mich freuen hier die Preise zu erfahren.
Vieleicht würden sich auch mehrere finden um sich die kosten zu teilen.
Juhuuuu.
So Actindo hat den neuen Shop connector herausgebracht.
zu finden hier:
http://wiki.actindo.de/index.php?title=OXID_eshop#Oxid_CE_.28Community_Edition.29
Leider habe ich bei mir jedoch immer noch den folgenden fehler seit ich es mit Zend und IIS versuchte.
reader = $reader; $this->value = $this; if( !defined('PBRPC_LOCAL_CHARSET') ) define( 'PBRPC_LOCAL_CHARSET', 'ISO-8858-1' ); if( !defined('PBRPC_WIRE_CHARSET') ) define( 'PBRPC_WIRE_CHARSET', 'UTF-8' ); } /** * Add an array value * @param int - index of the field */ protected function _add_arr_value($index) { return $this->values[$index][] = new $this->fields[$index](); } /** * Set an array value - @TODO failure check * @param int - index of the field * @param int - index of the array * @param object - the value */ protected function _set_arr_value($index, $index_arr, $value) { $this->values[$index][$index_arr] = $value; } /** * Remove the last array value * @param int - index of the field */ protected function _remove_last_arr_value($index) { array_pop($this->values[$index]); } /** * Set an value * @param int - index of the field * @param Mixed value */ protected function _set_value($index, $value) { if (gettype($value) == 'object') { $this->values[$index] = $value; } else { $this->values[$index] = new $this->fields[$index](); if( is_subclass_of($this->values[$index], 'PBScalar') ) $this->values[$index]->set_value( $value ); else $this->values[$index]->value = $value; } } /** * Get a value * @param id of the field */ protected function _get_value($index) { if ($this->values[$index] == null) return null; // var_dump($this->values[$index]); if( is_subclass_of($this->values[$index], 'PBScalar') ) return $this->values[$index]->get_value(); else return $this->values[$index]->value; } /** * Get array value * @param id of the field * @param value */ protected function _get_arr_value($index, $value) { return $this->values[$index][$value]; } /** * Get array size * @param id of the field */ protected function _get_arr_size($index) { return count($this->values[$index]); } /** * Helper method for send string */ protected function _save_string($ch, $string) { $this->_d_string .= $string; $content_length = strlen($this->_d_string); return strlen($string); } /** * Fix Memory Leaks with Objects in PHP 5 * http://paul-m-jones.com/?p=262 * * thanks to cheton * http://code.google.com/p/pb4php/issues/detail?id=3&can=1 */ public function __destruct() { if (isset($this->reader)) { unset($this->reader); } if (isset($this->value)) { unset($this->value); } // base128 if (isset($this->base128)) { unset($this->base128); } // fields if (isset($this->fields)) { foreach ($this->fields as $name => $value) { unset($this->$name); } unset($this->fields); } // values if (isset($this->values)) { foreach ($this->values as $name => $value) { if (is_array($value)) { foreach ($value as $name2 => $value2) { if (is_object($value2) AND method_exists($value2, '__destruct')) { $value2->__destruct(); } unset($value2); } if (isset($name2)) unset($value->$name2); } else { if (is_object($value) AND method_exists($value, '__destruct')) { $value->__destruct(); } unset($value); } unset($this->values->$name); } unset($this->values); } } function toArray() { $arr = array(); if( !is_array($this->fieldnames) ) return null; foreach( $this->fieldnames as $_fieldid => $_fieldname ) { if( is_array($this->values[$_fieldid]) ) // repeated { $arr[$_fieldname] = array(); $size_fcn = $_fieldname.'_size'; $get_fcn = $_fieldname; $size = $this->$size_fcn(); for( $i=0; $i<$size; $i++ ) { $arr[$_fieldname][] = $this->$get_fcn($i)->toArray(); } } else // required, optional { if( is_object($this->$_fieldname()) ) { // complex type $arr[$_fieldname] = $this->$_fieldname()->toArray(); } else { // simple type $arr[$_fieldname] = $this->$_fieldname(); } } } return $arr; } function fromArray( $arr ) { if( !is_array($this->fieldnames) ) return null; foreach( $this->fieldnames as $_fieldid => $_fieldname ) { if( !isset($arr[$_fieldname]) ) continue; $data = $arr[$_fieldname]; if( is_array($this->values[$_fieldid]) ) // repeated { $add_fcn = 'add_'.$_fieldname; $fld = $this->$add_fcn(); $fld->fromArray( $data ); } else { $_setfieldname = 'set_'.$_fieldname; if( !is_subclass_of($this->fields[$_fieldid], 'PBScalar') ) { // complex type $p = new $this->fields[$_fieldid](); // echo "complex type ".($this->fields[$_fieldid])."
"; // var_dump($data); $p->fromArray( $data ); $this->$_setfieldname( $p ); } else { // simple type $this->$_setfieldname( $data ); } } } } protected function _do_SerializeToPHPSerialize( ) { $arr = array(); if( !is_array($this->fieldnames) ) return null; foreach( $this->fieldnames as $_fieldid => $_fieldname ) { if( is_array($this->values[$_fieldid]) ) // repeated { $arr[$_fieldid] = array(); $size_fcn = $_fieldname.'_size'; $get_fcn = $_fieldname; $size = $this->$size_fcn(); for( $i=0; $i<$size; $i++ ) { $arr[$_fieldid][] = $this->$get_fcn($i)->_do_SerializeToPHPSerialize(); } } else // required, optional { if( is_object($this->$_fieldname()) ) { // complex type $arr[$_fieldid] = $this->$_fieldname()->_do_SerializeToPHPSerialize(); } else { // simple type if( $this->fields[$_fieldid] == 'PBString' ) { if( PBRPC_LOCAL_CHARSET != 'UTF-8' && PBRPC_WIRE_CHARSET == 'UTF-8' ) $arr[$_fieldid] = utf8_encode( $this->$_fieldname() ); else if( PBRPC_LOCAL_CHARSET == 'UTF-8' && PBRPC_WIRE_CHARSET != 'UTF-8' ) $arr[$_fieldid] = utf8_decode( $this->$_fieldname() ); else $arr[$_fieldid] = $this->$_fieldname(); } else { $arr[$_fieldid] = $this->$_fieldname(); } } } } return $arr; } function SerializeToPHPSerialize( ) { return serialize( $this->_do_SerializeToPHPSerialize( ) ); } function ParseFromPHPSerialize( $str ) { $arr = unserialize( $str ); if( $arr === FALSE ) { trigger_error( 'error decoding '.$str, E_USER_NOTICE ); return; } // var_dump($arr); $this->_do_ParseFromPHPSerialize( $arr ); } protected function _do_ParseFromPHPSerialize( $arr ) { if( !is_array($this->fieldnames) ) return null; foreach( $this->fieldnames as $_fieldid => $_fieldname ) { if( !isset($arr[$_fieldid]) ) continue; if( is_array($this->values[$_fieldid]) ) // repeated { $add_fcn = 'add_'.$_fieldname; for( $i=0; $i$add_fcn( ); $p->_do_ParseFromPHPSerialize( $arr[$_fieldid][$i] ); } } else // required, optional { // var_dump( $this->fields[$_fieldid] ); $_setfieldname = 'set_'.$_fieldname; if( !is_subclass_of($this->fields[$_fieldid], 'PBScalar') ) { // complex type $p = new $this->fields[$_fieldid](); // echo "complex type ".($this->fields[$_fieldid])."
"; $p->_do_ParseFromPHPSerialize( $arr[$_fieldid] ); $this->$_setfieldname( $p ); } else { // simple type $_setfieldname = 'set_'.$_fieldname; // var_dump($arr[$_fieldid]); // $this->$_setfieldname( $arr[$_fieldid] ); $cn = $this->fields[$_fieldid]; $this->values[$_fieldid] = new $cn(); if( $cn == 'PBString' ) { if( PBRPC_LOCAL_CHARSET != 'UTF-8' && PBRPC_WIRE_CHARSET == 'UTF-8' ) $this->values[$_fieldid]->value = utf8_decode( $arr[$_fieldid] ); else if( PBRPC_LOCAL_CHARSET == 'UTF-8' && PBRPC_WIRE_CHARSET != 'UTF-8' ) $this->values[$_fieldid]->value = utf8_encode( $arr[$_fieldid] ); else $this->values[$_fieldid]->value = $arr[$_fieldid]; } else { $this->values[$_fieldid]->value = $arr[$_fieldid]; } } } } } } ?> Fatal error: Class 'PBMessage' not found in C:\inetpub\vhosts\partytisch24.de\httpdocs\actindo\pbrpc\pb_proto_protobufrpc.php on line 3
Ich sehe da zum Schluss
Fatal error: Class 'PBMessage' not found in C:\inetpub\vhosts\partytisch24.de\httpdocs\actindo\pbrpc\pb_proto_protobufrpc.php on line 3
Bin da echt am verzweifeln!!!
hier der Link zum testen des xmlrpc server.
http://partytisch24.de/actindo/xmlrpc_server.php
das komische ist ja das es mit dem IIS7 und PHP 5.3.8 funktionierte bis ich diesen Zend Server CE installierte um den Zend Loader für das PayPal Plugin hin zu bekommen.
Mittlerweile hab ich das auch ohne den Zend Server der übrigens nur einen Application Pool unterstützt hinbekommen.
Aktuelle config
IIS7
PHP 5.3.8
Zend Loader
Zend Optimizer
IonCube Loader
pls help.
@ Dave: Thx für den Tipp, ich bin immer noch nicht dazu gekommen, das mal auszuprobieren. Bei uns geht es auch bzw. momentan primär um den Import von Varianten aus dem Artikelstamm Oxid -> actindo!
@ all: Ich hoffe, dass actindo auch für die 4.4.8 ebenfalls noch eine aktualisierte Schnittstelle herausbringt.
Nach langem Suchen habe ich das Problem bei uns gefunden. Es lag nicht an der Schnittstelle. Vielmehr ignoriert actindo die Varianten, wenn in der Faktura unter Stammdaten -> Artikelmerkmale ein Attribut (Variante) doppelt eingetragen ist. Das passiert, wenn bei Oxid in den Variantennamen bei Deutsch z.B. Farbe und im Englischen “Color” sowie bei einem anderen Artikel “Colour” geschrieben wird. Da es keine Fehlermeldung gibt, soll man darauf erst mal kommen
Hat eigentlich schon jemand die Bilder der Varianten aus Oxid nach Actindo importiert?
Und setzt jemand das POS-Modul ein?
Gibt es schon jemanden, bei dem die Schnittstelle problemlos läuft ? Bei mir klappt der Artikelupdate über den Shop Connector nicht. Hier gibt es einen Curl Error. Ich lade quasi jeden einzelnen Artikel hoch, macht echt Spaß bei Preisänderungen, zumal die Varianten ja nicht soch wirklich funktionieren, da werden die EANs der Varianten nicht übertragen, was tötlich ist für die Preissuchmaschenen. So, jetzt bin ich mal meinen Frust lost geworden …
Hallo,
um es vorweg zunehmen: ja ich habe gesucht!
aber ich finde keine Anleitung wie man die Schnittstelle installiert oder in welches Verzeichnis die Dateien Kommen??
auf der Wikiseite von Actindo habe ich auch nichts gefunden:(
Hat jemand eine Idee?
Schon mal Danke für eine Antwort.
der Connector kommt in das Verzeichnis actindo im Wurzelverzeichnis Deines Shops, anschließend Actindo gemäß http://wiki.actindo.de/index.php?title=Einstellungen:Webshop einrichten.
Rüdiger
Danke, das Video ist zwar Geschmackssache aber jetzt läuft der Connector.
also wenigsten werden die Artikel angelegt, wenn dann Bilder dazu kommen gibs eine schöne fensterfüllende Fehlermeldung!
ich werde mal hören was der Support da zu sagt und weiter testen.
edit: der Support sagt der Connector funktoniert nur bis Verson 4.5.6
Was sollte sich denn so wesentliches zwischen 4.5.6 und der aktuellen 4.5.8 verändert haben, dass der auf einmal nicht mehr gehen sollte?
Bei Versionsänderungen der dritten Stelle werden nur Bugs gefixt.