bikebahnhof Posted April 19, 2008 Report Share Posted April 19, 2008 Hallo, im Support-Bereic gabs leider noch keine Hilfe und da die Zeit ein bisschen drängt versuch ichs auch hier mal ich habe mich jetzt etliche Stunden hier im Forum informiert nur kein Lösung gefunden, die mit weiterhilft. Zum Problem: Ich nutze die Verson 3.04 SP2.1 und versuche mehr oder weniger verzweifelt die Bestandsanzeige in Form der "Ampel" zu integrieren, und zwar bei Artikeln, die über Attribute verfügen. Was ich erreichen möchte ist folgendes: Auf der Produktseite werden die Attribute in einer Tabelle (table_listing.html) wiedergegeben und hinter der jeweiligen Option soll eine Verfügbarkeitsanzeige stehen, die mit dem Bestand der Option verbunden ist. Die Verfügbarkeitsanzeige auf den Produkt-Auflistungsseiten brauche ich nicht, ich möchte nur, dass der Bestand der Optionen in der Attributtabelle in Form einer Grafik angezeigt wird. Vielen Dank im Voraus und Gruß, Mark Edit: Hab mich da grad mal selbst ranversucht mit meinen bescheidenen Kenntnissen...was ich bis jetzt weiß: ich brauche eine Abfrage der Werte der "attributes_stock"-Spalte in der Tabelle "products_attributes" in der MySQL-DB. Welche .php-Dateien muss ich dabei ändern/ergänzen und welche .html-Dateien außer die table_listing.html ? Link to comment Share on other sites More sharing options...
Sidi61 Posted April 19, 2008 Report Share Posted April 19, 2008 Hallo, das was du machen willst wird mit 3.04 nicht gehen da sich über die Attribute ein Artikel multipliziert d.h. 2 Attribute mit jeweils 3 Varianten ergibt 6 Artikel und diesen Bezügen kann kein Lagerbestand zugewiesen werden. In der neuen 3.1 soll es Master / Slave Artikel geben, da wird dies dann sicher gehen. Gruß Link to comment Share on other sites More sharing options...
bikebahnhof Posted April 19, 2008 Author Report Share Posted April 19, 2008 Hallo, das was du machen willst wird mit 3.04 nicht gehen da sich über die Attribute ein Artikel multipliziert d.h. 2 Attribute mit jeweils 3 Varianten ergibt 6 Artikel und diesen Bezügen kann kein Lagerbestand zugewiesen werden. In der neuen 3.1 soll es Master / Slave Artikel geben, da wird dies dann sicher gehen. Gruß Hallo, was ich meine sind natürlich die Bestände der Optionswerte, Beispiel: Artikel: T-Shirt A Attribut: Größe/Farbe (<- EIN Attribut) Option: S/Blau; M/Blau; S/Rot; M/Rot Und an der jeweiligen Option hängt ein Bestand der ja auch in der mysql-datenbank einzusehen ist und somit irgendwie einzubinden sein muss (...zumindest denke ich das mit meinem nicht wirklich existenten Wissen im Bereich PHP und MySQL ) Link to comment Share on other sites More sharing options...
ArnieW Posted April 23, 2008 Report Share Posted April 23, 2008 Ich bastel daran nun auch ein e Weile, da ich nichts hier im Support bereich finden kann. Aber leider habe ich bisher kein erfolg damit. Fuer die Product attribute ist die product_attribute.php zustaendig. Dort wird in der Datenbank abfrage auch der Lagerbesatnd beruecksichtigt: $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 from ".TABLE_PRODUCTS_ATTRIBUTES." pa, ".TABLE_PRODUCTS_OPTIONS_VALUES." pov where pa.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] [b]pa.attributes_stock[/b] Jedoch wird die abfrage dann nicht weiter bearbeitet. Ich habe folgendes versucht: [code]while ($products_options = xtc_db_fetch_array($products_options_query,true)) { $price = ''; if ($_SESSION['customers_status']['customers_status_show_price'] == '0') { $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'], [B][COLOR="Red"]'STOCK' => $products_options['attributes_stock'][/COLOR][/B], 'PRICE' => '', 'FULL_PRICE' => '', 'PREFIX' => $products_options['price_prefix']); } else { if ($products_options['options_values_price'] != '0.00') { $price = $xtPrice->xtcFormat($products_options['options_values_price'], false, $product->data['products_tax_class_id']); } [/code] Ich moechte, das hinter dem Attribut namen "no stock" angezeigt wird, wenn der Lagerbestand 0 ist. Im product option templet habe ich also folgendes eingefuegt: [code]<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} [B][COLOR="Red"]{if ($item_data.STOCK)<='0'}no stock{/if}[/COLOR][/B]</option>[/code] Leider funktioniert das nicht. Vielleicht kann jemand ja sehen, was ich falsch mache oder hat eine bessere Idee. Danke Arnie Link to comment Share on other sites More sharing options...
Hetfield Posted April 23, 2008 Report Share Posted April 23, 2008 Hallo! Meinst Du sowas: http://www.moda24.de/Damen/Shirts/Ed-Hardy-Damen-Potassium-Shirt-2007-USCG::315.html (hier in der Dropdownansicht) MfG Hetfield Link to comment Share on other sites More sharing options...
ArnieW Posted April 23, 2008 Report Share Posted April 23, 2008 Hi Hetfield Ja so in etwa habe ich es mir vorgestellt. Hast du mir den code dafuer? Link to comment Share on other sites More sharing options...
Hetfield Posted April 24, 2008 Report Share Posted April 24, 2008 Kein Thema! Du hattest es ja schon fast! Aber hier nochmal als Anleitung auch für die anderen User: Wichtig: Vorher immer die alten Dateien sichern! Schritt 1: In der Datei includes/modules/product_attributes.php sucht ihr 2x nach folgendem Code: 'MODEL' => $products_options['attributes_model'],und fügt nach dem Komma folgendes ein: 'STOCK' => $products_options['attributes_stock'],Schritt 2: In den Templatedateien für die product_options (table_listing.html, product_options_dropdown.html, product_options_selection.html o.ä.) fügt ihr am Anfang der Datei folgende Zeile ein: {config_load file="$language/lang_$language.conf" section="product_info"}und danach sucht ihr jeweils nach {if $item_data.PRICE !='' }{$item_data.PREFIX} {$item_data.PRICE}{/if}und fügt danach folgendes ein (dies ist individuell anpassbar): {if $item_data.STOCK <='0' } ({#text_ampel_1#}) {elseif $item_data.STOCK <='2' } ({#text_ampel_2#}) {elseif $item_data.STOCK >='3' } ({#text_ampel_3#}) {/if}[/php][b]Schritt 3:[/b] In den Sprachdateien des Shops (z.B. lang_german.conf usw.) sucht ihr nach [php][product_info]und fügt danach dann dies ein (dies ist individuell anpassbar): text_ampel_1 = 'Derzeit nicht lieferbar' text_ampel_2 = 'Nur wenige Artikel auf Lager' text_ampel_3 = 'Artikel auf Lager'[/php][b]Schritt 4:[/b] Fertig und freuen! MfG Hetfield Link to comment Share on other sites More sharing options...
Torx-Helme Posted May 8, 2008 Report Share Posted May 8, 2008 Hallo, ich würde gern auf die Lagerampel verzichten, doch habe ich das Problem, dass bei meinen Attributartikeln, egal ob am Lager oder nicht, generell gesagt wird er wäre nicht am Lager. Nachdem ich die Menge im Artikel (nicht Attribut) geändert habe, erfolgt aber auch keine Bestandswarnung mehr wenn ein Artikel nicht am Lager ist. Bei dem Moda24 Shop ist das nicht der Fall. Kann mir jemand sagen, wo und was geändert werden muss, dass diese Funktion auch richtig arbeitet...??? zum testen www.torx-helme.de Link to comment Share on other sites More sharing options...
Torx-Helme Posted May 10, 2008 Report Share Posted May 10, 2008 kann mir hier jemand helfen? hätte doch gern eine funktionierende lagerverwaltung... Link to comment Share on other sites More sharing options...
ArnieW Posted May 26, 2008 Report Share Posted May 26, 2008 Hi Hetfield Spaet aber doch! Vielen Dank fuer deine Hilfe. Es funktioniert. Damit hast du mir sehr geholfen, denn es ging mir auf den Senkel. das der Kunde erst ein Attribute in der warenkorb legen muss befor er sehen kann ob es ueberhaupt haben kann. BIG BIG Thank you Arnie Link to comment Share on other sites More sharing options...
Primus2007 Posted May 27, 2008 Report Share Posted May 27, 2008 Das ist eine sehr interessante Funktion. Habe das bei mode 24 mal getestet. Was mir allerdings nicht gefällt, ist das man das Produkt wo nicht lieferbar ist trotzdem in den Warenkorb legen kann. Was mir besser gefallen würde, wäre wenn die Funktion die Größe die nicht lieferbar ist aus dem dropdown feld rausnimmt. Somit kann der Kunde das auch nicht in den warenkorb legen. Weis jemand wie man die funktion so umschreiben kann?? Link to comment Share on other sites More sharing options...
kaktus82 Posted June 4, 2008 Report Share Posted June 4, 2008 text_ampel_1 = 'Derzeit nicht lieferbar' text_ampel_2 = 'Nur wenige Artikel auf Lager' text_ampel_3 = 'Artikel auf Lager' Hy hetfield ... vielen Dank für die Hilfe. Hat alles soweit gefunkt außer das wenn kein artikel mehr auf lager ist "Derzeit nicht lieferbar" und danneben "Nur wenige Artikel auf Lager" neben dem gleichen Attribut steht. Hab alles durchforst und konnte nichts finden. Hat jemand einen Tipp?? Liebe Grüsse und danke mal... Link to comment Share on other sites More sharing options...
Schwab Alex Posted June 24, 2008 Report Share Posted June 24, 2008 Ich habe das gleiche Problem. Hat jemand hierfür eine Lösung gefunden? Link to comment Share on other sites More sharing options...
Hetfield Posted June 24, 2008 Report Share Posted June 24, 2008 Sorry, hatte hier anstatt elseif nur if geschrieben. Kann passieren. Muss natürlich so lauten in den Templatedateien für die product_options: {if $item_data.STOCK <='0' } ({#text_ampel_1#}) {elseif $item_data.STOCK <='2' } ({#text_ampel_2#}) {elseif $item_data.STOCK >='3' } ({#text_ampel_3#}) {/if}[/php]MfG Hetfield Link to comment Share on other sites More sharing options...
Schwab Alex Posted June 25, 2008 Report Share Posted June 25, 2008 Danke für die schnelle Antwort, wie heißt es so schön, den Wald vor lauter Bäumen nicht gesehen. Link to comment Share on other sites More sharing options...
Waayne Posted August 3, 2008 Report Share Posted August 3, 2008 Hallo Hetfield, vielen Dank für den Code!! Habe noch eine Frage. Könnte man das auch so einrichten das Artikel die nicht auf Lager sind (0) zwar als solche deklariert werden aber dann halt auch nicht ausgewählt werden können? Ich find das ok wenn es dort steht nur das der Kunde die Artikel dann noch in den Warenkorb schieben kann ist schlecht. Wie ist das eigentlich im Originalzustand? Gleich nochmal testen Gruß EDIT: Soo nochmal nachgeschaut. Das geht auch in der "original" Version nicht. Da kann man ja dann im Adminbereich einstellen ob der Kunde die Artikel kaufen kann oder nicht. Nur finde ich es eigentlich unlogisch warum der Kunde die Artikel trotzdem noch in den Warenkorb schieben kann um dann hinterher rumeditieren zu müssen, um letzendlich noch eine Bestellung auszuführen. Leider bin ich nicht der "Ober-Crack" was das Programmieren angeht aber theoretisch könnte man doch eine Abfrage entweder in der "product_attributes.php" oder besser noch in den "product_options" Templates einbauen. Abgefragt wird dann ob der Artikel noch auf Lager ist. Ist dies der Fall wird der Radio-Button angezeigt ELSE wird der nicht angezeigt. Somit könnte man diesen halt auch nicht auswählen und die Geschichte würde supertoll ausgehen Was meint Ihr? Link to comment Share on other sites More sharing options...
Waayne Posted August 4, 2008 Report Share Posted August 4, 2008 Haha... Schulterklopf ... PREMIERE!!! Ich habe rumgetüfftelt und es hinbekommen. Will euch dies natürlich nicht vorenthalten! Also es ist ganz einfach zu machen: Es handelt sich um eine einfache IF - ELSE Abfrage Ich nutze das Tablelisting Template für die Attribute. Dort habt Ihr ja das FOREACH und genau dahinter kommt die Abfrage! Sie siehts bei mir aus {foreach key=key_data item=item_data from=$options_data.DATA} [B]{if $item_data.STOCK <='0' }[/B] <tr> <td width="15"> <input type="radio" name="id[{$options_data.ID}]" disabled value="{$item_data.ID}" /> </td> <td>{$item_data.TEXT}</td> <td align="left">{if $item_data.MODEL} {$item_data.MODEL}{/if}</td> <td align="left">{if $item_data.PRICE} {$item_data.PREFIX}{$item_data.PRICE} {/if} [B]{if $item_data.STOCK <='0' } {#text_ampel_1#}{/if}[/B]</td> </tr> [B]{else}[/B] <tr> <td width="15"> {php} $count++; if ($count==1) { {/php}{if $item_data.PRICE == ""} <input type="radio" name="id[{$options_data.ID}]" value="{$item_data.ID}" checked="checked" /> {else} <input type="radio" name="id[{$options_data.ID}]" value="{$item_data.ID}" /> {/if}{php} } else { {/php} <input type="radio" name="id[{$options_data.ID}]" value="{$item_data.ID}" /> {php} } {/php}</td> <td>{$item_data.TEXT}</td> <td align="left">{if $item_data.MODEL} {$item_data.MODEL}{/if}</td> <td align="left">{if $item_data.PRICE} {$item_data.PREFIX}{$item_data.PRICE} {/if} [B]{if $item_data.STOCK <='2' } {#text_ampel_2#} {elseif $item_data.STOCK >='3' } {#text_ampel_3#} {/if}[/B]</td> </tr> {/if} {/foreach} Habe zusätlich noch den inaktiven Button "entcheckt" also einfach im Input Part das checked rausnehmen. {/php}{if $item_data.PRICE == ""} <input type="radio" name="id[{$options_data.ID}]" value="{$item_data.ID}" [U][B][COLOR="Red"]checked="checked"[/COLOR][/B][/U] /> {else} Frage die ich jetzt noch habe, wie kann ich das einstellen das einfach der unterste Button gechecked ist? Irgendwie ist jetzt nämlich nichts mehr gecheckt. Desweiteren wäre da noch die Frage ob das so Sinn macht wie ich es gemacht habe oder ob der Kunde den Artikel trotzdem noch in den Warenkorb bekommt. Kann sein das ich was übersehen habe und frage nochmal in die Runde. Wünsch euch nen schönen Wochenstart! LG Link to comment Share on other sites More sharing options...
Waayne Posted August 14, 2008 Report Share Posted August 14, 2008 Frage die ich jetzt noch habe, wie kann ich das einstellen das einfach der unterste Button gechecked ist? Irgendwie ist jetzt nämlich nichts mehr gecheckt. Link to comment Share on other sites More sharing options...
sots2 Posted April 29, 2009 Report Share Posted April 29, 2009 Hallo! Meinst Du sowas: http://www.moda24.de/Damen/Shirts/Ed-Hardy-Damen-Potassium-Shirt-2007-USCG::315.html (hier in der Dropdownansicht) MfG Hetfield Danke für diese kleine, aber feine Erweiterung. Genau das was ich suchte. Wie bekomme ich jetzt die die Hintergründe farbig, grün für Verfügbarkeit, gelb für wenig auf Lager und z.B. rot für ausverkauft? Danke schonmal im voraus Link to comment Share on other sites More sharing options...
psicomaniac Posted July 4, 2009 Report Share Posted July 4, 2009 danke auch für das nette gimmick. Aber ich habe das so gemacht das ich anstatt den satz nur noch wenige Artikel die Anzahl reinschreibe. Also so z.B: text_ampel_1 = 'Derzeit nicht lieferbar' text_ampel_2 = '1 Stk auf Lager' text_ampel_3 = '2 Stk auf Lager' text_ampel_4 = '3 Stk auf Lager' text_ampel_5 = '4 Stk auf Lager' text_ampel_6 = '5 Stk auf Lager' text_ampel_7 = '5+ Stk auf Lager' mfg psico Link to comment Share on other sites More sharing options...
phonk Posted September 8, 2009 Report Share Posted September 8, 2009 Frage die ich jetzt noch habe, wie kann ich das einstellen das einfach der unterste Button gechecked ist? Irgendwie ist jetzt nämlich nichts mehr gecheckt. In der Dropbox habe ich dein Problem so gelöst: {config_load file="$language/lang_$language.conf" section="product_info"} {if $options!=''} <table width="100" border="0" cellspacing="0" cellpadding="0"> {foreach name=outer item=options_data from=$options} <tr> <td class="main"><b>{$options_data.NAME}:</b> </td> <td> <select name="id[{$options_data.ID}]"> {foreach key=key_data item=item_data from=$options_data.DATA} <option value="{$item_data.ID}" [B]{if $item_data.STOCK <='0' }disabled="disabled"{/if}[/B]>{$item_data.TEXT} {if $item_data.PRICE !='' }{$item_data.PREFIX} {$item_data.PRICE}{/if} {if $item_data.STOCK <='0' } ({#text_ampel_1#}) {elseif $item_data.STOCK <='1' } ({#text_ampel_2#}) {elseif $item_data.STOCK <='2' } ({#text_ampel_3#}) {elseif $item_data.STOCK <='3' } ({#text_ampel_4#}) {elseif $item_data.STOCK <='4' } ({#text_ampel_5#}) {elseif $item_data.STOCK <='5' } ({#text_ampel_6#}) {elseif $item_data.STOCK >='5' } ({#text_ampel_7#}) {/if} </option> {/foreach} </select> </td> </tr> {/foreach} </table> {/if} Gruß Phonk Link to comment Share on other sites More sharing options...
xtpeter Posted November 20, 2009 Report Share Posted November 20, 2009 Hi! Ich habs x mal geprüft und trotz implementierung exakt nach Hetfields Anleitung bekomme ich folgende Fehlermeldung: Fatal error: Smarty error: [in pk1/module/product_options/product_options_count20.html line 4]: syntax error: unrecognized tag: config_load file="german/lang_german.conf" section="product_info" (Smarty_Compiler.class.php, line 439) in /is/htdocs/wp1100535_HD5SVM7POQ/www/shop/includes/classes/Smarty_2.6.14/Smarty.class.php on line 1095 Ich hab die options mal angehängt. Hab ich irgendwas nicht beachtet? Merci vielmals, Peterproduct_options_count20.html Link to comment Share on other sites More sharing options...
xtpeter Posted December 11, 2009 Report Share Posted December 11, 2009 Hi! Ich häng noch immer an dem selben Problem. Die Fehlermeldung dito. Hat niemand nen Tip? Gruß, Peter Link to comment Share on other sites More sharing options...
Hetfield Posted December 11, 2009 Report Share Posted December 11, 2009 Die Datei wurde mit Microsoft Office bearbeitet und gespeichert und deshalb ist die ganze Datei im Quellcode total zerstört. Bitte einen geeignetem Quellcode-Editor (z.B. Notepad) zur Bearbeitung benutzen. MfG Hetfield Link to comment Share on other sites More sharing options...
xterror Posted January 13, 2010 Report Share Posted January 13, 2010 Hallo Hetfield habe auch versucht dies um zu setzen möchte aber keine Ampel sondern nur die Anzahl der vorhandenen Attribute wie z.b. Blau 100, Gelb 60 was muß ich ändern um den Eintag aus der Datenbank laden zu können in den Option:confused: über Antwort würde ich mich freuen. Mfg Stephan Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.