UVP

moosi

Gut bekanntes Mitglied
6. März 2007
158
0
Hi,

leider bin ich auch mit der Suche im Forum nicht wirklich fündig geworden. Ich würde gerne die UVPs im Shop nutzen. Leider wird dies mit der JTL-Wawi nicht unterstützt.

Diese Funktion funktionierte scheinbar schon und wurde wieder deaktiviert, da es scheinbar zuviele Verwirrungen gab. Wie kann ich diese wieder aktivieren?

Danke für die Hilfe.

Gruß

Moosi
 

Marcel

Sehr aktives Mitglied
14. September 2006
7.153
5

moosi

Gut bekanntes Mitglied
6. März 2007
158
0
das wollte ich eigentlich umgehen. es handelt sich um einen produktiven shop mit ca. 4000 artikel. da macht dass dann nicht viel spaß.

sollte doch auch eine andere lösung geben. der uvp wird ja als solcher doch auch in der wawi gespeichert. warum diesen nicht als artikelpreis in xtc importieren?
 

Jan Schl.

Sehr aktives Mitglied
12. November 2006
4.337
4
Rendsburg, Hückelhoven
Weglassen ist der einzig vernünftige Ratschlag den man Dir geben kann.

1. Glaubt es eh kein Mensch was da steht
2. Sind Preisempfehlung die größten Garanten für Abmahnungen

und nun zurück zum Thema ... ;)
 

Marcel

Sehr aktives Mitglied
14. September 2006
7.153
5
Zitat von moosi:
sollte doch auch eine andere lösung geben.
Soviel ich weiß nicht mehr, nein.

Zitat von Thomas Lisson:
der UVP wird weiterhin zum Connector übertragen, aber nicht mehr genutzt / nirgends abgelegt.

Wir hatten dadurch, dass XTC nicht explizit und nur sehr umständlich den UVP unterstützt, diese Funktionalität wieder herausgenommen, da sie zu sehr verwirrt hat.
 

moosi

Gut bekanntes Mitglied
6. März 2007
158
0
der UVP muß zwingend drinnen stehen. Mein Kunde hat den Exclusivvertrieb für eine Produktmarke. Daher will er auf jeden Fall den UVP drinnen lassen.

Wie könnte man den Connector dementsprechend umstricken, dass der UVP übernommen wird. Vorhanden ist er ja. Ich habe nur leider keine Ahnung wo ich hier anfangen soll.
 

Marcel

Sehr aktives Mitglied
14. September 2006
7.153
5
Da fragst du den falschen, ich bin froh wenn ich mit XTC so wenig wie möglich am Hut habe :wink:

Andreas ist in dem Bereich eigentlich ganz fit und verwendet selbst auch XTC. Und sicher auch der ein oder andere User. Ansonsten vielleicht mal auf eine Antwort von Thomas oder Janusch warten, sorry.
 

Andreas Grambow

Sehr aktives Mitglied
Also du brauchst den Connector nicht umzustricken, da dieses in Zukunft (Updates etc,) nur probleme bringt.

das Problem ist der XTC Shop, welcher direkt keine UVP unterstützt, sondern diese halt mit den Staffelpreisen löst. daher ist auch der Weg über die Staffelpreise der richtige.
Wie es geht, hat Marcel etwas weiter oben schon geschrieben.

PS. Auch bei Exklusivvertrieb sollte man mit den UVP vorsichtig sein. Dabei geht es nicht mal darum, das die UVP´s richtig sind. da gibt es viel zu beachten. gib mir mal die URl vom Shop mit dem Direktvertrieb. ich schaue dann gerne mal drauf, ob ich den am häufigsten gemachten fehler finde (und der kostet oft glein in die 1000de)
 

Thomas Lisson

Administrator
Mitarbeiter
24. März 2006
15.574
299
Köln
Hi,

Das Problem ist, dass XTC die UVP nicht direkt kann.
Z.B. muss für alle Kundengruppen ein Preis egsetzt werden und der Artikelpreis < dem jeweiligen Kundengruppenpreis sein, damit jede Kundengruppe den durchgestrichenen UVP sieht.

Dein Problem liesse sich nur dann lösen, wenn Du
- mit Kundengruppenpreisen arbeitest für jede Kundengruppe (auch Gast)
- den Connector ein wenig umbaust, damit der UVP als Artikelpreis eingetragen wird.

Beim Umbau können wir helfen - jedoch sind beide Dinge Voraussetzung für den Einsatz von UVP in XTC.
 

moosi

Gut bekanntes Mitglied
6. März 2007
158
0
mit der 995 funktioniert es leider nicht mehr.

es sind nur die "standart" kunden drinnen.

Der Connector müßte bei uns dann folgende Preise in den Shop übertragen (natürlich auch umgekehrt)
Artikelpreis (UVP)
Gast (normaler VK)
Neuer Kunde (normaler VK)
Händler (Händlerpreis)

Preis bei Gast und Neuer Kunde ist im Shop identisch angelegt.

Die rechtliche Seite mit UVP ist bekannt.
 

moosi

Gut bekanntes Mitglied
6. März 2007
158
0
im Prinzip müßte im connector hier doch nur diese passage angepasst werden ("Connector-Pfad"/dbeS/Artikel.php):

function insertPreise($products_id)
{
$personalOfferTable = "personal_offers_by_customers_status_";
$endKunden_arr = explode(";",$GLOBALS['einstellungen']->mappingEndkunde);
foreach ($endKunden_arr as $customers_status_id)
{
if ($customers_status_id>=0 && strlen($customers_status_id)>0)
{
$table = $personalOfferTable.$customers_status_id;
eS_execute_query("delete from $table where products_id=".$products_id);
eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,1,".floatval($_POST["ArtikelVKNetto"]).")");
if (intval($_POST["PAnz1"])>0)
eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,".intval($_POST["PAnz1"]).",".floatval($_POST["PPreis1"]).")");
if (intval($_POST["PAnz2"])>0)
eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,".intval($_POST["PAnz2"]).",".floatval($_POST["PPreis2"]).")");
if (intval($_POST["PAnz3"])>0)
eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,".intval($_POST["PAnz3"]).",".floatval($_POST["PPreis3"]).")");
if (intval($_POST["PAnz4"])>0)
eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,".intval($_POST["PAnz4"]).",".floatval($_POST["PPreis4"]).")");
if (intval($_POST["PAnz5"])>0)
eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,".intval($_POST["PAnz5"]).",".floatval($_POST["PPreis5"]).")");
}

dort müßte abgeändert werden:
JTL UVP in XTC Artikelpreis (wenn kein JTL UVP vorhanden dann JTL Endkundenpreis eintragen)
JTL Endkundenpreis in XTC Gast Preis und XTC Neuer Kunde Preis
JTL Händlerpreis in XTC Händler Preis

Evtl. hat einer eine Idee.

Wäre für mich extrem wichtig, da sonst der Connector und die Wawi leider nicht genutzt werden kann.
 

Thomas Lisson

Administrator
Mitarbeiter
24. März 2006
15.574
299
Köln
Hi Moosi,

so:

Code:
<?php
/**
 * jtlwawi_connector/dbeS/Artikel.php
 * Synchronisationsscript
 * 
 * Es gelten die Nutzungs- und Lizenzhinweise unter [url]http://www.jtl-software.de/jtlwawi.php[/url]
 * 
 * @author JTL-Software <thomas@jtl-software.de>
 * @copyright 2006, JTL-Software
 * @link [url]http://jtl-software.de/jtlwawi.php[/url]
 * @version v1.12 / 13.03.07
*/

require_once("syncinclude.php");

$return=3;
if (auth())
{
	if (intval($_POST["action"]) == 1 && intval($_POST['KeyArtikel']))
	{
		$return = 0;
		//hole einstellungen
		$cur_query = eS_execute_query("select * from eazysales_einstellungen");
		$einstellungen = mysql_fetch_object($cur_query);
		
		$artikel->kArtikel = realEscape($_POST["KeyArtikel"]);
		$artikel->cArtNr = realEscape($_POST["ArtikelNo"]);
		$artikel->cName = realEscape($_POST["ArtikelName"]);
		$artikel->cBeschreibung = realEscape($_POST["ArtikelBeschreibung"]);
		$artikel->fVKBrutto = realEscape($_POST["ArtikelVKBrutto"]);
		$artikel->fVKNetto = realEscape($_POST["ArtikelVKNetto"]);
		$artikel->fMwSt = realEscape($_POST["ArtikelMwSt"]);
		$artikel->cAnmerkung = realEscape($_POST["ArtikelAnmerkung"]);
		$artikel->nLagerbestand = max(realEscape($_POST["ArtikelLagerbestand"]),0);
		$artikel->cEinheit = realEscape($_POST["ArtikelEinheit"]);
		$artikel->nMindestbestellmaenge = realEscape($_POST["ArtikelMindBestell"]);
		$artikel->cBarcode = realEscape($_POST["ArtikelBarcode"]);
		$artikel->fVKHaendlerBrutto = realEscape($_POST["ArtikelVKHaendlerBrutto"]);
		$artikel->fVKHaendlerNetto = realEscape($_POST["ArtikelVKHaendlerNetto"]);
		$artikel->cTopArtikel = realEscape($_POST["TopAngebot"]);
		$artikel->fGewicht = realEscape($_POST["Gewicht"]);
		$artikel->cNeu = realEscape($_POST["Neu"]);
		$artikel->cKurzBeschreibung = realEscape($_POST["ArtikelKurzBeschreibung"]);
		$artikel->fUVP = realEscape($_POST["ArtikelUVP"]);
		$artikel->cHersteller = realEscape($_POST["Hersteller"]);
		
		if ($artikel->fUVP>0)	
			$artikel->fVKNetto=$artikel->fUVP;
			
		$startseite=0;
		if ($artikel->cTopArtikel=="Y")
			$startseite=1;
		$shipping_status=0;
		if ($GLOBALS['einstellungen']->shipping_status_id>0)
			$shipping_status=$GLOBALS['einstellungen']->shipping_status_id;
			
		//existiert products_startpage in products?
		$products_startpage_exists = false;
		$result = mysql_query("SHOW COLUMNS FROM products");
		if (mysql_num_rows($result) > 0) {
			while ($row = mysql_fetch_object($result)) 
			{
				if ($row->Field == 'products_startpage')
					$products_startpage_exists = true;
			}
		}
			
		//update oder insert?
		$products_id = getFremdArtikel($artikel->kArtikel);
		if ($products_id>0)
		{
			//update

			//attribute löschen
			eS_execute_query("delete from products_attributes where products_id=".$products_id);
			//KategorieArtikel löschen
			eS_execute_query("delete from products_to_categories where products_id=".$products_id);
			
			//evtl. andere MwSt?
			$products_tax_class_id = holeSteuerId($artikel->fMwSt);
			//evtl. neuer Hersteller?
			$manufacturers_id = holeHerstellerId($artikel->cHersteller);
			//update products
			$products_statpage_piece="";
			if ($products_startpage_exists)
				$products_statpage_piece ="products_startpage=$startseite,";
			eS_execute_query("update products set products_fsk18=0, products_shippingtime=$shipping_status, ".$products_statpage_piece." products_model=\"$artikel->cArtNr\", products_price=\"".$artikel->fVKNetto."\", products_tax_class_id=\"$products_tax_class_id\", products_quantity=\"$artikel->nLagerbestand\", products_ean=\"$artikel->cBarcode\", products_weight=\"$artikel->fGewicht\", manufacturers_id=\"$manufacturers_id\", products_status=1, products_last_modified=now(), product_template=\"".$einstellungen->prod_product_template."\", options_template=\"".$einstellungen->prod_options_template."\" where products_id=".$products_id);
			//update products_description
			eS_execute_query("update products_description set products_name=\"$artikel->cName\", products_description=\"$artikel->cBeschreibung\", products_short_description=\"$artikel->cKurzBeschreibung\", products_keywords=\"\", products_meta_title=\"\", products_meta_description=\"\", products_meta_keywords=\"\", products_url=\"\" where products_id=".$products_id." and language_id=".$einstellungen->languages_id);
			//kundengrp preise
			insertPreise($products_id);
		}
		else 
		{
			//insert
			//hole Mwst classId
			$products_tax_class_id = holeSteuerId($artikel->fMwSt);
			//setze Hersteller, falls es ihn noch nicht gibt
			$manufacturers_id = holeHerstellerId($artikel->cHersteller);	
			
			$products_statpage_piece="";
			$products_statpage_piece_value="";
			if ($products_startpage_exists)
			{
				$products_statpage_piece ="products_startpage,";
				$products_statpage_piece_value=$startseite.",";
			}
				
			eS_execute_query("insert into products (products_shippingtime, $products_statpage_piece products_model, products_price, products_tax_class_id, products_quantity, products_ean, products_weight, manufacturers_id, product_template, options_template, products_status, products_date_added) values ($shipping_status,".$products_statpage_piece_value."\"".$artikel->cArtNr."\",".$artikel->fVKNetto.",$products_tax_class_id,$artikel->nLagerbestand,\"".$artikel->cBarcode."\",$artikel->fGewicht,$manufacturers_id,\"".$einstellungen->prod_product_template."\",\"".$einstellungen->prod_options_template."\",1,now())");
			//hole id
			$query = eS_execute_query("select LAST_INSERT_ID()");
			$products_id_arr = mysql_fetch_row($query);
			if ($products_id_arr[0]>0)
			{
				//müssen Preise in spezielle tabellen?
				$products_id=$products_id_arr[0];
				insertPreise($products_id_arr[0]);
				eS_execute_query("insert into products_description (products_id, products_name, products_description, products_short_description, language_id) values (".$products_id_arr[0].",\"".$artikel->cName."\", \"".$artikel->cBeschreibung."\", \"".$artikel->cKurzBeschreibung."\", $einstellungen->languages_id)");
				setMappingArtikel($artikel->kArtikel,$products_id_arr[0]);
				
				//erstelle leere description für alle anderen Sprachen
				$sonstigeSprachen = getSonstigeSprachen($einstellungen->languages_id);
				if (is_array($sonstigeSprachen))
				{
					foreach ($sonstigeSprachen as $sonstigeSprache)
					{
						//eS_execute_query("insert into products_description (products_id, products_name, language_id) values (".$products_id_arr[0].",\"".$artikel->cName."\", $sonstigeSprache)");
						eS_execute_query("insert into products_description (products_id, products_name, products_description, products_short_description, language_id) values (".$products_id_arr[0].",\"".$artikel->cName."\", \"".$artikel->cBeschreibung."\", \"".$artikel->cKurzBeschreibung."\", $sonstigeSprache)");
					}
				}
			}
			else 
			{
				//Fehler aufgetreten
				$return=1;
			}
		}
		
		if ($products_id>0)
		{
			//setze Kundengruppenerlaubnis für alle gruppen
			//Attribute.php bearbeitet Ausnahmen der Kundengruppenerlaubnis
			setzeKundengruppenerlaubnis("", $products_id);
			
			//VPE
			$products_vpe_id=0;
			//gibt es schon so einen products_vpe?
			$cur_query = eS_execute_query("select products_vpe_id from products_vpe where language_id=".$einstellungen->languages_id." and  products_vpe_name=\"".$artikel->cEinheit."\"");
			$products_vpe_id_arr = mysql_fetch_row($cur_query);
			if ($products_vpe_id_arr[0]>0)
			{
				$products_vpe_id=$products_vpe_id_arr[0];
			}
			else 
			{
				//füge neuen Shippingstatus ein
				$cur_query = eS_execute_query("select max(products_vpe_id) from products_vpe");
				$max_shipping_products_vpe_arr = mysql_fetch_row($cur_query);
				$products_vpe_id = $max_shipping_products_vpe_arr[0]+1;
				eS_execute_query("insert into products_vpe (products_vpe_id, language_id, products_vpe_name) values ($products_vpe_id, $einstellungen->languages_id, \"$artikel->cEinheit\")");
			}
			eS_execute_query("update products set products_vpe=".$products_vpe_id." where products_id=".$products_id);
			
			//erstelle Dummy für Sonderpreise, falls es keinen Sonderpreis für diesen Artikel gibt
			$spe_query = eS_execute_query("select specials_id from specials where products_id=".$products_id);
			$special_obj = mysql_fetch_object($spe_query);
			if (!$special_obj->specials_id)
			{
				eS_execute_query("insert into specials (products_id, status) values ($products_id,0)");
			}
		}
 	}
	else
		$return=5;

	if (intval($_POST["action"]) == 3 && intval($_POST['KeyArtikel']))
	{
		$products_id = getFremdArtikel(intval($_POST['KeyArtikel']));
		if ($products_id>0)
			eS_execute_query("update products set products_status=0 where products_id=".$products_id);
		$return = 0;
	}
}

mysql_close();
echo($return);
logge($return);

function insertPreise($products_id)
{
	$personalOfferTable = "personal_offers_by_customers_status_";
	$endKunden_arr = explode(";",$GLOBALS['einstellungen']->mappingEndkunde);
	foreach ($endKunden_arr as $customers_status_id)
	{
		if ($customers_status_id>=0 && strlen($customers_status_id)>0)
		{
			$table = $personalOfferTable.$customers_status_id;
			eS_execute_query("delete from $table where products_id=".$products_id);
			eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,1,".floatval($_POST["ArtikelVKNetto"]).")");
			if (intval($_POST["PAnz1"])>0)
				eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,".intval($_POST["PAnz1"]).",".floatval($_POST["PPreis1"]).")");
			if (intval($_POST["PAnz2"])>0)
				eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,".intval($_POST["PAnz2"]).",".floatval($_POST["PPreis2"]).")");
			if (intval($_POST["PAnz3"])>0)
				eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,".intval($_POST["PAnz3"]).",".floatval($_POST["PPreis3"]).")");
			if (intval($_POST["PAnz4"])>0)
				eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,".intval($_POST["PAnz4"]).",".floatval($_POST["PPreis4"]).")");
			if (intval($_POST["PAnz5"])>0)
				eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,".intval($_POST["PAnz5"]).",".floatval($_POST["PPreis5"]).")");
		}
	}
	$haendlerKunden_arr = explode(";",$GLOBALS['einstellungen']->mappingHaendlerkunde);
	foreach ($haendlerKunden_arr as $customers_status_id)
	{
		if ($customers_status_id>=0 && strlen($customers_status_id)>0)
		{
			$table = $personalOfferTable.$customers_status_id;
			eS_execute_query("delete from $table where products_id=".$products_id);
			eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,1,".floatval($_POST["ArtikelVKHaendlerNetto"]).")");
			if (intval($_POST["HAnz1"])>0)
				eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,".intval($_POST["HAnz1"]).",".floatval($_POST["HPreis1"]).")");
			if (intval($_POST["HAnz2"])>0)
				eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,".intval($_POST["HAnz2"]).",".floatval($_POST["HPreis2"]).")");
			if (intval($_POST["HAnz3"])>0)
				eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,".intval($_POST["HAnz3"]).",".floatval($_POST["HPreis3"]).")");
			if (intval($_POST["HAnz4"])>0)
				eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,".intval($_POST["HAnz4"]).",".floatval($_POST["HPreis4"]).")");
			if (intval($_POST["HAnz5"])>0)
				eS_execute_query("insert into $table (products_id, quantity, personal_offer) values ($products_id,".intval($_POST["HAnz5"]).",".floatval($_POST["HPreis5"]).")");
		}
	}
}

function holeHerstellerId($cHersteller)
{
	if (strlen($cHersteller)>0)
	{
		//ex. dieser Hersteller?
		$cur_query = eS_execute_query("select manufacturers_id from manufacturers where manufacturers_name=\"".$cHersteller."\"");
		$manu = mysql_fetch_object($cur_query);
		if ($manu->manufacturers_id>0)
			return $manu->manufacturers_id;
		else 
		{
			//erstelle diesen Hersteller
			eS_execute_query("insert into manufacturers (manufacturers_name, date_added) values (\"".$cHersteller."\", now())");
			$query = eS_execute_query("select LAST_INSERT_ID()");
			$manu_id_arr = mysql_fetch_row($query);
			eS_execute_query("insert into manufacturers_info (manufacturers_id, languages_id) values (".$manu_id_arr[0].", ".$GLOBALS['einstellungen']->languages_id.")");
			return $manu_id_arr[0];
		}
	}
	return 0;
}

function holeSteuerId($MwSt)
{
	//existiert so ein Steuersatz ?
	$cur_query = eS_execute_query("select tax_class_id from tax_rates where tax_zone_id=".$GLOBALS['einstellungen']->tax_zone_id." and tax_rate=".$MwSt);
	$tax = mysql_fetch_object($cur_query);
	if ($tax->tax_class_id>0)
		return $tax->tax_class_id;
	else 
	{
		//erstelle klasse
		eS_execute_query("insert into tax_class (tax_class_title, date_added) values (\"JTL-Wawi Steuerklasse ".$MwSt."%\", now())");
		$query = eS_execute_query("select LAST_INSERT_ID()");
		$tax_class_id_arr = mysql_fetch_row($query);
		//füge diesen Steuersatz ein
		eS_execute_query("insert into tax_rates (tax_zone_id, tax_class_id, tax_priority, tax_rate, date_added) values (".$GLOBALS['einstellungen']->tax_zone_id.",".$tax_class_id_arr[0].", ".$GLOBALS['einstellungen']->tax_priority.", ".$MwSt.", now())");
		return $tax_class_id_arr[0];
	}
}


?>

Hinzugekommen ist nur in Zeile 47 das hier:
Code:
		if ($artikel->fUVP>0)	
			$artikel->fVKNetto=$artikel->fUVP;

Wichtig:
Jede Kundengruppe muss einen Mappinghaken im Connectr haben, damit zumindest die Preise explizit ür diese Kudengruppen angelegt werden.

UVP wird nur dann als Standardpreis eingetragen, wenn > 0. Ansonsten Endkundenpreis.
 
Ähnliche Themen

Ähnliche Themen