Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Attribute mit langer Beschreibung keine Art. Nr.

    piru

    • Fördermitglied
    • Beiträge: 1.263
    • Geschlecht:
    Attribute mit langer Beschreibung keine Art. Nr.
    am: 06. Januar 2016, 12:21:30
    Hallo,

    ich habe ein paar Art. wo das Attribut relativ lang ist (dafür habe ich sogar products_options_values.products_options_values_name von varchar(64) auf varchar(255) erweitert), und wenn der Fall ist dass diese Feld lang ist wird in der Bestellung (Mail) die Attribut Nummer nicht ausgedruckt (nur die Artikel Nummer).

    Ist das zu verstehen so wie ich das erklärt habe oder soll ich Screenshoots machen?

    Gruß piru

    Linkback: https://www.modified-shop.org/forum/index.php?topic=34135.0

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: Attribute mit langer Beschreibung keine Art. Nr.
    Antwort #1 am: 06. Januar 2016, 13:56:16
    Schau Dir mal die Tabelle orders_products_attributes an! Insbesondere das Feld products_options_values

    piru

    • Fördermitglied
    • Beiträge: 1.263
    • Geschlecht:
    Re: Attribute mit langer Beschreibung keine Art. Nr.
    Antwort #2 am: 06. Januar 2016, 14:37:47
    ja ok, der Text ist auch nicht komplett, ich kann diese Feld auch eränzen, aber was ich meine dass nicht gedruckt wird ist die Art. Nr., nicht der Text

    EDIT: was nicht gedruckt wird ist die products_attributes.attributes.model

    In den anderen Fällen wo der Text nicht so lang ist klappt gut

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Attribute mit langer Beschreibung keine Art. Nr.
    Antwort #3 am: 10. Januar 2016, 12:42:26
    Hallo piru,

    wenn Du in der Tabelle 'products_options_values' die Spalte 'products_options_values_name' von varchar(64) auf varchar(255) erweitert hast, musst Du in der Tabelle 'orders_products_attributes' die Spalte 'products_options_values' auch von varchar(64) auf varchar(255) erweitern.

    Obiges gilt grundsätzlich, ob es den Fehler den Du beschrieben hast behebt weiss ich nicht.

    Gruss
    Hanspeter

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Attribute mit langer Beschreibung keine Art. Nr.
    Antwort #4 am: 10. Januar 2016, 21:16:52
    Nachtrag:
    Jetzt habe ich den Fehler untersucht und herausgefunden, das wenn die Spaltenlängen nicht gleich sind, dies dazu führen kann, das die 'attributes_model' in der 'inc/xtc_get_attributes_model.inc.php' bei folgendem Code
    Code: PHP  [Auswählen]
    pov.products_options_values_name = '".addslashes($attribute_name)."' AND
    nicht gefunden wird und deshalb z.B. in der Bestellmail aber auch in der Administration bei den Bestellungen sowie beim Drucken der Rechnung oder des Lieferscheins fehlt.

    Gruss
    Hanspeter

    hendrik

    • Experte
    • Beiträge: 2.038
    Re: Attribute mit langer Beschreibung keine Art. Nr.
    Antwort #5 am: 10. Januar 2016, 23:39:40
    Ich hab neulich auch so ein Problem gehabt und es völlig anders gelöst. Es war nur ein spezielles Attribut was längeren Text haben sollte. Hab den Attributtext in die Sprachdateien geschrieben. lang/german/german.php, lang/english/ihr wisst schon.

    Code: PHP  [Auswählen]
    define( 'GLM_REF_INX_0', "
      lorem ipsum
      infernale
      alka selzer
      caramba sole
      mio
      grappa
    "
    );

    define( 'GLM_REF_INX_1', "
      lorem ipsum
      infernale
      alka selzer
      caramba sole
      mio
      ramazotti
     
            "
    );

    define( 'GLM_REF_INX_2', "
      lorem ipsum
      infernale
      alka selzer
      caramba sole
      mio
      gorbatschow
            "
    );
     

    Dann hab ich in application_top ein paar Konstanten definiert.

    Code: PHP  [Auswählen]
    define('GLM_EXT_OPT_ID', 3 );  // Opt.ID der erweiterten Attributdarstellung
    define( 'GLM_REF_INX_0_ATTR_ID', 7 );   // Attribut ID
    define( 'GLM_REF_INX_1_ATTR_ID', 8 );   // Attribut ID
    define( 'GLM_REF_INX_2_ATTR_ID', 9 );   // Attribut ID
     

    Und hier mein umgeschriebenes table_listing.html -Template.

    Code: XML  [Auswählen]
    {if $options != ''}
      <table width="100%"  border="0" cellpadding="0" cellspacing="0">
        {foreach name=outer item=options_data from=$options}
          <tr>
            <td style="border-bottom: 1px solid;" colspan="4"><strong>{$options_data.NAME}:</strong></td>
          </tr>
          {foreach name=inner key=key_data item=item_data from=$options_data.DATA}
            <tr class="{cycle values="tableListingI,tableListingII"}">
              <td style="vertical-align: top;">
                {if $smarty.foreach.inner.iteration == 1}
                  <input type="radio" name="id[{$options_data.ID}]" id="{$item_data.ID}" value="{$item_data.ID}" checked="checked" />
                {else}
                  <input type="radio" name="id[{$options_data.ID}]" id="{$item_data.ID}" value="{$item_data.ID}" />
                {/if}
              </td>
             
              {* // --- bof -- erweiterte Attributtexte  ------------------------ *}
              {if $options_data.ID==$smarty.const.GLM_EXT_OPT_ID}
                <td colspan="2">
                  {if $item_data.ID==$smarty.const.GLM_REF_INX_0_ATTR_ID}{$smarty.const.GLM_REF_INX_0}{/if}            
                  {if $item_data.ID==$smarty.const.GLM_REF_INX_1_ATTR_ID}{$smarty.const.GLM_REF_INX_1}{/if}            
                  {if $item_data.ID==$smarty.const.GLM_REF_INX_2_ATTR_ID}{$smarty.const.GLM_REF_INX_2}{/if}            
                </td>
                <td align="right">{$item_data.PREFIX}{$item_data.PRICE}</td>
              {else}
                <td><label for="{$item_data.ID}">{$item_data.TEXT}<br />ArtNr.: {$item_data.MODEL}</label></td>
                <td>&nbsp;</td>
                <td align="right">{if $item_data.FULL_PRICE}{$item_data.FULL_PRICE}{elseif $item_data.PRICE}{$item_data.PREFIX}{$item_data.PRICE}{/if}</td>
              {/if}
              {* // --- eof -- erweiterte Attributtexte  ------------------------ *}
            </tr>
          {/foreach}
        {/foreach}
      </table>
    {/if}        

     

    Das Beispiel hat eine Option mit 3 Attributen. (Z.B. "Farbe" und "rot, gelb, grün"). Code einbauen. Option und Attribut anlegen, sofern nicht schon geschehen. Und IDs notieren.
    options_id und attribute_id's. Eintragen in die o.g. Defines.
    Artikel anlegen mit den Attributen versehen und als Options-Template das angepasste Template wählen (table_listing.html).

    Gruß
    Hen

    piru

    • Fördermitglied
    • Beiträge: 1.263
    • Geschlecht:
    Re: Attribute mit langer Beschreibung keine Art. Nr.
    Antwort #6 am: 11. Januar 2016, 14:00:44
    @hendrik, danke, aber ich finde die Lösung zu kompliziert wenn ich viele Art. pflegen muss, dann muss in jedem Update des Shops das dazu auch noch pflegen... ich dachte ging mit einem Fix so zB wie hier...

    Gruß piru

    piru

    • Fördermitglied
    • Beiträge: 1.263
    • Geschlecht:
    Re: Attribute mit langer Beschreibung keine Art. Nr.
    Antwort #7 am: 11. Januar 2016, 14:02:36
    wenn Du in der Tabelle 'products_options_values' die Spalte 'products_options_values_name' von varchar(64) auf varchar(255) erweitert hast, musst Du in der Tabelle 'orders_products_attributes' die Spalte 'products_options_values' auch von varchar(64) auf varchar(255) erweitern.

    ich werde das testen, danke

    Gruß piru

    EDIT: getestet und das war die Lösung, funktioniert perfekt! Und danke auch @Bonsai, du hattest die ganze Gedanken.

    Gruß piru
    10 Antworten
    5262 Aufrufe
    28. August 2012, 08:58:21 von Nessy
    10 Antworten
    6388 Aufrufe
    10. August 2010, 11:51:05 von bellagio
    4 Antworten
    3744 Aufrufe
    28. November 2011, 16:42:18 von Tomcraft