Der Button "Jetzt kaufen" oder "In den Warenkorb", den man bei der Konfigurationseinstellung "Zeige 'Jetzt Kaufen' in den Produktlisten" auf der Artikellistenseite erhält, ist schön und gut.
Er führt aber nur per Link zur Detailseite des Produktes, nicht konfiguriert in den Warenkorb, zumal wenn das Produkt Attribute/Varianten besitzt. Denn die werden auf der Listenseite nicht angezeigt, sind aber das A und O mancher Artikel.Eine kleine Erweiterung (in nur zwei Dateien) für alle, die das Ablegen in den Warenkorb von der Listenseite unbedingt umsetzen wollen, ist die folgende:
In der Klasse 'products' (includes/classes/products.php) lassen sich die Artikeleigenschaften durch Aufruf der 'products_attributes.php' und auf der Listenseite template-seitig durch Einfügen weniger Smarty-TAGs (templates/TEMPLATE/module/product_listing/product_listing_v1.html etc.) erweitern.
Das geht so:
a) includes/classes/products.php
SUCHT NACH:
$productData = array ('PRODUCTS_NAME' => $array['products_name'],...); FÜGT DAHINTER EIN:
// BOF hk 07.03.2013: Um von der Listenseite aus bestellen zu können, müssen ggf. Attribute zu sehen sein
$product = new product($array['products_id']);
$info_smarty = new Smarty;
include (DIR_WS_MODULES.'product_attributes.php');
$productData['PRODUCTS_ATTRIBUTES'] = $module;
if($module) {
$productData['FORM_ACTION'] = xtc_draw_form('cart_quantity_'.$array['products_id'], xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id='.$array['products_id'].'&action=add_product'));
$productData['PRODUCTS_QUANTITY_FIELD_AND_BUTTON'] = xtc_draw_hidden_field('products_id', $array['products_id']);
$productData['PRODUCTS_QUANTITY_FIELD_AND_BUTTON'].= xtc_draw_input_field('products_qty', 1, 'id="products_qty_'.$array['products_id'].'" size="1"');
$productData['PRODUCTS_QUANTITY_FIELD_AND_BUTTON'].= ' '.xtc_image_submit('button_in_cart.gif', IMAGE_BUTTON_IN_CART, 'id="order_product_'.$array['products_id'].'" name="order_product" value="1" style="vertical-align:bottom"');
$productData['FORM_END'] = '</form>';
}
// EOF hk 07.03.2013: Um von der Listenseite aus bestellen zu können, müssen ggf. Attribute zu sehen sein
b) templates/TEMPLATE/module/product_listing/product_listing_v1.html etc.
FÜGT NACH:
{foreach name=aussen item=module_data from=$module_content}
FOLGENDES EIN:
{$module_data.FORM_ACTION}
UND VOR DEM DAZUGEHÖRIGEN TAG
{/foreach}
KURZ VOR ENDE DER DATEI:
{$module_data.FORM_END}
DAZWISCHEN GEHÖREN (AM BESTEN NACHEINANDER):
{if $module_data.ATTRIBUTES !=''}
<div class="productoptions">{$module_data.ATTRIBUTES}</div>
{/if}
UND
<p>{$module_data.PRODUCTS_QUANTITY_FIELD_AND_BUTTON}</p>
Den bisherigen BUTTON {$module_data.PRODUCTS_BUTTON_BUY_NOW} könnt ihr dann mit Sternchen zwischen den geschweiften Klammern auskommentieren. Fertig!
So machen wir das etwa bei unserem Abomodul (
http://www.xtc-seller.eu/abo-modul/), bei dem der Käufer auch auf der Listenseite bereits vollständig konfigurieren kann, während er ähnliche Produkte derselben Seite noch im Blick hat und zum Vergleich heranziehen kann.
Viel Spaß mit der Erweiterung,
Henrik