#1 (permalink)  
Alt 17.03.2006, 11:54
Benutzer
 
Registriert seit: 16.06.2005
Beiträge: 39
Standard

Hallo!

Ich m?chte Artikel mit einer CSV Datei importieren.
Das klappt auch soweit.
Nur wie kann ich einzelne Produkte in der CSV Datei als Sonderangebot kennzeichnen? Mir fehlt der passende Feldname daf?r.

Kann mir da jemand weiterhelfen?

1000 Dank!
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #2 (permalink)  
Alt 03.11.2007, 22:16
Benutzer
 
Registriert seit: 15.02.2005
Beiträge: 57
Standard Sonderangebote bei CSV Import

das würde mich auch interessieren, ob und wie das mit den Sonderangeboten funktioniert.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #3 (permalink)  
Alt 20.08.2008, 18:07
xt:Commerce Support Kunde
 
Registriert seit: 21.07.2008
Beiträge: 7
Standard

Gibt es da möglicherweise schon eine Lösung?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #4 (permalink)  
Alt 14.10.2008, 12:38
xt:Commerce Support Kunde
 
Registriert seit: 19.07.2004
Beiträge: 5
Standard

ich habe das ganze folgendermaßen integriert:

da ich das Feld 'p_disc' nicht nutze habe ich darin den Prozentwert eingetragen um wieviel der Produktpreis verringert werden soll. Man kann natürlich auch die CSV-Datei um ein eigenes Feld erweitern. Dazu muss man allerdings in der Funktion generate_map() das Array $file_layout um dieses Feld erweitern und in den nachfolgenden PHP-Codes 'p_disc' mit dem neuen Feldnamen ersetzen.

einfach in die admin/includes/classes/import.php folgende Funktionen integrieren:

PHP-Code:
function checkSpecial($prod_id) {
        
$extra_query xtc_db_query("SELECT specials_id FROM ".TABLE_SPECIALS." WHERE products_id='".$prod_id."'");
        if (!
xtc_db_num_rows($extra_query))
            return 
false;
        return 
true;
    }

function 
insertSpecial(& $dataArray$products_id$mode 'insert') {
    
$special_array = array ('products_id' => $products_id'specials_last_modified' => date("Y-m-d H:i:s"));
    if (
$this->FileSheme['p_disc'] == 'Y' && $this->FileSheme['p_priceNoTax'] == 'Y') {
      
$new_price = ((100 $dataArray['p_disc']) / 100) * $dataArray['p_priceNoTax'];
      
$special_array array_merge($special_array, array ('specials_new_products_price' => $new_price));
    }
    
    if (
$mode == 'insert') {
      
xtc_db_perform(TABLE_SPECIALS$special_array);
    } else {
      
xtc_db_perform(TABLE_SPECIALS$special_array'update''products_id = \''.$products_id.'\'');
    }
  } 
und innerhalb der Funktion insertProduct() nach der Zeile:
PHP-Code:
if ($touchCat$this->insertCategory($dataArray$mode$products_id); 
folgende Zeilen einfügen:

PHP-Code:
        if ($this->FileSheme['p_disc'] == 'Y' && $dataArray['p_disc'] > 0) {
      if (
$this->checkSpecial($products_id)) $this->insertSpecial($dataArray$products_id'update');
          else 
$this->insertSpecial($dataArray$products_id);
        } 
sollte funktionieren in der Version: v3.0.4 SP2

Geändert von nerphunk (14.10.2008 um 14:07 Uhr)
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #5 (permalink)  
Alt 29.10.2008, 16:44
xt:Commerce Support Kunde
 
Registriert seit: 12.02.2008
Beiträge: 46
Standard

Hi! DANKE für den Workaround, ... klappt SUPER,

EINS noch: Wie kann ich dur CSV Import das Sonderangebot wieder RAUS NEHMEN?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #6 (permalink)  
Alt 01.11.2008, 12:41
xt:Commerce Support Kunde
 
Registriert seit: 19.07.2004
Beiträge: 5
Standard

Da müssten Sie dann eine Delete-Funktion einbauen und die folgende Anweisung innerhalb der insertProduct() modifizieren:
PHP-Code:
if ($this->FileSheme['p_disc'] == 'Y' && $dataArray['p_disc'] > 0) {
      if (
$this->checkSpecial($products_id)) $this->insertSpecial($dataArray$products_id'update');
          else 
$this->insertSpecial($dataArray$products_id);
        } elseif (
$this->FileSheme['p_disc'] == 'Y' && $dataArray['p_disc'] == && $this->checkSpecial($products_id)) $this->deleteSpecial($products_id); 
Im vorliegenden Fall wird, wenn der Wert von p_disc = 0 ist und es zu dem Produkt einen Sonderpreis-Eintrag gibt, dieser Eintrag gelöscht. Diese Funktion zum Löschen des Datensatzes müssten Sie ebenso noch integrieren:

PHP-Code:
function deleteSpecial($prod_id) {
    
$extra_query xtc_db_query("DELETE FROM ".TABLE_SPECIALS." WHERE products_id='".$prod_id."'");
        if (!
xtc_db_num_rows($extra_query))
            return 
false;
        return 
true;
    } 
Ich hab allerdings diese Version nicht getestet. Sollte aber funktionieren, solang sich keine Syntaxfehler eingeschlichen haben.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #7 (permalink)  
Alt 01.11.2008, 13:37
xt:Commerce Support Kunde
 
Registriert seit: 12.02.2008
Beiträge: 46
Standard

Das ist ja wirklich supernett von Ihnen!

Dankeschön, ich werde die Funktion bald einbauen und testen und hier Bescheid geben.

DANKESCHÖN für die Mühe!
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #8 (permalink)  
Alt 03.11.2008, 12:43
xt:Commerce Support Kunde
 
Registriert seit: 19.07.2004
Beiträge: 5
Standard

kein Problem, solange es funktioniert ;-) Hatte das Problem zeitgleich und grad die Lösung parat.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
csv, import, sonderangebote

Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus



Alle Zeitangaben in WEZ +1. Es ist jetzt 09:32 Uhr.

Copyright © 2011 xt:Commerce GmbH / xt:Commerce International Ltd. - All Rights Reserved

xt:Commerce is a SafeCharge brand