Posts Tagged ‘Lt’

Einladung zur xt:Commerce OFFICE Roadshow in Wien/Salzburg

Der Artikel “Einladung zur xt:Commerce OFFICE Roadshow in Wien/Salzburg” wird bereitgestellt von:
xt:Commerce Shopsoftware Blog

xt:Commerce lädt am 06.12.2011 (Wien) und 07.12.2011 (Salzburg) Kunden, Interessenten sowie Partner und Agenturen zu einer Roadshow rund um das Thema E-Commerce ein.

Jeder Teilnehmer erhält ein Paket xt:Commerce Office kostenfrei (1 User xt:Commerce Office, inkl. Datenbank, Schnittstelle zu xt:Commerce 4 und einen xt:Commerce 4 CE Shop) Die Teilnehmeranzahl ist auf maximal 50 Teilnehmer beschränkt.

Eckdaten für unsere Veranstaltung:

06.12. Wien: Hotel Holiday Inn Vienna-South, Hertha-Firnberg-Str. 5, A-1100 Wien
07.12. Salzburg: Radisson Blu, Fanny-von-Lehnert-Str. 7, A-5020 Salzburg

Die Veranstaltungen beginnen jeweils um 14:00 Uhr und sind bis 18:00 Uhr angesetzt.

Zur Anmeldung

Template-Anpassung

Der Artikel “Template-Anpassung” wird bereitgestellt von:
BuI Hinsche GmbH – Softwareentwicklung und Design. Plugins, Module, Templates

Um den Merkzettel anzuzeigen, fügen Sie in den folgenden Dateien an gewünschter Stelle die jeweiligen Codes ein.

Datei:
index.html

Einzufügender Code:
{box name=bui_watchlist type=user}

Datei:
…/xtCore/pages/product/product.html

Einzufügender Code (erzeugt einen Button):
{if $bui_watchlist_link}<a class="thickbox" href="{$bui_watchlist_link}">{button text=$smarty.const.BUTTON_ADD_BUI_WATCHLIST file='button_add_to_watchlist.gif' btn_template='tpl_button_2.gif' space_left='25'}</a>{/if}

Datei:
…/xtCore/pages/product_listing/product_listing_v1.html

Einzufügender Code (erzeugt einen Button):
{if $module_data.bui_watchlist_link}<a class="thickbox" href="{$module_data.bui_watchlist_link}">{button text=$smarty.const.BUTTON_ADD_BUI_WATCHLIST file='button_add_to_watchlist.gif' btn_template='tpl_button_2.gif' space_left='25'}</a>{/if}

Datei-Anpassung

Der Artikel “Datei-Anpassung” wird bereitgestellt von:
BuI Hinsche GmbH – Softwareentwicklung und Design. Plugins, Module, Templates

Anpassung der .htaccess

Datei: /plugins/.htaccess

Fügen Sie folgenden Code unten an:

<Files frame.php>
Order Allow,Deny
Allow from all
</Files>

Template-Anpassung

Datei: /templates/IHR_TEMPLATE/xtCore/pages/checkout/subpage_success.html

Fügen Sie folgenden Code unten an:

{literal}
<script type="text/javascript">
<!--
if(top.lpg){
top.lpg.close("{/literal}{link page='checkout' paction=success conn=SSL}{literal}");
}
-->
</script>
{/literal}

Datei: /templates/IHR_TEMPLATE/xtCore/pages/checkout/subpage_payment.html

Fügen Sie folgenden Code unten an:

{literal}
<script type="text/javascript">
<!--
if(top.lpg){
top.lpg.close("{/literal}{link page='checkout' paction='payment' params='error=ERROR_PAYMENT' conn=SSL}{literal}");
}
-->
</script>
{/literal}

Datei: /templates/IHR_TEMPLATE/xtCore/pages/checkout/subpage_confirmation.html

Fügen Sie folgenden Code unten an:

{literal}
<script type="text/javascript" src="https://content.billsafe.de/lpg/js/client.js"></script>

<script type="text/javascript">
<!--
var formElement = document.getElementById('form_process');

var lpg = new BillSAFE.LPG.client({
form: formElement,
conditions: [{element: 'billsafe', value: '1'}],
sandbox: {/literal}{$smarty.const.VT_BILLSAFE_SANDBOX}{literal}
});
//-->
</script>
{/literal}

Ersetzen Sie folgende Zeile:

{form type=form name=process action='checkout' method=post conn=SSL}

durch folgende Zeilen:

{php}
if($_SESSION['selected_payment'] == 'vt_billsafe') {
{/php}
{form type=form name=process action='checkout' link_params='page_action=process' method=post conn=SSL id="form_process"}
{form type=hidden name=billsafe value=true}
{php}
} else {
{/php}
{form type=form name=process action='checkout' method=post conn=SSL}
{php}
}
{/php}

Optionale Template-Änderungen

Die Zahlunsgauswahlseiten-Box für BillSAFE lässt sich mit folgender Datei ändern:
/vt_billsafe/templates/vt_billsafe_payment.html

Das Template des Bestellung bearbeiten im Admin lässt sich mit folgender Datei anpassen: /vt_billsafe/templates/xtCore/pages/vt_billsafe_orderEdit.html

Template-Anpassung

Der Artikel “Template-Anpassung” wird bereitgestellt von:
BuI Hinsche GmbH – Softwareentwicklung und Design. Plugins, Module, Templates

Damit alle Funktionen des Plugins genutzt werden können, müssen Sie Ihr Template anpassen. Die folgenden Angaben gehen vom Standard-Template aus.

Box, Button oder Link zur Bundle-Übersicht


09a-bundle-gruppen-frontend-box

Sie können eine Box, einen Button oder einen Link einfügen, die zur Übersichtseite mit allen Bundles verweisen. Boxen enthalten außerdem noch Verweise zu den einzelnen Bundles.

Der Screenshot oben zeigt eine Box. Darin verweist der Box-Titel zur Bundle-Übersicht und der Bundle-Titel 3 zu 2! direkt zum gleichnamigen Bundle.

Eine Box rufen Sie in der Datei

/templates/IHR_TEMPLATE/index.html

mit folgenden Code auf:

{box name=vt_special_sale_assortments type=user}

Einen Button rufen Sie an beliebiger Stelle mit folgenden Code auf:

<a href="{link page=$smarty.const.VT_SPECIAL_SALE_ASSORTMENTS_PAGE_SEO}"> {button text=TEXT_VT_SSA_SHOW_GROUPS file='button_vt_ssa_back_to_groups.gif'}</a>

Einen Link rufen Sie an beliebiger Stelle mit folgendem Code auf:

<a href="{link page=$smarty.const.VT_SPECIAL_SALE_ASSORTMENTS_PAGE_SEO}"> {txt key=TEXT_VT_SSA_SHOW_GROUPS}</a>

Anzeige in den Produkt-Details


10-bundle-gruppen-frontend-produktdetails

Um den Gruppen-Namen, die Gruppen-Kurzbeschreibung und das Gruppen-Bild bei den Produkt-Details anzuzeigen, fügen Sie in folgender Datei:

/templates/IHR_TEMPLATE/xtCore/pages/product/product.html

diesen Code ein:


{if $special_sale_group}
{if $special_sale_group.ssag_name}{$special_sale_group.ssag_name}<br />{/if}
{if $special_sale_group.ssag_short_desc}{$special_sale_group.ssag_short_desc}<br />{/if}
{if $special_sale_group.ssag_image}{img img=$special_sale_group.ssag_image type=m_thumb alt=$special_sale_group.ssag_name}{/if}
{/if}

Anzeige im Produktlisting

Um den Gruppen-Namen, die Gruppen-Kurzbeschreibung und das Gruppen-Bild im Produkt-Listing anzuzeigen, fügen Sie in folgender Datei:

/templates/IHR_TEMPLATE/xtCore/pages/product_listing/product_listing_v1.html

diesen Code ein:


{if $module_data.special_sale_group}
{if $module_data.special_sale_group.ssag_name}{$module_data.special_sale_group.ssag_name}<br />{/if}
{if $module_data.special_sale_group.ssag_short_desc}{$module_data.special_sale_group.ssag_short_desc}<br />{/if}
{if $module_data.special_sale_group.ssag_image}{img img=$module_data.special_sale_group.ssag_image type=m_thumb alt=$module_data.special_sale_group.ssag_name}{/if}
{/if}

Bundle-Artikel im Warenkorb


11-bundle-gruppen-frontend-warenkorb

Um die Bundle-Artikel im Warenkorb zusammen anzuzeigen und zu berechnen, suchen Sie in folgender Datei:

/templates/IHR_TEMPLATE/xtCore/pages/cart.html

nach folgendem Code (der von Template zu Template differieren kann):


{foreach name=aussen item=data from=$cart_data}
<tr class="{cycle values="contentrow1,contentrow2"}">
<td class="left">{form type=text name=qty[] value=$data.products_quantity style='width:30px;'}</td>
<td class="left">
<strong><a href="{$data.products_link}">{$data.products_name}</a></strong>
{if $data.shipping_status}<br /><p class="shippingtime">{txt key=TEXT_SHIPPING_STATUS}&nbsp;{$data.shipping_status}</p>{/if}
<td class="right">{$data.products_price.formated}</td>
<td class="right">{$data.products_final_price.formated}</td>
<td class="right">
{form type=hidden name=products_key[] value=$data.products_key}
{form type=checkbox name=cart_delete[] value=$data.products_key}</td>
</tr>
{$data.products_information}
{/foreach}

und ersetzen Sie ihn durch diesen neuen Code:


{*Dies ist zum Anzeigen der Bundles*}
{assign var=ssag_bundle_head value=''}
{foreach name=aussen item=data from=$cart_data}
{if $data.ssag_bundle_id && $ssag_bundle_head != $data.ssag_bundle_id}
{assign var=ssag_bundle_head value=$data.ssag_bundle_id}
{cycle assign=ssag_bundle_head_row name="bundle_cart" values="contentrow1,contentrow2" print=false}
<tr class="{$ssag_bundle_head_row}">
<td class="left">
{form type=text name=bla value=1 style='width:30px; background:#CCCCCC;' params="readonly='true'"}
</td>
<td class="left" width="30%">
<strong>{$data.ssa_group.ssag_name} {$data.ssag_bundle}</strong>
</td>
<td class="right">{$data.ssa_group.ssap_price.formated}</td>
<td class="right">{$data.ssa_group.ssap_price.formated}</td>
<td class="right"></td>
</tr>
{if $data.ssa_group.ssag_short_desc}
<tr class="{$ssag_bundle_head_row}">
<td> </td>
{*if $data.ssa_group.ssag_image}
<td>{img img=$data.ssa_group.ssag_image type=m_thumb alt=$data.ssa_group.ssag_name}</td>
<td class="left" colspan="2" valign="top">
{else*}
<td class="left" colspan="3">
{*/if*}
{$data.ssa_group.ssag_short_desc}
</td>
<td></td>
</tr>
{/if}
{/if}
{if $data.ssag_bundle_id && $ssag_bundle_head == $data.ssag_bundle_id}
<tr class="{$ssag_bundle_head_row}">
<td class="left">
{form type=hidden name=qty[] value=$data.products_quantity style='width:30px; background:#CCCCCC;' params="readonly='true'"}
</td>
<td class="left">
<strong><a href="{$data.products_link}">{$data.products_name}</a></strong>
{if $data.shipping_status}<br /><p class="shippingtime">{txt key=TEXT_SHIPPING_STATUS}&nbsp;{$data.shipping_status}</p>{/if}
<td class="right">{*$data.products_price.formated*}</td>
<td class="right">{*$data.products_final_price.formated*}</td>
<td class="right">{form type=hidden name=products_key[] value=$data.products_key}{form type=checkbox name=cart_delete[] value=$data.products_key}</td>
</tr>
{/if}
{/foreach}

{*Dies ist zum Anzeigen der Normalen Artikel*}
{foreach name=aussen item=data from=$cart_data}
{if !$data.ssag_bundle}
<tr class="{if $ssag_bundle_head_row == 'contentrow1'}{cycle values="contentrow2,contentrow1"}{else}{cycle values="contentrow1,contentrow2"}{/if}">
<td class="left">
{form type=text name=qty[] value=$data.products_quantity style='width:30px;'}
</td>
<td class="left">
<strong><a href="{$data.products_link}">{$data.products_name}</a></strong>
{if $data.shipping_status}<br /><p class="shippingtime">{txt key=TEXT_SHIPPING_STATUS}&nbsp;{$data.shipping_status}</p>{/if}
<td class="right">{$data.products_price.formated}</td>
<td class="right">{$data.products_final_price.formated}</td>
<td class="right">{form type=hidden name=products_key[] value=$data.products_key}{form type=checkbox name=cart_delete[] value=$data.products_key}</td>
</tr>
{$data.products_information}
{/if}
{/foreach}


12-bundle-gruppen-frontend-warenkorb-box

Um die Warenkorb-Box anzupassen, suchen Sie in folgender Datei:

/templates/IHR_TEMPLATE/xtCore/boxes/box_cart.html

nach diesem Code:


{*Dies ist zum Anzeigen der Bundles*}
{assign var=ssag_bundle_head value=''}
{foreach name=aussen item=data from=$cart_data}
{if $data.ssag_bundle_id && $ssag_bundle_head != $data.ssag_bundle_id}
{assign var=ssag_bundle_head value=$data.ssag_bundle_id}
{cycle assign=ssag_bundle_head_row name="bundle_cart" values="contentrow1,contentrow2" print=false}
<tr class="{$ssag_bundle_head_row}">
<td class="left">
{form type=text name=bla value=1 style='width:30px; background:#CCCCCC;' params="readonly='true'"}
</td>
<td class="left" width="30%">
<strong>{$data.ssa_group.ssag_name} {$data.ssag_bundle}</strong>
</td>
<td class="right">{$data.ssa_group.ssap_price.formated}</td>
<td class="right">{$data.ssa_group.ssap_price.formated}</td>
<td class="right"></td>
</tr>
{if $data.ssa_group.ssag_short_desc}
<tr class="{$ssag_bundle_head_row}">
<td> </td>
{*if $data.ssa_group.ssag_image}
<td>{img img=$data.ssa_group.ssag_image type=m_thumb alt=$data.ssa_group.ssag_name}</td>
<td class="left" colspan="2" valign="top">
{else*}
<td class="left" colspan="3">
{*/if*}
{$data.ssa_group.ssag_short_desc}
</td>
<td></td>
</tr>
{/if}
{/if}
{if $data.ssag_bundle_id && $ssag_bundle_head == $data.ssag_bundle_id}
<tr class="{$ssag_bundle_head_row}">
<td class="left">
{form type=hidden name=qty[] value=$data.products_quantity style='width:30px; background:#CCCCCC;' params="readonly='true'"}
</td>
<td class="left">
<strong><a href="{$data.products_link}">{$data.products_name}</a></strong>
{if $data.shipping_status}<br /><p class="shippingtime">{txt key=TEXT_SHIPPING_STATUS}&nbsp;{$data.shipping_status}</p>{/if}
<td class="right">{*$data.products_price.formated*}</td>
<td class="right">{*$data.products_final_price.formated*}</td>
<td class="right">{form type=hidden name=products_key[] value=$data.products_key}{form type=checkbox name=cart_delete[] value=$data.products_key}</td>
</tr>
{/if}
{/foreach}

{*Dies ist zum Anzeigen der Normalen Artikel*}
{foreach name=aussen item=data from=$cart_data}
{if !$data.ssag_bundle}
<tr class="{if $ssag_bundle_head_row == 'contentrow1'}{cycle values="contentrow2,contentrow1"}{else}{cycle values="contentrow1,contentrow2"}{/if}">
<td class="left">
{form type=text name=qty[] value=$data.products_quantity style='width:30px;'}
</td>
<td class="left">
<strong><a href="{$data.products_link}">{$data.products_name}</a></strong>
{if $data.shipping_status}<br /><p class="shippingtime">{txt key=TEXT_SHIPPING_STATUS}&nbsp;{$data.shipping_status}</p>{/if}
<td class="right">{$data.products_price.formated}</td>
<td class="right">{$data.products_final_price.formated}</td>
<td class="right">{form type=hidden name=products_key[] value=$data.products_key}{form type=checkbox name=cart_delete[] value=$data.products_key}</td>
</tr>
{$data.products_information}
{/if}
{/foreach}

und ersetzen ihn durch:


{assign var=ssag_bundle_head value=''}
{foreach name=aussen item=data from=$cart_data}
{if $data.ssag_bundle_id && $ssag_bundle_head != $data.ssag_bundle_id}
{assign var=ssag_bundle_head value=$data.ssag_bundle_id}
<p>1&nbsp;x&nbsp;<a href="{$data.ssa_group.ssag_link}">{$data.ssa_group.ssag_name|truncate:20:"...":true} {$data.ssag_bundle}</a></p>
{elseif !$data.ssag_bundle_id}
<p>{$data.products_quantity}&nbsp;x&nbsp;<a href="{$data.products_link}">{$data.products_name|truncate:20:"...":true}</a></p>
{/if}
{/foreach}

Bundle-Artikel im Checkout


13-bundle-gruppen-frontend-checkout

In folgender Datei:

/templates/IHR_TEMPLATE/xtCore/pages/checkout/subpage_confirmation.html

suchen Sie nach folgendem Code:


{foreach name=aussen item=data from=$data}
<tr class="{cycle values="contentrow1,contentrow2"}">
<td class="left">{$data.products_quantity}</td>
<td class="left">
<strong><a href="{$data.products_link}">{$data.products_name}</a></strong>
{if $data.shipping_status}<br /><p class="shippingtime">{txt key=TEXT_SHIPPING_STATUS}&nbsp;{$data.shipping_status}</p>{/if}
<td class="left">
{if $data._cart_discount}
<span class="old-price">{$data._original_products_price.formated}</span>
{$data.products_price.formated} (-{$data._cart_discount} %)
{else}
{$data.products_price.formated}
{/if}
</td>
<td class="right">{$data.products_final_price.formated}</td>
</tr>
{$data.products_information}
{/foreach}

und ersetzen ihn durch diesen:


{*Dies ist zum Anzeigen der Bundles*}
{assign var=ssag_bundle_head value=''}{assign var=checkout_data value=$data}
{foreach name=aussen item=data from=$checkout_data}
{if $data.ssag_bundle_id && $ssag_bundle_head != $data.ssag_bundle_id}
{assign var=ssag_bundle_head value=$data.ssag_bundle_id}
{cycle assign=ssag_bundle_head_row name="bundle_cart" values="contentrow1,contentrow2" print=false}
<tr class="{$ssag_bundle_head_row}">
<td class="left">1</td>
<td class="left">
<strong>{$data.ssa_group.ssag_name} {$data.ssag_bundle}</strong>
</td>
<td class="left">{$data.ssa_group.ssap_price.formated}</td>
<td class="right">{$data.ssa_group.ssap_price.formated}</td>
</tr>
{if $data.ssa_group.ssag_short_desc}
<tr class="{$ssag_bundle_head_row}">
<td> </td>
{*if $data.ssa_group.ssag_image}
<td>{img img=$data.ssa_group.ssag_image type=m_thumb alt=$data.ssa_group.ssag_name}</td>
<td class="left" valign="top">
{else*}
<td class="left" colspan="2">
{*/if*}
{$data.ssa_group.ssag_short_desc}
</td>
<td></td>
</tr>
{/if}
{/if}
{if $data.ssag_bundle_id && $ssag_bundle_head == $data.ssag_bundle_id}
<tr class="{$ssag_bundle_head_row}">
<td class="left">{*$data.products_quantity*}</td>
<td class="left">
<strong><a href="{$data.products_link}">{$data.products_name}</a></strong>
{*if $data.shipping_status}<br /><p class="shippingtime">{txt key=TEXT_SHIPPING_STATUS}&nbsp;{$data.shipping_status}</p>{/if*}
<td class="left">
{*if $data._cart_discount}
<span class="old-price">{$data._original_products_price.formated}</span>
{$data.products_price.formated} (-{$data._cart_discount} %)
{else}
{$data.products_price.formated}
{/if*}
</td>
<td class="right">{*$data.products_final_price.formated*}</td>
</tr>
{/if}
{/foreach}

{*Dies ist zum Anzeigen der Normalen Artikel*}
{foreach name=aussen item=data from=$checkout_data}
{if !$data.ssag_bundle}
<tr class="{if $ssag_bundle_head_row == 'contentrow1'}{cycle values="contentrow2,contentrow1"}{else}{cycle values="contentrow1,contentrow2"}{/if}">
<td class="left">{$data.products_quantity}</td>
<td class="left">
<strong><a href="{$data.products_link}">{$data.products_name}</a></strong>
{if $data.shipping_status}<br /><p class="shippingtime">{txt key=TEXT_SHIPPING_STATUS}&nbsp;{$data.shipping_status}</p>{/if}
<td class="left">
{if $data._cart_discount}
<span class="old-price">{$data._original_products_price.formated}</span>
{$data.products_price.formated} (-{$data._cart_discount} %)
{else}
{$data.products_price.formated}
{/if}
</td>
<td class="right">{$data.products_final_price.formated}</td>
</tr>
{$data.products_information}
{/if}
{/foreach}

Anzeige in gespeicherten Bestellungen


14-bundle-gruppen-frontend-bestellhistorie

Suchen Sie in folgender Datei:

/templates/IHR_TEMPLATE/xtCore/pages/account_history_info.html

nach folgendem Code:


{foreach name=aussen item=order_values from=$order_products}
<tr class="{cycle values="contentrow1,contentrow2"}">
<td class="left">{$order_values.products_quantity}&nbsp;x</td>
<td class="left"><strong>{$order_values.products_name}</strong></td>
<td class="left">{$order_values.products_model}</td>
<td class="right">{$order_values.products_price.formated}</td>
<td class="right">{$order_values.products_final_price.formated}</td>
</tr>
{$order_values.products_information.content}
{/foreach}

und ersetzen ihn durch diesen Code:


{*Dies ist zum Anzeigen der Bundles*}
{assign var=ssag_bundle_head value=''}
{foreach name=aussen item=order_values from=$order_products}
{if $order_values.ssag_bundle_id && $ssag_bundle_head != $order_values.ssag_bundle_id}
{assign var=ssag_bundle_head value=$order_values.ssag_bundle_id}
{cycle assign=ssag_bundle_head_row name="bundle_cart" values="contentrow1,contentrow2" print=false}
<tr class="{$ssag_bundle_head_row}">
<td class="left">
1.00&nbsp;x
</td>
<td class="left"><strong>{$order_values.ssa_group.ssag_name} {$order_values.ssag_bundle}</strong></td>
<td class="right"></td>
<td class="right">{$order_values.ssa_group.ssap_price.formated}</td>
<td class="right">{$order_values.ssa_group.ssap_price.formated}</td>
</tr>
{if $order_values.ssa_group.ssag_short_desc}
<tr class="{$ssag_bundle_head_row}">
<td> </td>
{*if $data.ssa_group.ssag_image}
<td>{img img=$order_values.ssa_group.ssag_image type=m_thumb alt=$order_values.ssa_group.ssag_name}</td>
<td class="left" colspan="2" valign="top">
{else*}
<td class="left" colspan="3">
{*/if*}
{$order_values.ssa_group.ssag_short_desc}
</td>
<td></td>
</tr>
{/if}
{/if}
{if $order_values.ssag_bundle_id && $ssag_bundle_head == $order_values.ssag_bundle_id}
<tr class="{$ssag_bundle_head_row}">
<td class="left"></td>
<td class="left"><strong>{$order_values.products_name}</strong>
<td class="right">{$order_values.products_model}</td>
<td class="right"></td>
<td class="right"></td>
</tr>
{/if}
{/foreach}

{*Dies ist zum Anzeigen der Normalen Artikel*}
{foreach name=aussen item=order_values from=$order_products}
{if !$order_values.ssag_bundle}
<tr class="{if $ssag_bundle_head_row == 'contentrow1'}{cycle values="contentrow2,contentrow1"}{else}{cycle values="contentrow1,contentrow2"}{/if}">
<td class="left">{$order_values.products_quantity}&nbsp;x</td>
<td class="left"><strong>{$order_values.products_name}</strong></td>
<td class="left">{$order_values.products_model}</td>
<td class="right">{$order_values.products_price.formated}</td>
<td class="right">{$order_values.products_final_price.formated}</td>
</tr>
{$order_values.products_information.content}
{/if}
{/foreach}

Anpassen der E-Mail-Einstellungen

Ort im Admin: Inhalte -> E-Mail-Einstellungen -> send_order -> HTML-E-Mail

Suchen Sie in der E-Mail-Vorlage nach folgendem Code:


{foreach name=aussen item=order_values from=$order_products}
<tr class="{cycle values="contentrow1,contentrow2"}">
<td class="left">{$order_values.products_quantity} x</td>
<td class="left">{$order_values.products_name}</strong></td>
<td class="left">{$order_values.products_model}</td>
<td class="right">{$order_values.products_price.formated}</td>
<td class="right">{$order_values.products_final_price.formated}</td>
</tr>
{$order_values.products_information.html_content}
{/foreach}

Ersetzen Sie ihn durch diesen Code:


{*Dies ist zum Anzeigen der Bundles*}
{assign var=ssag_bundle_head value=''}
{foreach name=aussen item=order_values from=$order_products}
{if $order_values.ssag_bundle_id && $ssag_bundle_head != $order_values.ssag_bundle_id}
{assign var=ssag_bundle_head value=$order_values.ssag_bundle_id}
{cycle assign=ssag_bundle_head_row name="bundle_cart" values="contentrow1,contentrow2" print=false}
<tr class="{$ssag_bundle_head_row}">
<td class="left">
1.00&nbsp;x
</td>
<td class="left"><strong>{$order_values.ssa_group.ssag_name} {$order_values.ssag_bundle}</strong></td>
<td class="right"></td>
<td class="right">{$order_values.ssa_group.ssap_price.formated}</td>
<td class="right">{$order_values.ssa_group.ssap_price.formated}</td>
</tr>
{if $order_values.ssa_group.ssag_short_desc}
<tr class="{$ssag_bundle_head_row}">
<td> </td>
{*if $data.ssa_group.ssag_image}
<td>{img img=$order_values.ssa_group.ssag_image type=m_thumb alt=$order_values.ssa_group.ssag_name}</td>
<td class="left" colspan="2" valign="top">
{else*}
<td class="left" colspan="3">
{*/if*}
{$order_values.ssa_group.ssag_short_desc}
</td>
<td></td>
</tr>
{/if}
{/if}
{if $order_values.ssag_bundle_id && $ssag_bundle_head == $order_values.ssag_bundle_id}
<tr class="{$ssag_bundle_head_row}">
<td class="left"></td>
<td class="left">{$order_values.products_name}
<td class="right">{$order_values.products_model}</td>
<td class="right"></td>
<td class="right"></td>
</tr>
{/if}
{/foreach}

{*Dies ist zum Anzeigen der Normalen Artikel*}
{foreach name=aussen item=order_values from=$order_products}
{if !$order_values.ssag_bundle}
<tr class="{if $ssag_bundle_head_row == 'contentrow1'}{cycle values="contentrow2,contentrow1"}{else}{cycle values="contentrow1,contentrow2"}{/if}">
<td class="left">{$order_values.products_quantity}&nbsp;x</td>
<td class="left"><strong>{$order_values.products_name}</strong></td>
<td class="left">{$order_values.products_model}</td>
<td class="right">{$order_values.products_price.formated}</td>
<td class="right">{$order_values.products_final_price.formated}</td>
</tr>
{$order_values.products_information.content}
{/if}
{/foreach}

Ort im Admin: Inhalte -> E-Mail-Einstellungen -> send_order -> Text-E-Mail

Suchen Sie in der E-Mail-Vorlage nach folgendem Code:


{foreach name=aussen item=order_values from=$order_products}
{$order_values.products_quantity} x {$order_values.products_name} = {$order_values.products_final_price.formated}
{/foreach}

Ersetzen Sie ihn durch diesen Code:


{*Dies ist zum Anzeigen der Bundles*}
{assign var=ssag_bundle_head value=''}
{foreach name=aussen item=order_values from=$order_products}
{if $order_values.ssag_bundle_id && $ssag_bundle_head != $order_values.ssag_bundle_id}
{assign var=ssag_bundle_head value=$order_values.ssag_bundle_id}
1.00 x {$order_values.ssa_group.ssag_name} {$order_values.ssag_bundle} = {$order_values.ssa_group.ssap_price.formated}
{if $order_values.ssa_group.ssag_short_desc}
{$order_values.ssa_group.ssag_short_desc}
{/if}
{/if}
{if $order_values.ssag_bundle_id && $ssag_bundle_head == $order_values.ssag_bundle_id}
{$order_values.products_name}
{/if}
{/foreach}

{*Dies ist zum Anzeigen der Normalen Artikel*}
{foreach name=aussen item=order_values from=$order_products}
{if !$order_values.ssag_bundle}
{$order_values.products_quantity} x {$order_values.products_name} = {$order_values.products_final_price.formated}
{$order_values.products_information.txt_content}
{/if}
{/foreach}

Template-Anpassung

Der Artikel “Template-Anpassung” wird bereitgestellt von:
BuI Hinsche GmbH – Softwareentwicklung und Design. Plugins, Module, Templates

Einbindung der Filter-Funktionen

Um das Plugin nutzen zu können, müssen Sie noch Ihr Template anpassen.

Fügen Sie in folgender Datei Ihres Templates:

/xtCore/pages/product_listing/product_listing_v1.html

an gewünschter Stelle diese Variable ein:

{$filter}

Standard-Filter auskommentieren

Die im Folgenden beschriebene Template-Anpassung ist nicht notwendig für das Funktionieren des Plugins. Sie vermeidet lediglich eine doppelte Anzeige, wenn in den Plugin-Einstellungen die Option Standard-Filter für Preis, Name, Datum auf-/absteigend aktiviert wird. Näheres dazu finden Sie im Abschnitt Einstellungsmöglichkeiten beim Aktivieren des Plugins der Konfigurations-Anleitung.

In folgender Datei:

/xtCore/pages/product_listing/product_listing_v1.html

fügen Sie {* vor {if $sort_dropdown.options} ein (Zeile 6 im Default-Template)
und *} nach
</div>
{/if}
(Zeile 15 in xt_default)

Template-Anpassung

Der Artikel “Template-Anpassung” wird bereitgestellt von:
BuI Hinsche GmbH – Softwareentwicklung und Design. Plugins, Module, Templates


002-vt_discount-addon-bestellubersicht

Um einen Hinweis auf die Rabattbeschränkung im Checkout anzuzeigen, suchen Sie in der Datei:

../xtCore/pages/checkout/subpage_confirmation.html

nach:

{if $data._cart_discount}
<span class="old-price">{$data._original_products_price.formated}</span>
{$data.products_price.formated} (-{$data._cart_discount} %)
{else}
{$data.products_price.formated}
{/if}

Und fügen Sie danach Folgendes ein (evtl. angepasst an Ihr Template):

{if $data.disallow_discount_status==1}
<font color="#FF0000">({txt key=TEXT_NO_DISCOUNT})</font>
{/if}

Template-Anpassungen

Der Artikel “Template-Anpassungen” wird bereitgestellt von:
BuI Hinsche GmbH – Softwareentwicklung und Design. Plugins, Module, Templates

Anpassungen für 
xt:Commerce Veyton 4.0.12

(Die manuellen Anpassungen können auch in Version 4.0.13 notwendig sein, wenn der Shop nicht nach Anleitung geupdated wurde.)

Sollte bei Ihnen der Zahlungsbereich weiß bleiben, passen Sie in Ihrem Template folgende Dateien an bzw. erzeugen neue.

Datei: ./xtCore/pages/checkout.html

Suchen Sie folgenden Code:

{if $page_action == pay}
{include file="/xtCore/pages/checkout/subpage_pay.html" type="tpl_include"}
{/if}

Fügen Sie danach ein:

{if $page_action == pay_frame}
{include file='/xtCore/pages/checkout/subpage_pay_iframe.html' type='tpl_include'}
{/if}

Datei: ./xtCore/pages/checkout/subpage_pay_iframe.html

Erstellen Sie diese Datei und fügen Sie folgendem Inhalt ein:

<h1>{txt key=TEXT_PAGE_TITLE_PAY}</h1>
<iframe src="{$psp_target}" width="100%" height="600" frameborder="0" name="veyton_paymentframe">
<p>Ihr Browser kann leider keine eingebetteten Frames anzeigen</p>
</iframe>

Datei: ./xt_core/pages/page_action/checkout_pay_frame.php

Prüfen Sie, ob die Datei folgenden Inhalt hat und korrigieren Sie sie gegebenenfalls:


<?php
/*
#########################################################################
# xt:Commerce VEYTON 4.0 Enterprise
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright 2007-2009 xt:Commerce GmbH. All Rights Reserved.
# This file may not be redistributed in whole or significant part.
# Content of this file is Protected By International Copyright Laws.
#
# ~~~~~~~~~ xt:Commerce VEYTON 4.0 Enterprise IS NOT FREE SOFTWARE ~~~~~~~~~~~~~~~~
#
# http://www.xt-commerce.com
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# @version $Id: checkout.pay_frame.php 4229 2010-07-21 16:29:19Z mzanier $
# @copyright xt:Commerce GmbH, www.xt-commerce.com
#
# @author Mario Zanier, xt:Commerce GmbH mzanier@xt-commerce.com
#
# @author Matthias Hinsche mh@xt-commerce.com
# @author Matthias Benkwitz mb@xt-commerce.com
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# xt:Commerce GmbH, Bachweg 1, A-6091 Goetzens (AUSTRIA)
# office@xt-commerce.com
#
#########################################################################

defined('_VALID_CALL') or die('Direct Access is not allowed.');

$brotkrumen->_addItem($xtLink->_link(array('page'=>'cart')),TEXT_CART);
$brotkrumen->_addItem($xtLink->_link(array('page'=>'checkout','paction'=>'shipping', 'conn'=>'SSL')),TEXT_SHIPPING_METHOD);
$brotkrumen->_addItem($xtLink->_link(array('page'=>'checkout','paction'=>'payment', 'conn'=>'SSL')),TEXT_PAYMENT_METHOD);
$brotkrumen->_addItem($xtLink->_link(array('page'=>'checkout','paction'=>'confirmation', 'conn'=>'SSL')),TEXT_CONFIRMATION);

$order = new order($_SESSION['last_order_id'],$_SESSION['customer']->customers_id);

$shop_id = $store_handler->shop_id;

$shipping_code = $_SESSION['selected_shipping'];
$payment_code = $_SESSION['selected_payment'];

// Shipping
$tmp_shipping_data = $checkout->_getShipping();
$shipping_data = $tmp_shipping_data[$shipping_code];
$shipping_class_path = _SRV_WEBROOT._SRV_WEB_PLUGINS.$shipping_data['shipping_dir'].'/classes/';
$shipping_class_file = 'class.'.$shipping_data['shipping_code'].'.php';

if (file_exists($shipping_class_path . $shipping_class_file)) {
require_once($shipping_class_path.$shipping_class_file);
$shipping_module_data = new $shipping_data['shipping_code']();
}

// Payment
$tmp_payment_data = $checkout->_getPayment();
$payment_data = $tmp_payment_data[$payment_code];

$payment_class_path = _SRV_WEBROOT._SRV_WEB_PLUGINS.$payment_data['payment_dir'].'/classes/';
$payment_class_file = 'class.'.$payment_data['payment_code'].'.php';

if (file_exists($payment_class_path . $payment_class_file)) {
require_once($payment_class_path.$payment_class_file);
$payment_module_data = new $payment_data['payment_code']();
}

// check for PSP form
if (isset($payment_module_data->IFRAME_URL)) {
$frame_url = $payment_module_data->pspRedirect();
$PSP_TARGET = $frame_url;

$checkout_data = array_merge($checkout_data,array('psp_target'=>$PSP_TARGET));
($plugin_code = $xtPlugin->PluginCode('module_checkout.php:pay_frame_data')) ? eval($plugin_code) : false;
}
?>

Template-Anpassung

Der Artikel “Template-Anpassung” wird bereitgestellt von:
BuI Hinsche GmbH – Softwareentwicklung und Design. Plugins, Module, Templates

Die Versandkosten werden normalerweise erst im Checkout oder auf einer speziellen Informationsseite angezeigt. Sie können jedoch auch Ihr individuelles Template so anpassen, dass das Plugin die jeweiligen Versandkosten bereits mit der Artikelbeschreibung anzeigt.

Öffnen Sie dazu folgende Datei:

/templates/<Ihr Template>/xtCore/pages/product/product.html

Suchen Sie den Block, der sich auf das shipping bezieht. Die konkrete Zeichenfolge kann sich von Template zu Template unterscheiden. Nachfolgend ein Beispiel:
<p class="taxandshippinginfo">{$products_tax_info.tax_desc}
{if $products_shipping_link}<a href="{$products_shipping_link}"
target="_blank" rel="nofollow">{txt key=TEXT_EXCL_SHIPPING}</a>
{/if}</p>

Ersetzen Sie diesen Block durch den folgenden:
<p class="taxandshippinginfo">{$products_tax_info.tax_desc}
{if $products_shipping_link && $products_shipping_costs_temp==''}
<a href="{$products_shipping_link}" target="_blank"
rel="nofollow">{txt key=TEXT_EXCL_SHIPPING}</a>
{else}
{hook key=product_info_tpl_shipping_link}
{/if}
</p>

Mögliches Problem in Version 4.0.12 von xt:Commerce Veyton

Falls das Plugin in der Veyton-Version 4.0.12 aktiviert ist und beim Aufruf des Warenkorbs eine weiße Seite erscheint, muss folgende Datei ausgetauscht werden:

../xtCore/pages/cart.php

Die entsprechende Datei können Sie bei uns anfordern.

Template-Anpassung

Der Artikel “Template-Anpassung” wird bereitgestellt von:
BuI Hinsche GmbH – Softwareentwicklung und Design. Plugins, Module, Templates

Um im Shop die Informationen für Preise auf Anfrage anzuzeigen, müssen Sie Ihr jeweiliges Template anpassen. Dabei können Sie zwei unterschiedliche Codes einfügen:

  1. einen für Template-Dateien, in denen ein Artikelpreis angezeigt wird, und
  2. einen für alle anderen Dateien ohne Artikelpreis

Ein Artikelpreis wird zum Beispiel in der Produkt-Info angezeigt:
/templates/{Ihr Template}/xtCore/pages/product/product.html

Fügen Sie in Dateien mit Artikelpreisen an gewünschter Stelle folgenden Code ein:

{hook key=price_on_request_link}

Damit der Preis ausgeblendet wird, suchen Sie nach (abhängig vom verwendeten Shop-Template kann der Code anders sein):

{if $smarty.const._CUST_STATUS_SHOW_PRICE eq '1'}
<p class="productprice">{$products_price.formated}</p>
<p class="taxandshippinginfo">{$products_tax_info.tax_desc}
<a href="{$products_shipping_link}" target="_blank" rel="nofollow">{txt key=TEXT_EXCL_SHIPPING}</a>
</p>
{price_table}
{/if}

Ersetzen Sie diesen Code durch den Folgenden, wenn Preis auf Anfrage anstelle des Preises angezeigt werden soll:

{if $smarty.const._CUST_STATUS_SHOW_PRICE eq '1'}
{if $products_price_on_request_flag != '1'}
<p class="productprice">{$products_price.formated}</p>
<p class="taxandshippinginfo">{$products_tax_info.tax_desc}
<a href="{$products_shipping_link}" target="_blank" rel="nofollow">{txt key=TEXT_EXCL_SHIPPING}</a>
</p>
{price_table}
{else}
{hook key=price_on_request_link}
{/if}
{/if}

Falls Preis auf Anfrage nicht den Artikelpreis ersetzen, sondern an anderer Stelle erscheinen soll, verwenden Sie folgenden Code:


{if $smarty.const._CUST_STATUS_SHOW_PRICE eq '1'}
{if $products_price_on_request_flag != '1'}
<p class="productprice">{$products_price.formated}</p>
<p class="taxandshippinginfo">{$products_tax_info.tax_desc}
<a href="{$products_shipping_link}" target="_blank" rel="nofollow">{txt key=TEXT_EXCL_SHIPPING}</a>
</p>
{price_table}
{/if}
{/if}

Ohne Artikelpreis könnte zum Beispiel das Produkt-Listing sein:
/templates/{Ihr Template}/xtCore/pages/product_listing/product_listing.html

Fügen Sie in Dateien ohne Artikelpreise an gewünschter Stelle folgenden (oder analogen) Code ein:

{hook key=price_on_request_link pID=$module_data.products_id}

Achtung! $module_data muss gegebenenfalls umbenannt werden. Schauen
sie dazu, wie die anderen Daten des Artikels eingebunden werden (Name, …).

Damit der Preis ausgeblendet wird, suchen Sie nach (abhängig vom verwendeten Shop-Template kann der Code anders sein):

{if $smarty.const._CUST_STATUS_SHOW_PRICE eq '1'}
<p class="price">{$module_data.products_price.formated}</p>
<p class="taxandshippinginfo">{$module_data.products_tax_info.tax_desc}{if $module_data.products_shipping_link}<a href="{$module_data.products_shipping_link}" target="_blank" rel="nofollow">{txt key=TEXT_EXCL_SHIPPING}</a>{/if}</p>
{if $module_data.base_price}<p class="vpe">{$module_data.base_price.price} {txt key=TEXT_SHIPPING_BASE_PER} {$module_data.base_price.vpe.name}</p>{/if}
{/if}

Ersetzen Sie diesen Code durch den Folgenden:

{if $smarty.const._CUST_STATUS_SHOW_PRICE eq '1'}
{if $module_data.products_price_on_request_flag != '1'}
<p class="price">{$module_data.products_price.formated}</p>
<p class="taxandshippinginfo">{$module_data.products_tax_info.tax_desc}{if $module_data.products_shipping_link}<a href="{$module_data.products_shipping_link}" target="_blank" rel="nofollow">{txt key=TEXT_EXCL_SHIPPING}</a>{/if}</p>
{if $module_data.base_price}<p class="vpe">{$module_data.base_price.price} {txt key=TEXT_SHIPPING_BASE_PER} {$module_data.base_price.vpe.name}</p>{/if}
{/if}
{/if}

Template-Anpassung

Der Artikel “Template-Anpassung” wird bereitgestellt von:
BuI Hinsche GmbH – Softwareentwicklung und Design. Plugins, Module, Templates

Anzeige der Produktinformation auf den einzelnen Seiten

Im Template-Ordner: /templates/<Ihr Template>/xtCore/pages/product

In allen HTML-Dateien fügen Sie die folgende Zeile an der Stelle ein, wo das Plugin die Produktinformationen anzeigen soll:

{box name=bui_product_info type=user pid=$products_id prod_listing=0}

Optional für die Anzeige im Product-Listing

Im Ordner: /templates/<Ihr Template>/xtCore/pages/product_listing

In allen HTML-Dateien fügen Sie die folgende Zeile an der Stelle ein, wo das Plugin die Produktinformationen anzeigen soll:

{box name=bui_product_info type=user pid=$module_data.products_id prod_listing=1}

Für die Anzeige bei einem Slave-Artikel

Den Inhalt in folgendem Hookpoint:

class.getProductSQL_query.php:F_Listing

ersetzen mit:

$check_pos = strstr($this->position, 'plugin_ms');
$check_pos_s = strstr($this->position, 'getSearchData');
$check_pos_pi = strstr($this->position, 'plugin_product_info');

if (!$check_pos && !$check_pos_s && USER_POSITION != 'admin' && !check_pos_pi)
$this->setSQL_WHERE("and (p.products_master_model='' or p.products_master_model IS NULL) ");