Shop Support News Archive - Shopbetreiber News -> Forum : xt eCommerce Templates Module SEO Support: - Grundpreis Bei Attributen
Hallo
Ich beziehe mich hier auf diesen Thread und würde gerne wissen, ob es möglich ist hier auch die Grundpreise mit anzeigen zu lassen.
Hier erst einmal der Link:
Klick (http://www.ecombase.de/forum/index.php?showtopic=5115&hl=)
Und warum das ganze?
Ich habe Artikel mit unterschiedlichen Gebindegrößen. Hier ist die Angabe des Grundpreises erforderlich und rechtlich gefordert. Leider erscheint bei den Attributen der Grundpreis nicht.
Ich hatte das mal so in der "products_options_dropdown.html" versucht, bekam aber nur eine Fehlermeldung:
''>ZITAT</div><select name="id[{$options_data.ID}]">
{foreach key=key_data item=item_data from=$options_data.DATA}
<option value="{$item_data.ID}">{$item_data.TEXT} {if $item_data.PRICE !='' }{$item_data.PREFIX} {$item_data.PRICE} = {$item_data.FULL_PRICE}{/if} {if $PRODUCTS_VPE}{$PRODUCTS_VPE}
</option>[/b]
Wie kann man das lösen?
Würde mich diesmal wirklich freuen wenn mal einer antworten würde.
''>ZITAT(Aircalvus @ Aug 26 2007, 9:52) 31673
Hallo
Ich beziehe mich hier auf diesen Thread und würde gerne wissen, ob es möglich ist hier auch die Grundpreise mit anzeigen zu lassen.
Hier erst einmal der Link:
Klick (http://www.ecombase.de/forum/index.php?showtopic=5115&hl=)
Und warum das ganze?
Ich habe Artikel mit unterschiedlichen Gebindegrößen. Hier ist die Angabe des Grundpreises erforderlich und rechtlich gefordert. Leider erscheint bei den Attributen der Grundpreis nicht.
Ich hatte das mal so in der "products_options_dropdown.html" versucht, bekam aber nur eine Fehlermeldung:
Wie kann man das lösen?
Würde mich diesmal wirklich freuen wenn mal einer antworten würde.
[/b]
Währe toll, wenn Du auch die Fehlermeldung posten würdest.
Ansonsten, sieht es so aus, als bo Du das {if} von VPE nich geschlossen hast.
Hi
Erst mal Danke das Du geantwortet hast.
Ja Du hast recht, habe das gerade nochmal so mit geschlossener if Abfrage eingebaut:
''>ZITAT</div><select name="id[{$options_data.ID}]">
{foreach key=key_data item=item_data from=$options_data.DATA}
<option value="{$item_data.ID}">{$item_data.TEXT} {if $item_data.PRICE !='' }{$item_data.PREFIX} {$item_data.PRICE} = {$item_data.FULL_PRICE}{/if} {if $PRODUCTS_VPE}{$PRODUCTS_VPE}{/if}
</option>[/b]
Jetzt ist die Fehlermeldung weg, aber der Grundpreis wird in dem Dropdownmenü trotzdem nicht angezeigt.
<select name="id[{$options_data.ID}]">
{foreach key=key_data item=item_data from=$options_data.DATA}
<option value="{$item_data.ID}">{$item_data.TEXT} {$item_data.PREFIX} {$item_data.PRICE} = {$item_data.FULL_PRICE} {if $PRODUCTS_VPE}{$PRODUCTS_VPE}{/if}
</option>
Versuch es mal so. Du hattest noch eine Abfrage drinn, ob der Preis für das Attribut anders ist.
Hallo
Funktioniert leider nicht.
Die Abfrage war ja schon eine Änderung, damit dort nicht nur +PreisXY, sondern direkt auch der Gesamtpreis in dem Dropdownfeld steht.
Hier nochmal der Link dazu:
http://www.ecombase.de/forum/index.php?sho...ic=5115&hl= (http://www.ecombase.de/forum/index.php?showtopic=5115&hl=)
Leider eben ohne den sich ändernden Grundpreis bei verschiedenen Gebindegrößen und unterschiedlichen Preisen, wie es sonst im Template (Grundpreis 20,00€ pro 1 KG) durch die Platzhalter {if $PRODUCTS_VPE}{$PRODUCTS_VPE}{/if} erscheint.
Ich habe mir jetzt anders geholfen, den Grundpreis für die unterschiedlichen Gebindegrößen
von Hand ausgerechnet und in die Produktbeschreibung eingefügt.
Nnicht die tollste Lösung, aber besser als ne Abmahnung wegen fehlendem Grundpreis zu riskieren.
Vielen Dank für Deine Hilfe.
Hallo
Ich hole das hier noch einmal hoch, da ich langsam glaube, das die Fragestellung nach Grundpreisen bei Attributen von den meisten nur nicht verstanden wird, da sie auf Grund der Art Ihrer angebotenen Ware
das nicht brauchen.
Der Gesetzgeber schreibt nun mal Grundpreise vor und es ist für den Kunden äußerst unübersnichtlich wenn er ein Produkt im Shop gleich zb. 5 mal untereinander sieht nur eben mit anderen Füllmengen.
Die Darstellung ist bis jetzt aber notwendig, weil sonst die Grundpreise nicht angegeben werden können.
Aus diesem Grund der Gedanke (zu lesen auch in anderen Threads hier) 1 Produkt mit Attributen anlegen um eben nur 1 Produkt im Shop stehen zu haben aus dem der Kunden dann ganz bequem die für sich passende Größe auswählen kann.
Das geht aber nur, wenn es möglich ist sich am Preis, auch den Grundpreis der jeweiligen Gebindegröße anzeigen zu lassen.
Ich habe deshalb mal zwei Grafiken angehängt um das zu demonstrieren. Bei der Grafik mit dem Grundpreis, habe ich der Einfachheit halber zwei Gebindegrößen durch die Grundpreise ersetzt.
So sieht es normalerweise aus:
[attachmentid=1565]
Und so sollte das aussehen:
[attachmentid=1566]
Was mich wundert ist, das es fertige Module für alles mögliche rund um die Preisanzeige per Attribut gibt, nur keines mit einer Grundpreisberechnung.
Sollte das Programmiermäßig nicht machbar sein, wäre das auch OK, nur wissen müsste man das als Laie dann halt.
Danke jedem der sich der Sache (auch mit einer konstruktiven Aussage) mal annimmt.
CoryDiddi
20.11.2007, 11:35
Hallo an alle User,
ich bin neu hier im Forum angemeldet, verfolge aber alles schon über längere Zeit.
Das Thema, welches von Aircalvus heir aufgegriffen und mehrfach hinterfragt wurde, interessiert mich auch brennend.
Kann denn niemand sagen, ob es möglich ist, mit Attributen zu arbeiten und den Grundpreis bei verschiedenen Gebindegrößen automatisch rechnen und anzeigen zu lassen? Damit wäre doch wahrscheinlich sehr vielen Shopbetreibern gedient, die mit unterschiedlichen Gebindegrößen zu tun haben und die dem Gesetzgeber entsprechen möchten (ob das Gesetz nötig ist, wäre ja eine ganz andere Frage).
Wir unterziehen unseren Shop einer ständigen Überprüfung durch einen Rechtsanwalt. Und der sagt ganz klar, das die Grundpreisangabe bei jedem relevanten Artikel vorgeschrieben ist und die Anzeige des Grundpreises in räumlicher Nähe des Endpreises zu erfolgen hat.
Ich bin kein PC-Fachmann oder Programmierer. Aber ich kann mir vorstellen, das der Wunsch von Aircalvus und uns doch technisch lösbar sein muß, und sei es durch einen Programmierer.
Über eine Hilfe zu diesem Thema wäre ich sehr erfreut.
Gruß an alle!
''>ZITAT(Aircalvus @ Nov 12 2007, 15:21) 37007
Hallo
Ich hole das hier noch einmal hoch, da ich langsam glaube, das die Fragestellung nach Grundpreisen bei Attributen von den meisten nur nicht verstanden wird, da sie auf Grund der Art Ihrer angebotenen Ware
das nicht brauchen.
Der Gesetzgeber schreibt nun mal Grundpreise vor und es ist für den Kunden äußerst unübersnichtlich wenn er ein Produkt im Shop gleich zb. 5 mal untereinander sieht nur eben mit anderen Füllmengen.
Die Darstellung ist bis jetzt aber notwendig, weil sonst die Grundpreise nicht angegeben werden können.
Aus diesem Grund der Gedanke (zu lesen auch in anderen Threads hier) 1 Produkt mit Attributen anlegen um eben nur 1 Produkt im Shop stehen zu haben aus dem der Kunden dann ganz bequem die für sich passende Größe auswählen kann.
Das geht aber nur, wenn es möglich ist sich am Preis, auch den Grundpreis der jeweiligen Gebindegröße anzeigen zu lassen.
Ich habe deshalb mal zwei Grafiken angehängt um das zu demonstrieren. Bei der Grafik mit dem Grundpreis, habe ich der Einfachheit halber zwei Gebindegrößen durch die Grundpreise ersetzt.
So sieht es normalerweise aus:
[attachmentid=1565]
Und so sollte das aussehen:
[attachmentid=1566]
Was mich wundert ist, das es fertige Module für alles mögliche rund um die Preisanzeige per Attribut gibt, nur keines mit einer Grundpreisberechnung.
Sollte das Programmiermäßig nicht machbar sein, wäre das auch OK, nur wissen müsste man das als Laie dann halt.
Danke jedem der sich der Sache (auch mit einer konstruktiven Aussage) mal annimmt.
[/b]
Hallo DM1953
Schön das es noch jemanden mit dem selben Problem gibt.
Ich selber habe es allerdings eigentlich aufgegeben hier noch eine Lösung zu bekommen.
Was mit wundert ist, das alle hier im Forum vorhandenen Programmierer (also die, die uns erzählen könnten wie es geht) sich das hier schon angeschaut
haben, aber niemand (und wenn es ein "Das geht nicht weil" wäre) dazu mal was schreibt.
Was mich noch mehr wundert ist, das die hier versammelten Dienstleister wohl auch nichts verdienen wollen
(so fern das was ist was extra programmiert werden müßte), da sich (zumindest bei mir auch nicht per PN)
auch hier noch nicht mal jemand zu Wort gemeldet hat.
Was ich mir noch denken kann ist, das hier einfach das Wort "Grundpreis" falsch interpretiert wird.
Auf der mittlerweile langen Suche nach einer Lösung über Google, habe ich in verschiedenen OSC Foren
auch immer wieder das Wort Grundpreis gelesen. Hier war aber einfach der niedrigste Preis gemeint
auf den sich der Rest dann aufbaut.
Hier habe ich allerdings gedacht das Durch die von mir eingefügten Grafiken der Unterschied klar wird
bzw. das was gemeint ist. Da würde ich die Zurückhaltung dann nocht verstehen, weil es schon tausendmal erklärt wurde.
Aber, nein, es geht nicht darum sondern um die Grundpreisreglung (http://anonym.to/?http://bundesrecht.juris.de/pangv/BJNR105800985BJNE001105377.html)
Und um das nochmal zu erklären, ich habe einen Artikel sagen wir Farbe weiss in den Gebinden
500ml, 1Liter, 5 Liter, 10 Liter
Um das Produkt jetzt nicht 5 mal einzeln anzulegen behilft man sich ja der Möglichkeit das über die Artikelattribute zu machen, so das nur ein Artikel da steht aus dem man dann die unterschiedlichen Gebinde
auswählen kann.
So und da müßte dann (wie oben an den Grafiken zu sehen) an jedem Preis der Grundpreiss
angegeben werde, das natürlich automatisch berechnet werden.
Die Berechnung erfolgt so:
1000 x Preis des Gebindes / Gewnicht des Gebindes.
Also wenn da jetzt keiner eine Lösung weiss, dann suchen wir uns gemeinschaftlich einen rnichtigen Programmierer. :rolleyes:
CoryDiddi
21.11.2007, 11:39
Hallo Aircalvus,
warum die Grundpreisangabe so wnichtig ist, müsste doch eigentlich klar sein.
Und auch der Darstellungswunsch in Zusammenhang mit den Artikelattributen war doch m.E. deutlich dargestellt.
Warum sich dazu bisher niemand geäußert hat, der viellenicht helfen könnte, kann ich auch nicht verstehen.
Wenn wir hier keine Hilfe bekommen, wäre die Idee, die Sache einem Programmierer zu übergeben, gar nicht schlecht.
Ich könnte mir aber vorstellen, das in diesem Forum Menschen lesen, die uns helfen könnten.
Na ja, warten wir es ab. Ich bin nur froh, das ich nicht alleine mit diesem Problem darstehe!
In diesem Sinne wünsche ich uns gegenseitig Erfolg!
Gruß,
DM1953 :rolleyes:
So direkt gibt's dafür in xt:C auch keine Möglichkeit ...Ich hab ein bisschen Tricksen müssen ... Beispiel: zunächst eine VPE namens "1.000 ml" eingrnichten ... Den Haupt-Artikel dann so anlegen:
[attachmentid=1597]
Wnichtig dabei ist, dass "VPE"-Anzeigen aktiviert und der Haupt-Artikel "null mal die VPE" ist ...
Die weiteren Berechnungen - Problematisch ... Denn in den Attributen gibt's ja kein VPE-Eingabefeld ... Ich hab stattdessen einfach (Quick-and-Dirty) das Gewnicht genommen.
[attachmentid=1598]
... was in meinem Fall auch ganz gut hinkommt, ein Liter des Produktes wiegt auch in etwa ein Kilo. Ist aber keine 100pro saubere Lösung, klappt jedoch auch bei weniger passenden Einheiten ganz gut, weil die Versandkosten in diesem Shop ohnehin nicht gewnichtsabhängig berechnet werden
[attachmentid=1596]
Nur wie gesagt: Eigentlich ist es nicht ganz korrekt, die VPEs über die "Gewnichts-Prefixe" zu berechnen. Deshalb schreib ich jetzt auch lieber keine ausführliche Anleitung ... Ne saubere Lösung wäre ein "VPE-Multiplikator"-Eingabefeld wie beim Haupt-Artikel ...
Hallo pufaxx
Erst einmal vielen Dank für die Antwort und den Lösungsansatz.
Es ist eigentlich verwunderlich das der Shop respektive Script hier nicht als Standard den gesetzlichen Anforderungen genügt. Das hätte zumindest in der letzten Version so sein müssen, da es die Pflnicht der Angabe des Grundpreises bei unterschiedlichen Gebinden da schon gab.
Den von Dir aufgezeigten Lösungsansatz werde ich in einem Testumfeld mal durchspielen.
Grundsätzlich würde er passen, da ich auch keine Gewnichte für die Versandberechnung benötige.
CoryDiddi
21.11.2007, 20:11
Hallo pufaxx, Hallo Aircalvus!
Toll, das eine Reaktion kommt, danke dafür!!!! :D
Ich persönlich wäre bei so einem Ansatz aber etwas skeptisch.
Die heutige Rechtslandschaft ist ja leider sehr penibel und abmahnwütig. Wenn jemand auf die Idee kommt, einen Artikel zu kaufen und den Grundpreis nachzuvollziehen, indem er das Teil zum Beispiel wiegt, können wir in Teufels Küche kommen.
Eine rnichtig programmierte Lösung wäre wohl das einzig Rnichtige.
Gruß,
DM1983
Hallo zusammen,
ich glaube, das es das sein dürfte was ihr sucht.
Hier (http://anonym.to/?http://www.oscommerce.com/community/contributions,2737/category,all/search,grundpreis)
Leider habe ich es nicht so von osc zu xtc umschreiben, aber viellenicht findet sich hier noch jemand.
Oder Hier (http://anonym.to/?http://www.xt-commerce.com/forum/showthread.php?t=30464&highlight=Grundpreis), gibt es das für die V2
Gruß
Pommes
So, ich habe mich mal dran gemacht auf eigener Faust es zu machen.
Ich habe ein neues Attributfeld angelegt und ihn auch soweit bekommen, das er es in die Datenbank einliest, nur mit dem auslesen und Ausgabe klappt es einfach nicht.
Habe hier mal die einzelnen von mir veränderten Dateien aufgeführt, viellenicht weiß jemand weiter.
Neue Zeilen von mir fangen mit //Neu an und enden mit //Neu Ende
In der Datenbank ein Feld namens options_values_basic_price in der Tabelle: products_attributes
Folgende Änderungen durchgeführt in der Datei
admin/includes/modules/new_attributes_change.php
<?php
/ --------------------------------------------------------------
** $Id: new_attributes_change.php 899 2005-04-29 02:40:57Z hhgag $
** XT-Commerce - community made shopping
** http://www.xt-commerce.com
** Copyright (c) 2003 XT-Commerce
** --------------------------------------------------------------
** based on:
** (c) 2000-2001 The Exchange Project**(earlier name of osCommerce)
** (c) 2002-2003 osCommerce(new_attributes_change); www.oscommerce.com
** (c) 2003******** nextcommerce (new_attributes_change.php,v 1.8 2003/08/14); www.nextcommerce.org
** Released under the GNU General Public License
** --------------------------------------------------------------
** Third Party contributions:
** New Attribute Manager v4b********************************Autor: Mike G | mp3man@internetwork.net | http://downloads.ephing.com
** Released under the GNU General Public License
** -------------------------------------------------------------- /
** defined('_VALID_XTC') or die('Direct Access to this location is not allowed.');
** require_once(DIR_FS_INC .'xtc_get_tax_rate.inc.php');
** require_once(DIR_FS_INC .'xtc_get_tax_class_id.inc.php');
//**require_once(DIR_FS_INC .'xtc_format_price.inc.php');
**// I found the easiest way to do this is just delete the current attributes & start over =)
**// download function start
**$delete_sql = xtc_db_query("SELECT products_attributes_id FROM ".TABLE_PRODUCTS_ATTRIBUTES." WHERE products_id = '" . $_POST['current_product_id'] . "'");
**while($delete_res = xtc_db_fetch_array($delete_sql)) {
******$delete_download_sql = xtc_db_query("SELECT products_attributes_filename FROM ".TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD." WHERE products_attributes_id = '" . $delete_res['prducts_attributes_id'] . "'");
******$delete_download_file = xtc_db_fetch_array($delete_download_sql);
******xtc_db_query("DELETE FROM ".TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD." WHERE products_attributes_id = '" . $delete_res['products_attributes_id'] . "'");
**}
**// download function end
**xtc_db_query("DELETE FROM ".TABLE_PRODUCTS_ATTRIBUTES." WHERE products_id = '" . $_POST['current_product_id'] . "'" );
**// Simple, yet effective.. loop through the selected Option Values.. find the proper price & prefix.. insert.. yadda yadda yadda.
**for ($i = 0; $i < sizeof($_POST['optionValues']); $i++) {
****$query = "SELECT FROM ".TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS ." where products_options_values_id = '" . $_POST['optionValues'][$i] . "'";
****$result = xtc_db_query($query);
****$matches = xtc_db_num_rows($result);
****while ($line = xtc_db_fetch_array($result)) {
******$optionsID = $line['products_options_id'];
****}
****$cv_id = $_POST['optionValues'][$i];
****$value_price =**$_POST[$cv_id . '_price'];
****if (PRICE_IS_BRUTTO=='true'){
****$value_price= ($value_price/((xtc_get_tax_rate(xtc_get_tax_class_id($_POST['current_product_id'])))+100) 100);
****}
**********$value_price=xtc_round($value_price,PRIC E_PRECISION);
//Neu
****$value_basic_price = $_POST[$cv_id . '_basic_price'];
//Neu Ende
****$value_prefix = $_POST[$cv_id . '_prefix'];
****$value_sortorder = $_POST[$cv_id . '_sortorder'];
****$value_weight_prefix = $_POST[$cv_id . '_weight_prefix'];
****$value_model =**$_POST[$cv_id . '_model'];
****$value_stock =**$_POST[$cv_id . '_stock'];
****$value_weight =**$_POST[$cv_id . '_weight'];
//Neu
******xtc_db_query("INSERT INTO ".TABLE_PRODUCTS_ATTRIBUTES." (products_id, options_id, options_values_id, options_values_price, options_values_basic_price, price_prefix ,attributes_model, attributes_stock, options_values_weight, weight_prefix,sortorder) VALUES ('" . $_POST['current_product_id'] . "', '" . $optionsID . "', '" . $_POST['optionValues'][$i] . "', '" . $value_price . "', '" . $value_basic_price . "', '" . $value_prefix . "', '"**$value_model . "', '" . $value_stock . "', '" . $value_weight . "', '" . $value_weight_prefix . "','".$value_sortorder."')") or die(mysql_error());
//Neu Ende
//****xtc_db_query("INSERT INTO ".TABLE_PRODUCTS_ATTRIBUTES." (products_id, options_id, options_values_id, options_values_price, price_prefix ,attributes_model, attributes_stock, options_values_weight, weight_prefix,sortorder) VALUES ('" . $_POST['current_product_id'] . "', '" . $optionsID . "', '" . $_POST['optionValues'][$i] . "', '" . $value_price . "', '" . $value_prefix . "', '" . $value_model . "', '" . $value_stock . "', '" . $value_weight . "', '" . $value_weight_prefix . "','".$value_sortorder."')") or die(mysql_error());
****$products_attributes_id = xtc_db_insert_id();
********if ($_POST[$cv_id . '_download_file'] != '') {
********$value_download_file = $_POST[$cv_id . '_download_file'];
********$value_download_expire = $_POST[$cv_id . '_download_expire'];
********$value_download_count = $_POST[$cv_id . '_download_count'];
********xtc_db_query("INSERT INTO ".TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD." (products_attributes_id, products_attributes_filename, products_attributes_maxdays, products_attributes_maxcount) VALUES ('" . $products_attributes_id . "', '" . $value_download_file . "', '" . $value_download_expire . "', '" . $value_download_count . "')") or die(mysql_error());
****}
**}
?>
admin/includes/modules/new_attributes_functions.php
<?php
/ --------------------------------------------------------------
** $Id: new_attributes_functions.php 899 2005-04-29 02:40:57Z hhgag $
** XT-Commerce - community made shopping
** http://www.xt-commerce.com
** Copyright (c) 2003 XT-Commerce
** --------------------------------------------------------------
** based on:
** (c) 2000-2001 The Exchange Project**(earlier name of osCommerce)
** (c) 2002-2003 osCommerce(new_attributes_functions); www.oscommerce.com
** (c) 2003******** nextcommerce (new_attributes_functions.php,v 1.8 2003/08/14); www.nextcommerce.org
** Released under the GNU General Public License
** --------------------------------------------------------------
** Third Party contributions:
** New Attribute Manager v4b********************************Autor: Mike G | mp3man@internetwork.net | http://downloads.ephing.com
** Released under the GNU General Public License
** -------------------------------------------------------------- /
defined('_VALID_XTC') or die('Direct Access to this location is not allowed.');
**// A simple little function to determine if the current value is already selected for the current product.
**function checkAttribute($current_value_id, $current_pid, $current_product_option_id) {
//****global $attribute_value_price,$sortorder, $attribute_value_weight, $attribute_value_weight_prefix, $attribute_value_prefix, $attribute_value_model, $attribute_value_stock, $posCheck, $negCheck, $posCheck_weight, $negCheck_weight,$attribute_value_download_count, $attribute_value_download_expire,$attribute_value_ download_filename;
//Neu
******global $attribute_value_price,$sortorder, $attribute_value_weight, $attribute_value_weight_prefix, $attribute_value_basic_preis, $attribute_value_prefix, $attribute_value_model, $attribute_value_stock, $posCheck, $negCheck, $isCheck, $posCheck_weight, $negCheck_weight,$attribute_value_download_count, $attribute_value_download_expire,$attribute_value_ download_filename;
//Neu Ende
****$query = "SELECT FROM ".TABLE_PRODUCTS_ATTRIBUTES." where options_values_id = '" . $current_value_id . "' AND products_id = ' " . $current_pid . "' AND options_id = '" . $current_product_option_id . "'";
****$result = xtc_db_query($query);
****$isFound = xtc_db_num_rows($result);
****if ($isFound) {
******while($line = xtc_db_fetch_array($result)) {
**********// download function start
********$dl_sql = xtc_db_query("SELECT products_attributes_maxdays, products_attributes_filename, products_attributes_maxcount FROM ".TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD." WHERE products_attributes_id = '" . $line['products_attributes_id'] . "'") or die(mysql_error());
********$dl_res = xtc_db_fetch_array($dl_sql);
********$attribute_value_download_filename= $dl_res['products_attributes_filename'];
********$attribute_value_download_count = $dl_res['products_attributes_maxcount'];
********$attribute_value_download_expire = $dl_res['products_attributes_maxdays'];
********// download function end
********$attribute_value_price = $line['options_values_price'];
//Neu
********$attribute_value_basic_price = $line['options_values_basic_price'];
//Neu Ende
********$sortorder = $line['sortorder'];
********$attribute_value_prefix = $line['price_prefix'];
********$attribute_value_weight_prefix = $line['weight_prefix'];
********$attribute_value_model = $line['attributes_model'];
********$attribute_value_stock = $line['attributes_stock'];
********$attribute_value_weight = $line['options_values_weight'];
//********if ($attribute_value_prefix == '+') {
//**********$posCheck = ' SELECTED';
//**********$negCheck = '';
//********} else {
//**********$posCheck = '';
//**********$negCheck = ' SELECTED';
//********}
//********if ($attribute_value_weight_prefix == '+') {
//**********$posCheck_weight = ' SELECTED';
//**********$negCheck_weight = '';
//********} else {
//**********$posCheck_weight = '';
//**********$negCheck_weight = ' SELECTED';
//********}
if ($attribute_value_prefix == '+') {
$posCheck = ' SELECTED';
$negCheck = '';
$isCheck = '';
} elseif($attribute_value_prefix == '-') {
$posCheck = '';
$negCheck = ' SELECTED';
$isCheck = '';
} elseif ($attribute_value_prefix == '=') {
$posCheck = '';
$negCheck = '';
$isCheck = ' SELECTED';
}
******}
******return true;
****} else {
******$attribute_value_price = '';
//Neu
******$attribute_value_basic_price = '';
//Neu Ende
******$sortorder = '';
******$attribute_value_weight = '';
******$attribute_value_prefix = '';
******$attribute_value_weight_prefix = '';
******$attribute_value_model = '';
******$attribute_value_stock = '';
******$posCheck = '';
******$negCheck = '';
//neu
******$isCheck = '';
******$posCheck_weight = '';
******$negCheck_weight = '';
******return false;
****}
**}
**function rowClass($i) {
****$class1 = 'attributes-odd';
****$class2 = 'attributes-even';
****if ($i%2) {
******return $class1;
****} else {
**** return $class2;
****}
**}
**// For Options Type Contribution
**function extraValues($current_value_id, $current_pid) {
****global $attribute_qty, $attribute_order, $attribute_linked, $attribute_prefix, $attribute_type, $isSelected;
****if ($isSelected) {
******$query = "SELECT FROM ".TABLE_PRODUCTS_ATTRIBUTES." where options_values_id = '" . $current_value_id . "' AND products_id = '" . $current_pid . "'";
******$result = xtc_db_query($query);
******while ($line = xtc_db_fetch_array($result)) {
********$attribute_qty = $line['options_values_qty'];
********$attribute_order = $line['attribute_order'];
********$attribute_linked = $line['collegamento'];
********$attribute_prefix = $line['price_prefix'];
********$attribute_type = $line['options_type_id'];
******}
****} else {
******$attribute_qty = '1';
******$attribute_order = '100';
******$attribute_linked = '0';
******$attribute_prefix = '';
******$attribute_type = '';
****}
**}
**function displayOptionTypes($attribute_type) {
****global $isSelected;
****$availableTypes = array('Disabled' => '0', 'Select' => '1', 'Checkbox' => '2', 'Radio' => '3', 'Select Multiple' => '4', 'Text' => '5' );
****foreach($availableTypes as $name => $id) {
******if ($isSelected && $attribute_type == $id) {
**********$SELECT = ' SELECTED';
******} else {
**********$SELECT = '';
******}
******echo '<option value="' . $id . '"' . $SELECT . '>' . $name;
****}
**}
**// Get values for Linda McGrath's contribution
**function getSortCopyValues($current_value_id, $current_pid) {
****global $attribute_sort, $attribute_weight, $attribute_weight_prefix, $isSelected;
****if ($isSelected) {
******$query = "SELECT FROM ".TABLE_PRODUCTS_ATTRIBUTES." where options_values_id = '" . $current_value_id . "' AND products_id = '" . $current_pid . "'";
******$result = xtc_db_query($query);
******while ($line = xtc_db_fetch_array($result)) {
********$attribute_sort = $line['products_options_sort_order'];
********$attribute_weight = $line['products_attributes_weight'];
********$attribute_weight_prefix = $line['products_attributes_weight_prefix'];
******}
****} else {
******$attribute_sort = '0';
******$attribute_weight = '';
******$attribute_weight_prefix = '';
****}
**}
**function sortCopyWeightPrefix($attribute_weight_prefix) {
****global $isSelected;
****$availablePrefixes = array('+', '-');
****foreach($availablePrefixes as $prefix) {
******if ($isSelected && $prefix == $attribute_weight_prefix) {
********$SELECT = ' SELECTED';
******} else {
**********$SELECT = '';
******}
******echo '<option value="' . $prefix . '"' . $SELECT . '>' . $prefix;
****}
**}
?>
admin/includes/modules/new_attributes_include.php
<?php
/ --------------------------------------------------------------
** $Id: new_attributes_include.php 901 2005-04-29 10:32:14Z novalis $
** XT-Commerce - community made shopping
** http://www.xt-commerce.com
** Copyright (c) 2003 XT-Commerce
** --------------------------------------------------------------
** based on:
** (c) 2000-2001 The Exchange Project**(earlier name of osCommerce)
** (c) 2002-2003 osCommerce(new_attributes_functions); www.oscommerce.com
** (c) 2003******** nextcommerce (new_attributes_include.php,v 1.11 2003/08/21); www.nextcommerce.org
** Released under the GNU General Public License
** --------------------------------------------------------------
** Third Party contributions:
** New Attribute Manager v4b********************************Autor: Mike G | mp3man@internetwork.net | http://downloads.ephing.com
** Released under the GNU General Public License
** -------------------------------------------------------------- /
defined('_VALID_XTC') or die('Direct Access to this location is not allowed.');
** // include needed functions
** require_once(DIR_FS_INC .'xtc_get_tax_rate.inc.php');
** require_once(DIR_FS_INC .'xtc_get_tax_class_id.inc.php');
** require(DIR_FS_CATALOG.DIR_WS_CLASSES . 'xtcPrice.php');
** $xtPrice = new xtcPrice(DEFAULT_CURRENCY,$_SESSION['customers_status']['customers_status_id']);
?>
**<tr>
****<td class="pageHeading" colspan="3"><?php echo $pageTitle; ?></td>
**</tr>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="SUBMIT_ATTRIBUTES" enctype="multipart/form-data"><input type="hidden" name="current_product_id" value="<?php echo $_POST['current_product_id']; ?>"><input type="hidden" name="action" value="change">
<?php
echo xtc_draw_hidden_field(xtc_session_name(), xtc_session_id());
**if ($cPath) echo '<input type="hidden" name="cPathID" value="' . $cPath . '">';
**require(DIR_WS_MODULES . 'new_attributes_functions.php');
**// Temp id for text input contribution.. I'll put them in a seperate array.
**$tempTextID = '1999043';
**// Lets get all of the possible options
**$query = "SELECT FROM "TABLE_PRODUCTS_OPTIONS." where products_options_id LIKE '%' AND language_id = '" . $_SESSION['languages_id'] . "'";
**$result = xtc_db_query($query);
**$matches = xtc_db_num_rows($result);
**if ($matches) {
****while ($line = xtc_db_fetch_array($result)) {
******$current_product_option_name = $line['products_options_name'];
******$current_product_option_id = $line['products_options_id'];
******// Print the Option Name
******echo "<TR class=\"dataTableHeadingRow\">";
******echo "<TD class=\"dataTableHeadingContent\">" . $current_product_option_name . "</TD>";
******echo "<TD class=\"dataTableHeadingContent\">".SORT_ORDER."</TD>";
******echo "<TD class=\"dataTableHeadingContent\">".ATTR_MODEL. Anwalt Hamm"</TD>";
******echo "<TD class=\"dataTableHeadingContent\">".ATTR_STOCK."</TD>";
******echo "<TD class=\"dataTableHeadingContent\">".ATTR_WEIGHT."</TD>";
******echo "<TD class=\"dataTableHeadingContent\">".ATTR_PREFIXWEIGHT."</TD>";
******echo "<TD class=\"dataTableHeadingContent\">".ATTR_PRICE."</TD>";
//Neu
******echo "<TD class=\"dataTableHeadingContent\">".ATTR_BASIC_PRICE."</TD>";
//Neu Ende
******echo "<TD class=\"dataTableHeadingContent\">".ATTR_PREFIXPRICE."</TD>";
******echo "</TR>";
******// Find all of the Current Option's Available Values
******$query2 = "SELECT FROM ".TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS ." WHERE products_options_id = '" . $current_product_option_id . "' ORDER BY products_options_values_id DESC";
******$result2 = xtc_db_query($query2);
******$matches2 = xtc_db_num_rows($result2);
******if ($matches2) {
********$i = '0';
********while ($line = xtc_db_fetch_array($result2)) {
**********$i++;
**********$rowClass = rowClass($i);
**********$current_value_id = $line['products_options_values_id'];
**********$isSelected = checkAttribute($current_value_id, $_POST['current_product_id'], $current_product_option_id);
**********if ($isSelected) {
************$CHECKED = ' CHECKED';
**********} else {
************$CHECKED = '';
**********}
**********$query3 = "SELECT FROM ".TABLE_PRODUCTS_OPTIONS_VALUES." WHERE products_options_values_id = '" . $current_value_id . "' AND language_id = '" . $_SESSION['languages_id'] . "'";
**********$result3 = xtc_db_query($query3);
**********while($line = xtc_db_fetch_array($result3)) {
************$current_value_name = $line['products_options_values_name'];
************// Print the Current Value Name
************echo "<TR class=\"" . $rowClass . "\">";
************echo "<TD class=\"main\">";
************echo "<input type=\"checkbox\" name=\"optionValues[]\" value=\"" . $current_value_id . "\"" . $CHECKED . ">**" . $current_value_name . "**";
************echo "</TD>";
************echo "<TD class=\"main\" align=\"left\"><input type=\"text\" name=\"" . $current_value_id . "_sortorder\" value=\"" . $sortorder . "\" size=\"4\"></TD>";
************echo "<TD class=\"main\" align=\"left\"><input type=\"text\" name=\"" . $current_value_id . "_model\" value=\"" . $attribute_value_model . "\" size=\"15\"></TD>";
************echo "<TD class=\"main\" align=\"left\"><input type=\"text\" name=\"" . $current_value_id . "_stock\" value=\"" . $attribute_value_stock . "\" size=\"4\"></TD>";
************echo "<TD class=\"main\" align=\"left\"><input type=\"text\" name=\"" . $current_value_id . "_weight\" value=\"" . $attribute_value_weight . "\" size=\"10\"></TD>";
************echo "<TD class=\"main\" align=\"left\"><SELECT name=\"" . $current_value_id . "_weight_prefix\"><OPTION value=\"+\"" . $posCheck_weight . ">+<OPTION value=\"-\"" . $negCheck_weight . ">-</SELECT></TD>";
************// brutto Admin
************if (PRICE_IS_BRUTTO=='true'){
************$attribute_value_price_calculate = $xtPrice->xtcFormat(xtc_round($attribute_value_price ((100+(xtc_get_tax_rate(xtc_get_tax_class_id($_POS T['current_product_id']))))/100)PRICE_PRECISION),false);
************} else {
************$attribute_value_price_calculate = xtc_round($attribute_value_price,PRICE_PRECISION);
************}
************echo "<TD class=\"main\" align=\"left\"><input type=\"text\" name=\"" . $current_value_id . "_price\" value=\"" . $attribute_value_price_calculate . "\" size=\"10\">";
************// brutto Admin
************if (PRICE_IS_BRUTTO=='true'){
************ echo TEXT_NETTO .''.$xtPrice->xtcFormat(xtc_round($attribute_value_price,PRICE_P RECISION),true).'**';
************}
************echo "</TD>";
//Neu
************echo "<TD class=\"main\" align=\"left\"><input type=\"text\" name=\"" . $current_value_id . "_basic_price\" value=\"" . $attribute_value_basic_price . "\" size=\"10\"></TD>";
//Neu Ende
//**************echo "<TD class=\"main\" align=\"left\"><SELECT name=\"" . $current_value_id . "_prefix\"> <OPTION value=\"+\"" . $posCheck . ">+<OPTION value=\"-\"" . $negCheck . ">-</SELECT></TD>";
****************echo "<TD class=\"main\" align=\"left\"><SELECT name=\"" . $current_value_id . "_prefix\"> <OPTION value=\"+\"" . $posCheck . ">+<OPTION value=\"-\"" . $negCheck . ">-<OPTION value=\"=\"" . $isCheck . ">=</SELECT></TD>";
************echo "</TR>";
************// Download function start
************if(strtoupper($current_product_option_ name) == 'DOWNLOADS') {
****************echo "<tr>";
************** // echo "<td colspan=\"2\">File: <input type=\"file\" name=\"" . $current_value_id . "_download_file\"></td>";
****************echo "<td colspan=\"2\">".xtc_draw_pull_down_menu($current_value_id . '_download_file', xtc_getDownloads(), $attribute_value_download_filename, '')."</td>";
****************echo "<td class=\"main\">*".DL_COUNT." <input type=\"text\" name=\"" . $current_value_id . "_download_count\" value=\"" . $attribute_value_download_count . "\"></td>";
****************echo "<td class=\"main\">*".DL_EXPIRE." <input type=\"text\" name=\"" . $current_value_id . "_download_expire\" value=\"" . $attribute_value_download_expire . "\"></td>";
****************echo "</tr>";
************}
************// Download function end
**********}
**********if ($i == $matches2 ) $i = '0';
********}
******} else {
********echo "<TR>";
********echo "<TD class=\"main\">No values under this option.</TD>";
********echo "</TR>";
******}
****}
**}
?>
**<tr>
****<td colspan="10" class="main">
<?php
echo xtc_button(BUTTON_SAVE) . '*';
echo xtc_button_link(BUTTON_CANCEL,'java script:history.back()');
?>
</td>
**</tr>
</form>
admin/new_attributes.php
<?php
/ --------------------------------------------------------------
** $Id: new_attributes.php 1313 2005-10-18 15:49:15Z mz $
** XT-Commerce - community made shopping
** http://www.xt-commerce.com
** Copyright (c) 2003 XT-Commerce
** --------------------------------------------------------------
** based on:
** (c) 2000-2001 The Exchange Project**(earlier name of osCommerce)
** (c) 2002-2003 osCommerce(new_attributes); www.oscommerce.com
** (c) 2003******** nextcommerce (new_attributes.php,v 1.13 2003/08/21); www.nextcommerce.org
** Released under the GNU General Public License
** --------------------------------------------------------------
** Third Party contributions:
** New Attribute Manager v4b********************************Autor: Mike G | mp3man@internetwork.net | http://downloads.ephing.com
** copy attributes**************************Autor: Hubi | http://www.netz-designer.de
** Released under the GNU General Public License
** -------------------------------------------------------------- /
**require('includes/application_top.php');
**require(DIR_WS_MODULES.'new_attributes_config.ph p');
**require(DIR_FS_INC .'xtc_findTitle.inc.php');
**require_once(DIR_FS_INC . 'xtc_format_filesize.inc.php');
**if ( isset($cPathID) && $_POST['action'] == 'change') {
****include(DIR_WS_MODULES.'new_attributes_change. php');
****xtc_redirect( './' . FILENAME_CATEGORIES . '?cPath=' . $cPathID . '&pID=' . $_POST['current_product_id'] );
**}
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Tranistional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo $_SESSION['language_charset']; ?>">
<title><?php echo TITLE; ?></title>
<link rel="stylesheet" type="text/css" href="includes/stylesheet.css">
<script type="text/javascript" src="includes/general.js"></script>
</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF">
<?php
**require(DIR_WS_INCLUDES . 'header.php');
?>
<table border="0" width="100%" cellspacing="2" cellpadding="2">
**<tr>
****<td class="columnLeft2" width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="1" cellpadding="1" class="columnLeft">
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
****</table></td>
****<td**class="boxCenter" width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
<?php
**switch($_POST['action']) {
****case 'edit':
******if ($_POST['copy_product_id'] != 0) {
//Neu
**********$attrib_query = xtc_db_query("SELECT products_id, options_id, options_values_id, options_values_price, options_values_basic_price, price_prefix, attributes_model, attributes_stock, options_values_weight, weight_prefix FROM "TABLE_PRODUCTS_ATTRIBUTES." WHERE products_id = " . $_POST['copy_product_id']);
//Neu Ende
//Alt**** $attrib_query = xtc_db_query("SELECT products_id, options_id, options_values_id, options_values_price, price_prefix, attributes_model, attributes_stock, options_values_weight, weight_prefix FROM ".TABLE_PRODUCTS_ATTRIBUTES." WHERE products_id = " . $_POST['copy_product_id']);
**********while ($attrib_res = xtc_db_fetch_array($attrib_query)) {
**************xtc_db_query("INSERT into ".TABLE_PRODUCTS_ATTRIBUTES." (products_id, options_id, options_values_id, options_values_price, options_values_basic_price, price_prefix, attributes_model, attributes_stock, options_values_weight, weight_prefix) VALUES ('" . $_POST['current_product_id'] . "', '" . $attrib_res['options_id'] . "', '" . $attrib_res['options_values_id'] . "', '" . $attrib_res['options_values_price'] . "', '" . $attrib_res['options_values_basic_price'] . "', '" . $attrib_res['price_prefix'] . "', '" . $attrib_res['attributes_model'] . "', '" . $attrib_res['attributes_stock'] . "', '" . $attrib_res['options_values_weight'] . "', '" . $attrib_res['weight_prefix'] . "')");
**********}
******}
******$pageTitle = TITLE_EDIT.': ' . xtc_findTitle($_POST['current_product_id'], $languageFilter);
******include(DIR_WS_MODULES.'new_attributes_inclu de.php');
******break;
****case 'change':
******$pageTitle = TITLE_UPDATED;
******include(DIR_WS_MODULES.'new_attributes_chang e.php');
******include(DIR_WS_MODULES.'new_attributes_selec t.php');
******break;
****default:
******$pageTitle = TITLE_EDIT;
******include(DIR_WS_MODULES.'new_attributes_selec t.php');
******break;
**}
?>
****</table></td>
**</tr>
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>
Den Rest der Dateien wie die includes/modules/product_info.php, kann ich hier nicht zeigen, da es mir gekürzt wird.(Ist nun im Anhang)
[/code]
lang/german/admin/new_attributes.php
define('ATTR_BASIC_PRICE','Grundpreis');eingefügt.
Im Adminbereich lässt sich zwar der neue Eintrag machen, nur wird er beim erneuten Bearbeiten vom Artikelarttribut nicht mehr angezeigt, obwohl er in der Datenbank steht.
Eine Ausgabe ist weder bei der Produkt Info noch beim Dropdown möglich mit {BASIC_PRICE} und {$item_data.BASIC_PRICE}.
Würde mich freuen wenn jemanden weitere Tips geben könnte.
Gruß
Pommes
[attachmentid=1675]
Hallo Pommes
Erst mal vielen Dank das noch jemand weiter macht.
Schon verwunderlich das es das für OSC schon so lange gibt und ich mir hier erst den Wolf erklären musste (inkl. bunter Bildchen) das überhaupt einer vesteht was gemeint war. :D
Auch wenn ich absoluter Laie in diesen Dingen bin und nur langsam dahinter komme kann ich zwar nicht aktiv helfen aber ich werde die Vorschläge mal einbauen und auf Basis dessen was da kommt schauen
ob ich was finde oder mir etwas einfällt dazu.
Evtl. gibt es auf Basis von dem was Du hier schon geleistet hast Lösungen im OSC Forum was man verwenden kann.
Auf große Mithilfe der meisten die es könnten würde ich mal nicht so hoffen, das Thema gibt es unbeantwortet schon sehr lange hier im Forum und wurde auch von vielen Shopbetreibern schon erfolglos gefragt.
Selbst gegen Bezahlung (wurde weiter oben glaube ich als Option angeboten) rührt sich da nix in der "Fachwelt" ;)
Aber egal, viellenicht kommt ja doch noch Leben in die Thematik.
Hi,
Kannst ja ne Spende überweisen B) .
Hocke da ich es nun auch brauche schon ne Weile dran.
Bin was das angeht auch ein "Frischling".
Denke dran, das Du alle Dateien vorher sicherst.
Hier noch die Datei
includes/modules/product_attributes.php
[attachmentid=1677]
Jetzt noch in der
templates/DEINTEMPLATE/module/product_options/product_options_dropdown.html
das
{$item_data.BASIC_PRICE}
an beliebiger Stelle einbauen.
So sieht es bei mir jetzt aus
http://www.dinotec-shop.de/screen.jpg
Leider wird im Admin wenn man einen Artikelattribut erstellt hat, der eingegebene Grundpreis nicht angezeigt.
Viellecht kommt noch wer drauf wo ich den Fehler hab.
Gruß
Pommes
PS: WARNUNG !!!! Wehe ich sehe es in irgendeinen Shop als Modul, dann funkt es.
So ich nomma B) ,
also ich hab den Fehler gefunden, das es nicht im Admin angezeigt worden ist.
Gleich oben bei der ersten Änderung ist mir ein Fehler unterlaufen in der
admin/includes/modules/new_attributes_functions.php
//Neu
******global $attribute_value_price,$sortorder, $attribute_value_weight, $attribute_value_weight_prefix, $attribute_value_basic_preis, $attribute_value_prefix, $attribute_value_model, $attribute_value_stock, $posCheck, $negCheck, $isCheck, $posCheck_weight, $negCheck_weight,$attribute_value_download_count, $attribute_value_download_expire,$attribute_value_ download_filename;
//Neu Ende
Es muss natürlich
$attribute_value_basic_price heißen, sorry.
Nun funzt es einwandfrei.
Wie man nun das Dropdownfeld so anpasst, das der Grundpreis unterhalb angezeigt wird und nicht nebendran, habe ich noch nicht herausgefunden.
Glaube aber auch nicht das es möglich ist.
Gruß Pommes
PS: Noch mal die Bitte.Ich möchte diese Erweiterung nicht in einem Shop sehen wo sie für Geld angeboten wird.
CoryDiddi
31.12.2007, 14:42
''>ZITAT</div>Hi,
Kannst ja ne Spende überweisen B) .
[/b]
Hi Pommes,
wenn das jetzt echt alles klappt, hast Du einen Orden verdient. :D
Also, ich bin gerne zu einer Spende bereit. Wer macht mit???
Guten Rutsch an alle!!!
''>ZITAT(DM1953 @ Dec 31 2007, 14:42) 39717
Hi Pommes,
wenn das jetzt echt alles klappt, hast Du einen Orden verdient. :D
Also, ich bin gerne zu einer Spende bereit. Wer macht mit???
Guten Rutsch an alle!!!
[/b]
Natürlich funzt es, ist ja nun bei uns im Shop eingebaut.
Vergesse aber nicht vorher ein Backup der Dateien zu machen.
Wegen der Spende habe ich nischt dagegen, mache von mir aus dann noch eine übersnichtliche Anleitung dazu B)
Wenn dort ein Bedarf ist, werde ich eine machen.
Denkt dran, das man immer noch eine Eingabe machen muss (Admin) für den Grundpreis und er noch nicht automatisch berechnet wird.
Aber ich denke mal das es auch möglich sein dürfte.
Man gibt z.B. als Optionswert 100 ein, dann per Dropdown (nächste Spalte) das Maß (ml oder L) und wenn man jetzt noch die VPE einbaut und beim Artikel den VPE Wert angibt, müsste es sich eigentlich errechnen lassen.
Doch soweit bin ich noch nicht, aber der Grundstein ist gelegt. B)
Wünsche auch allen einen guten Rutsch ins Jahr 2008 und kommt gesund wieder.
Euer Pommes
Hallo Pommes
Erst mal vielen Dank für Die Arbeit. Ich habe das noch nicht eingebaut, werde ich Tage aber mal angehen.
Wenn auf Basis dessen dann noch die Feinheiten dakommen wäre das natürlich nicht schlecht, aber ich schätze
das Grundproblem, nämlich die Grundpreise (pro Kilo, Liter usw) bei Preisen mit Attributen anzugeben
wurde gelöst und darum ging es ja primär.
Mit der Spende schließe ich mich gerne an.
Details machen wir dann aber eher per PN aus.
Dazu melde ich mich am Ende der Woche nochmals bei Dir und viellenicht könnte sich DM1953
ja mal mit mir per PN kurzschließen. Es waren dazu ja noch andere die dieses Modul dringend benötigten.
Evtl. geht da ja noch mehr. :D
Auf jeden Fall wurde eine mehr als elementar einzustufende und rechtlich geforderte Funktion die nicht vorhanden war zur Verfügung gestellt.
Wenn das mal nichts ist..
''>ZITAT(Aircalvus @ Jan 1 2008, 16:11) 39761
Hallo Pommes
Erst mal vielen Dank für Die Arbeit. Ich habe das noch nicht eingebaut, werde ich Tage aber mal angehen.
Wenn auf Basis dessen dann noch die Feinheiten dakommen wäre das natürlich nicht schlecht, aber ich schätze
das Grundproblem, nämlich die Grundpreise (pro Kilo, Liter usw) bei Preisen mit Attributen anzugeben
wurde gelöst und darum ging es ja primär.
Mit der Spende schließe ich mich gerne an.
Details machen wir dann aber eher per PN aus.
Dazu melde ich mich am Ende der Woche nochmals bei Dir und viellenicht könnte sich DM1953
ja mal mit mir per PN kurzschließen. Es waren dazu ja noch andere die dieses Modul dringend benötigten.
Evtl. geht da ja noch mehr. :D
Auf jeden Fall wurde eine mehr als elementar einzustufende und rechtlich geforderte Funktion die nicht vorhanden war zur Verfügung gestellt.
Wenn das mal nichts ist..
[/b]
Hi,
gerne mache ich aber auch vorher noch eine genaue bzw. übersnichtlichere Installationsanleitung.
Gebt einfach bescheid wenn Ihr es möchtet, wäre kein Problem.
Ein gutes Neues noch
Gruß
Pommes
funktioniert alles wenn man nach der beschreibung hier alles ändert oder fehlt noch etwas ?
''>ZITAT(loaded @ Jan 1 2008, 18:46) 39765
funktioniert alles wenn man nach der beschreibung hier alles ändert oder fehlt noch etwas ?
[/b]
Hi und gutes neues,
ja es funzt.
Erstmal sichere die Dateien und deine Datenbank.
Die betreffende Tabelle in der Datenbank gesichert, neues Feld hinzugefügt.
Hier der Befehl, ist ganz wnichtig:
ALTER TABLE `products_attributes` ADD `options_values_basic_price` DECIMAL( 15, 2 ) NOT NULL DEFAULT '0.00' AFTER `options_values_price`;
Ich hab die zu verändernden Dateien runter geladen, geändert, die Dateien auf dem Server umbenannt, die geänderten hochgeladen.
Lese alles nomma genau durch da ein Tippfehler mir unterlaufen ist unter Ergänzung (http://www.ecombase.de/forum/index.php?showtopic=5643#) zu finden.
Dann läuft es auch.
Aber wie alle es tun, muss ich sagen das alles auf eigene Gefahr von Dir/ Euch gemacht wird und ich keine Haftung übernehmen kann.
Gruß
Pommes
PS: Ich schreibe gleich mal ne Installations Anleitung, da fehlen noch Dateien. Dann könnt Ihr loslegen B), war ein wenig spät wo ich das hier gleich reingeschrieben habe, sorry.
So und hallo zusammen,
ich habe nun mal ne kleine Anleitung mit den von mir durchgeführten Änderungen geschrieben.
Bitte lest sie genau durch, ich habe an wnichtigen Stellen auch noch einen dicken roten Hinweis gemacht.
Diese Änderung läuft bei mir auf XT Commerce Version SP2.1, alle anderen sind nicht von mir getestet.
So, nun hier mal die Erweiterung runder laden (http://anonym.to/?http://www.isteupload.de/p617682-AnleitungAttributenErweiterungGrundpreisangabepdf. html) (Wollte es hier hochladen 495kb, ging nicht)
Ich habe aber eine neue Idee und werde diese, wenn es auch funktioniert hier posten.
Viel Spass
Pommes
das heißt also das man mit dem installieren noch warten soll ?
''>ZITAT(loaded @ Jan 2 2008, 0:57) 39772
das heißt also das man mit dem installieren noch warten soll ?
[/b]
Nein, so schnell bin ich nicht, das muss jeder für sich entscheiden ob er warten möchte.
Bin noch nicht so fit in solchen Sachen, von daher kann es noch eine Weile gehen.
Wenn ich es denn mal haben sollte, seit Ihr die ersten die es bekommen werden.
So wie es jetzt ist, funktioniert es ja auch.
Am besten alle Änderungen mit /// NEU ANFANG Erweiterung Grundpreis und ///NEU ENDE Erweiterung Grundpreis makieren, wenn man sie nicht extra sichern möchte.
Dann hat man später die Stelle gleich wieder gefunden.
Gruß
Pommes
Prima, keine Klagen.
Dann passt es ja.
Gruß
Pommes
Hallo Pommes
So, habe es mal in einer Testumgebung eingebaut.
Fehlermeldungen oder sonst irgendetwas gab es keine, allerdings wird noch nicht so ganz
das rnichtige ausgegeben bzw. wenn ich dieses Beispiel:
''>ZITAT</div>{$item_data.TEXT}{if $item_data.BASIC_PRICE!=''} ({$item_data.BASIC_PRICE} EUR /Liter){/if}{$item_data.FULL_PRICE}[/b]
nehme, funktionierts, nur mit {$item_data.BASIC_PRICE} irgendwie noch nicht.
Aber das werde ich jetzt mal eruieren.
Die obere Lösung scheint schon die bessere Wahl zu sein, allerdings müßte ich dann mehrere Template [CSS Shop Templates oder Tabellen Shop Templates ]s vom Typ product_options_dropdown.html erstellen, da ich auch noch Artikel habe die nach Länge, Leistung etc
gerechnet werden. Aber das wäre ja kein Problem.
Ich teste das jetzt über die nächsten Tage und melde mich dann wieder.
PS: Anleitung war verständlich und gut geschrieben. :)
''>ZITAT(Aircalvus @ Jan 14 2008, 17:21) 40489
Hallo Pommes
So, habe es mal in einer Testumgebung eingebaut.
Fehlermeldungen oder sonst irgendetwas gab es keine, allerdings wird noch nicht so ganz
das rnichtige ausgegeben bzw. wenn ich dieses Beispiel:
nehme, funktionierts, nur mit {$item_data.BASIC_PRICE} irgendwie noch nicht.
Aber das werde ich jetzt mal eruieren.
Die obere Lösung scheint schon die bessere Wahl zu sein, allerdings müßte ich dann mehrere Template [CSS Shop Templates oder Tabellen Shop Templates ]s vom Typ product_options_dropdown.html erstellen, da ich auch noch Artikel habe die nach Länge, Leistung etc
gerechnet werden. Aber das wäre ja kein Problem.
Ich teste das jetzt über die nächsten Tage und melde mich dann wieder.
PS: Anleitung war verständlich und gut geschrieben. :)
[/b]
Hi Aircalvus,
normalerweise macht man das ja nun nicht aber hier mal mein Drop-Down Template [CSS Shop Templates oder Tabellen Shop Templates ], sogar mit automatischer Berechnung ;), aber bist ein zuverlässiger und da will ich mal nicht so sein.
Guckst Du hier:
{if $options!=''}
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
**{foreach name=outer item=options_data from=$options}
**<tr>
****<td class="main">{$options_data.NAME}:*</td>
****</tr>
**<tr>
****<td colspan="2" class="main">
******<select name="id[{$options_data.ID}]" onChange="updatePrice()" bgcolor="#FFF8AC" style="border-right: 1px solid; border-left: 1px solid; border-bottom: 1px solid; border-top: 1px solid; border-color: #FFEA00;">
**{foreach key=key_data item=item_data from=$options_data.DATA}
********<option value="{$item_data.ID}" bgcolor="#FFF8AC" style="border-right: 1px solid; border-left: 1px solid; border-bottom: 1px solid; border-top: 1px solid; border-color: #FFEA00;">{$item_data.TEXT}*{if $item_data.BASIC_PRICE!=''} ({$item_data.BASIC_PRICE} EUR /Liter){/if}*{$item_data.FULL_PRICE}</option>****
{/foreach}
******</select>
******
</td>
**</tr>
**{/foreach}
</table>
<script language="javascript1.5" type="text/javascript">
function updatePrice() {literal}
{
****{/literal}
****var price = new Array();
****var add_to_price = 0;
****
****{foreach name=outer item=options_data from=$options}
********price[{$options_data.ID}] = new Array();
********{foreach key=key_data item=item_data from=$options_data.DATA}
************price[{$options_data.ID}][{$item_data.ID}] = Number({$item_data.PREFIX}{$item_data.PRICE_PLAIN} );
********{/foreach}
********var sel_index = document.getElementById("cart_quantity").elements["id[{$options_data.ID}]"].selectedIndex;
********var item_id = document.getElementById("cart_quantity").elements["id[{$options_data.ID}]"].options[sel_index].value;
********if (!isNaN(item_id))
************add_to_price += price[{$options_data.ID}][item_id];
****{/foreach}
****var calculated_price = Number(original_price)+Number(add_to_price);
****document.getElementById("price").firstChild.nodeValue = currencyToXTC(calculated_price);
****
****{literal}
}
****{/literal}
function toDecimalPlaces(x, n)
****{literal}
{
****{/literal}
****if (n < 1 || n > 14) return false;
****var e = Math.pow(10, n);
****var k = (Math.round(x e) / e).toString();
****if (k.indexOf('.') == -1) k += '.';
****k += e.toString().substring(1);
****return k.substring(0, k.indexOf('.') + n+1);
******{literal}
}****
****{/literal}
function currencyToXTC(str)
****{literal}
{
****{/literal}
****var decimal_point = '{$DECIMAL_POINT}';
****var decimal_places = {$DECIMAL_PLACES};
****var thousands_point = '{$THOUSANDS_POINT}';
****str = toDecimalPlaces(str,decimal_places);
****var predecimal_part = str.substring(0,str.length-decimal_places-1);
****var deicmal_part = str.substr(str.length-decimal_places,decimal_places);
****if(thousands_point != "" && predecimal_part.length > 3){literal}{{/literal}
********var predecimal_temp = predecimal_part;
********var predecimal_part = "";
********for(j = 3; j < predecimal_temp.length; j+=3){literal}{{/literal}
**********var extrakt = predecimal_temp.slice(predecimal_temp.length - j, predecimal_temp.length - j + 3);
**********predecimal_part = thousands_point + extrakt +**predecimal_part + "";
********{literal}}{/literal}
********var str_first = predecimal_temp.substr(0, (predecimal_temp.length % 3 == 0)?3:(predecimal_temp.length % 3));
********predecimal_part = str_first + predecimal_part;
******{literal}}{/literal}
****return predecimal_part + decimal_point + deicmal_part;
******{literal}
}****
****{/literal}
function currencyToJavaScript(str)
****{literal}
{
****{/literal}
****var decimal_places = {$DECIMAL_PLACES};
****var thousands_point = '{$THOUSANDS_POINT}';
****str = str.toString()
****var predecimal_part = str.substring(0,str.length-decimal_places-1);
****var deicmal_part = str.substr(str.length-decimal_places,decimal_places);
****if(thousands_point != "" && predecimal_part.length > 3)
********predecimal_part = predecimal_part.replace(eval('/\\'+thousands_point+'/g'),'');
****return Number(predecimal_part + '.' + deicmal_part);
******{literal}
}****
****{/literal}
updatePrice();
</script>
{/if}
Sollte es dennoch nicht funtzen, sag bitte genau was nicht funktioniert.
Gebe bescheid und ich helfe Dir weiter, irgendwo hast'nen Wurm.
Gruß
Pommes
Hallo Pommes
Ja der Fehler wird bestimmt bei mir liegen und ich werde nochmals verschiedene Produkte neu anlegen und dann testen. Im Moment hatte ich mit schon vorhandenen/angelegten Produkten probiert.
Auch werde ich alle Dateien in denen ich den Code eingebaut habe durchsehen.
Normalerweise liegt es daran eigentlich weniger, ich habe einen guten Editor mit dem die Codestellen
lenicht zu finden sind.
Was dann dabei herauskommt schreibe ich auf jeden Fall und wenn ich nicht weiterkomme
melde ich mich.
Danke für den Template [CSS Shop Templates oder Tabellen Shop Templates ]code, werde ich nacher mal testen.
''>ZITAT(Aircalvus @ Jan 14 2008, 18:08) 40497
Was dann dabei herauskommt schreibe ich auf jeden Fall und wenn ich nicht weiterkomme
melde ich mich.[/b]
Tue dir keinen Zwang an.
Notfalls schicke ich dir meine geänderten Dateien, oder du mir deine.
Schaue bitte genau im Quelltext, könnte auch sein, das Du es in einer anderen Zeile höher oder tiefer einbauen musst.
Desswegen habe ich auch immer ca. Zeile xxx geschrieben, da ich Änderungen im Quelltext mancher Dateien habe, durch Erweiterungen.
Wie gesagt, ansonsten mir mal die Dateien schicken und ich schaue es mir mal an.
Gruß
Pommes
Hi Pommes,
ich hab es nun endlich auch eingebaut und schwups kommt ein Fehler.
Parse error: syntax error, unexpected ',' in /webseiten/xxx/includes/modules/product_attributes.php on line 83
Scheint dieser Codschnipsel zu sein:
'BASIC_PRICE' => $products_options['options_values_basic_price'],
Das ganze sieht bei mir so aus:
$products_options_data[$row]['DATA'][$col] = array ('ID' => $products_options['products_options_values_id'], 'TEXT' => $products_options['products_options_values_name'], 'MODEL' => $products_options['attributes_model'], 'PRICE' => $xtPrice->xt-Commerce / xt:CommerceFormat($price, true), 'FULL_PRICE' => $xtPrice->xt-Commerce / xt:CommerceFormat($full, true), 'BASIC_PRICE' => $products_options['options_values_basic_price'], 'PREFIX' => $products_options['price_prefix'], 'PRICE_PLAIN' => $price), 'PRICE_PLAIN' => $price);
********************$module_smarty->assign('DECIMAL_PLACES',$xtPrice->currencies[$xtPrice->actualCurr]['decimal_places']);
********************$module_smarty->assign('THOUSANDS_POINT',$xtPrice->currencies[$xtPrice->actualCurr]['thousands_point']);
********************$module_smarty->assign('DECIMAL_POINT',$xtPrice->currencies[$xtPrice->actualCurr]['decimal_point']);
Kannst Du einen Fehler sehen, ich nicht mehr, es flackert nur noch :blink: .
hat noch jemand die Anleitung ? Ich bekomme einen Fehler, wenn ich den Link von Pommes aufrufe
''>ZITAT(aqua @ Jan 14 2008, 23:26) 40525
Hi Pommes,
ich hab es nun endlich auch eingebaut und schwups kommt ein Fehler.
Parse error: syntax error, unexpected ',' in /webseiten/xxx/includes/modules/product_attributes.php on line 83
Scheint dieser Codschnipsel zu sein:
'BASIC_PRICE' => $products_options['options_values_basic_price'],
Das ganze sieht bei mir so aus:
$products_options_data[$row]['DATA'][$col] = array ('ID' => $products_options['products_options_values_id'], 'TEXT' => $products_options['products_options_values_name'], 'MODEL' => $products_options['attributes_model'], 'PRICE' => $xtPrice->xt-Commerce / xt:CommerceFormat($price, true), 'FULL_PRICE' => $xtPrice->xt-Commerce / xt:CommerceFormat($full, true), 'BASIC_PRICE' => $products_options['options_values_basic_price'], 'PREFIX' => $products_options['price_prefix'], 'PRICE_PLAIN' => $price), 'PRICE_PLAIN' => $price);
********************$module_smarty->assign('DECIMAL_PLACES',$xtPrice->currencies[$xtPrice->actualCurr]['decimal_places']);
********************$module_smarty->assign('THOUSANDS_POINT',$xtPrice->currencies[$xtPrice->actualCurr]['thousands_point']);
********************$module_smarty->assign('DECIMAL_POINT',$xtPrice->currencies[$xtPrice->actualCurr]['decimal_point']);
Kannst Du einen Fehler sehen, ich nicht mehr, es flackert nur noch :blink: .
[/b]
Hi Aqua,
komisch bei Aircalvus gibbet da keine Probs.
Hier noch einmal der Code von mir:
//Neu
****************************************$products_ options_data[$row]['DATA'][$col] = array ('ID' => $products_options['products_options_values_id'], 'TEXT' => $products_options['products_options_values_name'], 'MODEL' => $products_options['attributes_model'], 'PRICE' => $xtPrice->xt-Commerce / xt:CommerceFormat($price, true), 'FULL_PRICE' => $xtPrice->xt-Commerce / xt:CommerceFormat($full, true), 'BASIC_PRICE' => $products_options['options_values_basic_price'], 'PREFIX' => $products_options['price_prefix'], 'PRICE_PLAIN' => $price);
//Neu Ende
Was mir an deinem Code auffällt, das du 2x
'PRICE_PLAIN' => $price
hast, das dürfte auf alle Fälle schon mal eines zu viel sein ;)
Nehme es mal raus und geb bescheid ;)
Gruß
pommes
''>ZITAT(Pommes @ Jan 15 2008, 17:07) 40556
Was mir an deinem Code auffällt, das du 2x
'PRICE_PLAIN' => $price
hast, das dürfte auf alle Fälle schon mal eines zu viel sein ;)
Nehme es mal raus und geb bescheid ;)
[/b]
Hi Pommes,
ok ok, es war schon spät -_- . Nun klappts auch ohne Fehler. Allerdings schau Dir mal das Bild an, warum ist denn das bei mir nicht in dem Dropdown Feld sondern darunter?
Hallo zusammen,
hab hier ein Update gemacht.
Sieht so aus:
Erweiterung Masseinheiten Auswahl (http://anonym.to/?http://www.isteupload.de/p636140-V2Worddukjpg.html)
1. Masseinheit auswählen
2. bisherige Masseinheit
Das bei /je L benötige ich und ist in der Anleitung nicht enthalten.
Sollte es ebenfalls benötigt werden, wird die Code Passage nachgerenicht.
Systemvorraussetzung ist :
Shopversion XT SP2.1 (andere nicht getestet)
Attributen Erweiterung Grundpreisangabe (Angabe auf Liter Preise bei flüssigen Gütern)
Bei Interesse eine PM an mich.
Gruß
Pommes
fairbieter
23.06.2008, 21:38
Hallo zusammen!
So, gefummelt wie blöde, einige Fehler noch nicht ausgemärzt,
aber ich bin auf dem Weg...
Werde noch Fehlermeldungen posten, die mir so aufgefallen sind zu dem Thema.
Hoffe auf Eure Unterstützung!
So, habe nochmal alles auf NULL gesetzt und
fange nocheinmal von Vorne an, da ich die Fehlermeldung
mit dem "include" nicht so ganz verstehe,
anscheinend verweist es auf etwas, was ich nicht habe,
denn wird es auskommentiert // dann ist der Fehler weg.....
''>ZITAT(fairbieter @ Jun 23 2008, 21:38) 52469
Hoffe auf Eure Unterstützung!
So, habe nochmal alles auf NULL gesetzt und
fange nocheinmal von Vorne an, da ich die Fehlermeldung
mit dem "include" nicht so ganz verstehe,
anscheinend verweist es auf etwas, was ich nicht habe,
denn wird es auskommentiert // dann ist der Fehler weg.....
[/b]
Es wäre hilfreich zu wissen welchen Fehler und wo.
Bei mir rattert es ohne Probs.
Hast Du eine unveränderte Shop Version ?
Die Anleitung hier, enstand wärend ich es gemacht hatte und normalerweise stand es auch dabei.
Hab dir per Mail eben die zwei Anleitungen zukommen lassen, gibt es auch hier denke ich mal im Forum zum runterladen.
gruß
Pommes
Stefan_S
27.01.2009, 18:08
Hallo zusammen,
auf der Suche nach einer Lösung zum Anzeigen der Grundpreise einzelner Attribute in XT bin ich hier gelandet. Leider funktioniert der Download-Link von Pommes nicht mehr. Gibt es eine Möglichkeit an die Erweiterung ranzukommen?
Gruß,
Stefan
Autodidakt
28.01.2009, 00:38
''>ZITAT(Stefan_S @ Jan 27 2009, 18:08) 132665
Hallo zusammen,
auf der Suche nach einer Lösung zum Anzeigen der Grundpreise einzelner Attribute in XT bin ich hier gelandet. Leider funktioniert der Download-Link von Pommes nicht mehr. Gibt es eine Möglichkeit an die Erweiterung ranzukommen?
Gruß,
Stefan
[/b]
http://www.siteupload.de/p636140-V2WordDukjpg.html
modellbauer
07.02.2009, 11:29
Hi,
ich suche jetzt schon seit geraumer Zeit eine Möglichkeit der Grundpreisangabe bei den Attributen.
Kann mir jemand helfen. Ich kann leider niemandem eine PN schicken.
Und komme einfach nicht weiter. Die Dateien kann ich auch nicht laden.
Erst wollte ich Pommes eine PN schicken, aber wie gesagt, kann ich das leider nicht.
Es wäre nett, wenn mir jemand helfen könnte. :(
Danke
Grüßle
modellbauer
vBulletin® v3.8.4, Copyright ©2000-2012, Jelsoft Enterprises Ltd.