Jump to content
xt:Commerce Community Forum

Attribut mit Porzentaufschlag


top-service-limbach

Recommended Posts

Hallo alle zusammen,

ich hätte da eine Frage zu den Attributen.

Ich möchte folgendes bewektstelligen:

Statt einen festen Betrag aufzurechnen, soll ein Prozentaufschlag erfolgen.

Also sprich:

Produktpreis: 59 EURO

Aufschlag: 10 Prozent vom Produktpreis

Habe schon in der products_attributes.php probiert, aber irgendwie will da

nicht so richtig klappen.

Danke für jeden hlfreichen Hinweis.

Gruß

Andreas

Link to comment
Share on other sites

  • 3 months later...
  • 8 months later...

Hallo,

kurz was zum Problem, welches mich nun schon etwas länger ärgerlicherweise beschäftigte:

ich stelle gerade einen Shop für ein Einzelhandelsunternehmen auf, im Bereich Arbeitsschutz und Berufsbekleidung. Hierbei handelt es sich um einen Shop mit direkter Anbindung an Lexware (Financial Office Pro) durch die Schnittstelle LexShopXTC. Das Ziel ist es (natürlich) den Umgang mit Shop, ERP und Schnittstelle so einfach wie möglich zu realisieren, da die jetzigen Mitarbeiter mit dem System einwandfrei und vorallem reibungsfrei arbeiten können.

Bei den Anforderungen an das Shop System kam die Möglichkeit von Übergrößen-Aufschlägen hinzu. So dass einige Artikel bei verschiedenen Größen einen festen Übergrößenzuschlag erhalten (z.B. 5%). Damit dies nicht alles per Hand nach erfolgreichem Import aus Lexware heraus nachgearbeitet werden muss, muss es eine schnelle Möglichkeit geben, die Aufschläge-Attribute zu verteilen. Da i.d.R. die Übergrößen der meissten Artikel gleich sind (gleicher Aufschlag bei gleicher Größe) will ich das ganze über das vorhandene Artikelmerkmale Modul realiseren.

So genug Vorgeschichte, ich denke, man weiss, was gemeint ist.

Nach sehr langem Suchen und langsamen reinarbeiten in die XTC Thematik (wie funktioniert das eigendlich alles) habe ich folgenden Post gefunden, welcher sehr hilfreich war und für den ich mich an dieser Stelle nochmal bedanken muss. DANKE beo6!

http://www.xt-commerce.com/forum/admininterface/61882-attribut-page-ranking-fix-statt-und.html#post298699

Ich werde nun die Änderungen zeigen, die ich vorgenommen habe. Das ganze ist noch nicht 100% ausgereift, jedoch funktioniert es soweit, dass der Shop demnächst online gehen kann. Für Verbesserungen bin ich natuerlich offen (da meine praktischen PHP-Einsätze nun doch schon ein wenig her sind..)

Folgende Dateien müssen angepasst werden:

> /includes/classes/xtcPrice.php

Die Anweisungen:


if ($attribute_price_data['price_prefix'] == '+') {
$price = $price - $price / 100 * $discount;
} else {
$price *= -1;
}[/PHP]

habe ich wie folgt geändert:

[PHP]
if ($attribute_price_data['price_prefix'] == '+') {
$product_query = xtc_db_query("select products_id, products_price, products_discount_allowed, products_tax_class_id, products_weight from ".TABLE_PRODUCTS." where products_id='".$pID."'");
if ($product = xtc_db_fetch_array($product_query)) {
$products_price = $this->xtcGetPrice($product['products_id'], $format = false, $qty, $product['products_tax_class_id'], $product['products_price']);
$price = $price / 1.19;
$price = $products_price / 100 * $price;
}
} else {
$price *= -1;
}[/PHP]

Den Preis aus der Datenbank für das Produkt holen, die MwSt, welche auf den Prozenten liegt, einfach runterrechnen und den richtigen Betrag ausrechnen.

> /includes/modules/product_attributes.php

Die SQL Abfrage wie folgend bearbeiten:

[PHP]
$products_options_query = xtDBquery("select pov.products_options_values_id,
pov.products_options_values_name,
pa.attributes_model,
pa.options_values_price,
pa.price_prefix,
pa.attributes_stock,
pa.attributes_model,
p.products_price
from ".TABLE_PRODUCTS_ATTRIBUTES." pa,
".TABLE_PRODUCTS_OPTIONS_VALUES." pov,
".TABLE_PRODUCTS." p
where pa.products_id = '".$product->data['products_id']."'
and p.products_id = '".$product->data['products_id']."'
and pa.options_id = '".$products_options_name['products_options_id']."'
and pa.options_values_id = pov.products_options_values_id
and pov.language_id = '".(int) $_SESSION['languages_id']."'
order by pa.sortorder");
[/PHP]

hinzugefügt wurden der Preisabgleich in den Datenbanken mit folgenden Anweisungen:

[code]p.products_price[/CODE]
[CODE]".TABLE_PRODUCTS." p[/code]
[CODE]and p.products_id = '".$product->data['products_id']."'[/code]

Weiterhin folgende Zeile ändern:

[PHP]$price = $xtPrice->xtcFormat($products_options['options_values_price'], false, $product->data['products_tax_class_id']); [/PHP]

wie folgt ersetzen:

[PHP]
$price = $xtPrice->xtcFormat($products_options['options_values_price'], false);
$price = $products_price / 100 * $price;
[/PHP]

Das habe ich gemacht, weil ich den Preis zuordnen kann, um eine Richtige Anzeige bei der Produkt Info Seite zu erhalten, da dort sonst nur die Prozente + MwSt stehen. So steht nun der Aufschlag als Betrag incl. MwSt drin.

Da für den Shop, welchen ich einrichte, die normalen Aufpreise keine Rolle spielen, wurde am Prefix selbst nichts geändert. So dass man nun bei den Merkmalen die Prozente zuweisen kann.

Evtl werde ich mir das später nochmal genauer anschauen und verbessern.

Achja, XTC 3.0.4 SP 2.1 ist im Einsatz.

Gruß

Link to comment
Share on other sites

  • 5 months later...

Vielen Dank für die super Anleitung. Funktioniert einwandfrei.

Ich habe allerdings noch ein weiteres Problem. Im Moment werden die Prozente über den Grundpreis gerechnet. Gibt es auch eine Möglichkeit, verschiedene Attribute miteinander zu multiplizieren? Ich baue gerade an einem Bilderrahmenshop und dort gibt es mehrere Attribute, die verknüpft werden müssen. Als erstes gibt es einen prozentualen Aufpreis für die jeweilige Größe, was ja so schon geht. Wenn ich jetzt aber noch verschiedene Glassorten dazu nehme, dann sollte der Aufschlag ja nicht nur vom Grundpreis sondern im Zusammenhang mit dem Größenaufschlag berechnet werden.

Beispiel:

Grundpreis 7x10 Rahmen leer ohne Rückwand und Glas = 10€

Aufschlag zu 10x15 = 20%

Aufschlag Rückwand + Normalglas = 100%

ergibt also im Moment (10€ + 120%) : 10€ * 2,2 = 22€

Ich möchte aber die Berechnung wie folgt:

(10€ + 20%) + 100% : 10€ *1,2 * 2 = 24€

Geht sowas überhaupt? Danke im Voraus.

Gruss René

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...