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: Lager und Bestellware und Einzelstücke

    Zaldoran

    • Fördermitglied
    • Beiträge: 417
    Lager und Bestellware und Einzelstücke
    am: 18. Juni 2012, 19:59:12
    Moinsein,

    Ich verkaufe in meinem Shop Artikel die sowohl am Lager sind, als auch solche die Bestellware sind. Somit ist es erlaubt Artikel mit Lagerbestand 0 zu kaufen. Gleichzeitig sollen aber auch Einzelstücke verkauft werden, die nicht am Lager sind. Nicht mehr bestellbare Artikel sollen aber sichtbar bleiben, lediglich nicht mehr bestellbar (Kaufen button ausblenden). Anregungen dafür habe ich schon einige hier gefunden, und ich denke es gelingt mir auch etwas daraus zu basteln.

    Ich stelle mir das so vor: Über ein zusätzliches Feld wird bestimmt, ob ein Artikel ein normaler Artikel ist (0), oder ein Einzelstück (1). Bevor der Shop einen Artikel zum "Kauf" anbietet, prüft er ob der Wert 0 oder 1 ist, ist das der Fall gibts den "Kaufen" button, wenn nicht, gibts ihn nicht. Wird ein normaler Artikel verkauft passiert nichts weiter, wird ein Einzelstück verkauft wird der Wert auf 2 gesetzt. Der Shop weiß nun, dieser Artikel ist nicht mehr erhältlich, und listet ihn nur noch ohne Kaufen Button auf. Ich denke das kriege ich hin, wenn ich die entsprechenden Dateien finde.

    Nun kam mir aber eine Frage in den Sinn: A legt ein Unikat in seinen Warenkorb, loggt sich dann aber aus ohne zu kaufen. B kann den Artikel jetzt immernoch in den Warenkorb legen, da er ja noch mit "1" gekennzeichnet ist. B kauft den Artikel, und es wird "2" draus, jetzt wird er nur noch ohne "Kaufen" bzw. "In den Warenkorb" gelistet. Nun kommt A wieder, der hat aber den Artikel bereits im Warenkorb liegen.

    Und während ich mir überlegt habe wie man das abfangen kann habe ich mich gefragt, die selbe Konstellation kann doch auch im Shop von der Stange auftreten, der eine hat was im Warenkorb gespeichert, und der andere kauft es dann. Wie handhabt der Shop das denn? Prüft der Warenkorb dann selber nochmal, ob der Artikel den der User gestern reingelegt hat heute überhaupt noch verfügbar ist?

    LG
    Holger

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

    contradiction

    • Fördermitglied
    • Beiträge: 80
    • Geschlecht:
    Re: Lager und Bestellware und Einzelstücke
    Antwort #1 am: 18. Juni 2012, 20:09:11
    Soweit ich weiß prüft er und zeigt den Bestand dann korrekt an bzw, gibt die 3 *** aus.

    Aber es ist auch möglich, noch im Warenkorb befindliche Artikel zu kaufen, die eigentlich inaktv sind. Aber nur dann, wenn die Kategorie inaktiv gesetzt ist, nicht aber die einzelnen Artikel.

    xxhappyxx

    • Viel Schreiber
    • Beiträge: 829
    • Geschlecht:
    Re: Lager und Bestellware und Einzelstücke
    Antwort #2 am: 19. Juni 2012, 10:19:34
    Hallo Zaldoran,

    vielleicht wäre ja das hier http://www.modified-shop.org/forum/index.php?topic=14101.0 etwas für dich.

    Habe ich auch eingebaut und läuft ohne Probleme.

    Gruß Thomas

    Zaldoran

    • Fördermitglied
    • Beiträge: 417
    Re: Lager und Bestellware und Einzelstücke
    Antwort #3 am: 24. Juni 2012, 20:17:48
    Danke Thomas, ganz trifft es das nicht. Ich habe jetzt aus den verschiedenen Quellen hier im Forum ein bisschen zusammengetragen und etwas daraus gebastelt was für mich genau diese Anforderung erfüllt, das heißt Lager und Bestellware können gleichzeitig verkauft werden, Verkauf also auch mit Warenbestand 0, gelichzeitig können Unikate verkauft werden (unabhängig vom Lagerbestand), die sich aber mit Ihrem Verkauf automatisch deaktivieren. Über ein zusätzliches Feld im Artikel wird definiert ob es sich um einen normalen Artikel (0) ein Unikat (1) oder ein verkauftes Unikat (2) handelt. Verkaufte Unikate bleiben sichtbar (Quasi ein Archiv) und können nicht mehr in den Warenkorb gelegt werden. Auf diese Weise kann man auch endgültig verkaufte Lagerware "abschalten". Ich werde mich ein anderes Mal noch damit beschäftigen, dass man von Unikaten natülich auch maximal 1 Stück in den Warenkorb legen kann, und dass der Warenkorb dann auch prüft ob das Unikat nicht zwischenzeitlich verkauft wurde, dazu bin ich aber noch nicht gekommen.

    Benötigt wird noch eine Grafik als Ersatz für das "Add to cart", die man sich halt in Anlehnung an das eigene Template selber erstellen sollte.

    Hier soweit die Änderungen:

    Grafiken:

       Datei /templates/templateordner/buttons/german/soldout.gif installieren
       Datei /templates/templateordner/buttons/english/soldout.gif installieren

    Datenbank:
    Code: SQL  [Auswählen]
    ALTER TABLE `products` ADD COLUMN `products_ooak` INT(4) NOT NULL ;
     

    Sprachvariablen:
    Datei: lang/german/admin/categories.php
    Code: PHP  [Auswählen]
    // BOF Zaldoran - 2012-06-19 - OOAK Items
    define('TEXT_PRODUCTS_OOAK','Unikat (0=Nein, 1=Ja, 2=Ja verkauft)');
    // EOF Zaldoran - 2012-06-19 - OOAK Items
     

    Datei: lang/lang_german.conf
    Code: PHP  [Auswählen]
    Finde Abschnitt [product_info] und füge dahinter ein:

    #BOF Zaldoran - 2012-06-19 - OOAK Items
    text_soldout = 'AUSVERKAUFT!'
    #EOF Zaldoran - 2012-06-19 - OOAK Items

    Finde Abschnitt [index] und füge dahinter ein:

    #BOF Zaldoran - 2012-06-19 - OOAK Items
    text_soldout = 'VERKAUFT'
    #EOF Zaldoran - 2012-06-19 - OOAK Items

    Finde Abschnitt [new_products] und füge dahinter ein:

    #BOF Zaldoran - 2012-06-19 - OOAK Items
    text_soldout = 'VERKAUFT'
    #EOF Zaldoran - 2012-06-19 - OOAK Items

    Änderungen sind für weitere Sprachen gegebenenfalls analog vorzunehmen.

    Anzeige des neuen Feldes im Backend:
    Datei: admin/includes/modules/new_product.php

    Finde:
    Code: PHP  [Auswählen]
    <tr>
    <td><span class="main"><?php echo TEXT_PRODUCTS_EAN; ?></span></td>
    <td><span class="main"><?php echo  xtc_draw_input_field('products_ean', $pInfo->products_ean); ?></span></td>
    </tr>

    Füge dahinter ein:
    Code: PHP  [Auswählen]
    <!-- BOF Zaldoran - 2012-06-19 - OOAK Items -->
    <tr>
            <td><span class="main"><?php echo TEXT_PRODUCTS_OOAK; ?></span></td>
            <td><span class="main"><?php echo  xtc_draw_input_field('products_ooak', $pInfo->products_ooak); ?></span></td>
    </tr>
    <!-- EOF Zaldoran - 2012-06-19 - OOAK Items -->

    Damit das neue Feld abgespeichert und beim Kopieren von Artikeln übernommen wird:
    Datei: admin/includes/classes/categories.php

    Finde (ca. Z. 522):
    Code: PHP  [Auswählen]
    $sql_data_array = array (
            'products_quantity' => xtc_db_prepare_input($products_data['products_quantity']),
            'products_model' => xtc_db_prepare_input($products_data['products_model']),
            'products_ean' => xtc_db_prepare_input($products_data['products_ean']),
            'products_price' => xtc_db_prepare_input($products_data['products_price']),
            'products_sort' => xtc_db_prepare_input($products_data['products_sort']),
            'products_shippingtime' => xtc_db_prepare_input($products_data['shipping_status']),
            'products_discount_allowed' => xtc_db_prepare_input($products_data['products_discount_allowed']),
            'products_date_available' => $products_date_available,
            'products_weight' => xtc_db_prepare_input($products_data['products_weight']),
            'products_status' => $products_status,
            'products_startpage' => xtc_db_prepare_input($products_data['products_startpage']),
            'products_startpage_sort' => xtc_db_prepare_input($products_data['products_startpage_sort']),
            'products_tax_class_id' => xtc_db_prepare_input($products_data['products_tax_class_id']),
            'product_template' => xtc_db_prepare_input($products_data['info_template']),
            'options_template' => xtc_db_prepare_input($products_data['options_template']),
            'manufacturers_id' => xtc_db_prepare_input($products_data['manufacturers_id']),
            'products_fsk18' => xtc_db_prepare_input($products_data['fsk18']),
            'products_vpe_value' => xtc_db_prepare_input($products_data['products_vpe_value']),
            'products_vpe_status' => xtc_db_prepare_input($products_data['products_vpe_status']),
            'products_vpe' => xtc_db_prepare_input($products_data['products_vpe'])
            );

    Ergänze wie folgt:
    Code: PHP  [Auswählen]
    $sql_data_array = array (
            'products_quantity' => xtc_db_prepare_input($products_data['products_quantity']),
            'products_model' => xtc_db_prepare_input($products_data['products_model']),
            'products_ean' => xtc_db_prepare_input($products_data['products_ean']),

            // BOF Zaldoran - 2012-06-19 - OOAK Items
            'products_ooak' => xtc_db_prepare_input($products_data['products_ooak']),
            // EOF Zaldoran - 2012-06-19 - OOAK Items

            'products_price' => xtc_db_prepare_input($products_data['products_price']),
            'products_sort' => xtc_db_prepare_input($products_data['products_sort']),
            'products_shippingtime' => xtc_db_prepare_input($products_data['shipping_status']),
            'products_discount_allowed' => xtc_db_prepare_input($products_data['products_discount_allowed']),
            'products_date_available' => $products_date_available,
            'products_weight' => xtc_db_prepare_input($products_data['products_weight']),
            'products_status' => $products_status,
            'products_startpage' => xtc_db_prepare_input($products_data['products_startpage']),
            'products_startpage_sort' => xtc_db_prepare_input($products_data['products_startpage_sort']),
            'products_tax_class_id' => xtc_db_prepare_input($products_data['products_tax_class_id']),
            'product_template' => xtc_db_prepare_input($products_data['info_template']),
            'options_template' => xtc_db_prepare_input($products_data['options_template']),
            'manufacturers_id' => xtc_db_prepare_input($products_data['manufacturers_id']),
            'products_fsk18' => xtc_db_prepare_input($products_data['fsk18']),
            'products_vpe_value' => xtc_db_prepare_input($products_data['products_vpe_value']),
            'products_vpe_status' => xtc_db_prepare_input($products_data['products_vpe_status']),
            'products_vpe' => xtc_db_prepare_input($products_data['products_vpe']));

    Finde (ca. Z. 822):
    Code: PHP  [Auswählen]
    $sql_data_array=array('products_quantity'=>$product['products_quantity'],
            'products_model'=>$product['products_model'],
            'products_ean'=>$product['products_ean'],
            'products_shippingtime'=>$product['products_shippingtime'],
            'products_sort'=>$product['products_sort'],
            'products_startpage'=>$startpage,
            'products_sort'=>$product['products_sort'],
            'products_price'=>$product['products_price'],
            'products_discount_allowed'=>$product['products_discount_allowed'],
            'products_date_added'=>'now()',
            'products_date_available'=>$product['products_date_available'],
            'products_weight'=>$product['products_weight'],
            'products_status'=>$products_status,
            'products_tax_class_id'=>$product['products_tax_class_id'],
            'manufacturers_id'=>$product['manufacturers_id'],
            'product_template'=>$product['product_template'],
            'options_template'=>$product['options_template'],
            'products_fsk18'=>$product['products_fsk18'],);

    Ergänze wie folgt:
    Code: PHP  [Auswählen]
    $sql_data_array=array('products_quantity'=>$product['products_quantity'],
            'products_model'=>$product['products_model'],
            'products_ean'=>$product['products_ean'],

            // BOF Zaldoran - 2012-06-19 - OOAK Items
            'products_ooak'=>$product['products_ooak'],
            // EOF Zaldoran - 2012-06-19 - OOAK Items

            'products_shippingtime'=>$product['products_shippingtime'],
            'products_sort'=>$product['products_sort'],
            'products_startpage'=>$startpage,
            'products_sort'=>$product['products_sort'],
            'products_price'=>$product['products_price'],
            'products_discount_allowed'=>$product['products_discount_allowed'],
            'products_date_added'=>'now()',
            'products_date_available'=>$product['products_date_available'],
            'products_weight'=>$product['products_weight'],
            'products_status'=>$products_status,
            'products_tax_class_id'=>$product['products_tax_class_id'],
            'manufacturers_id'=>$product['manufacturers_id'],
            'product_template'=>$product['product_template'],
            'options_template'=>$product['options_template'],
            'products_fsk18'=>$product['products_fsk18'],
            'products_vpe'=>$product['products_vpe'],
            'products_vpe_value'=>$product['products_vpe_value'],
            'products_vpe_status'=>$product['products_vpe_status']
            );

    Variable für das neue Feld definieren:
    Datei: includes/modules/product_info.php

    Finde (ca. Z. 159):
    Code: PHP  [Auswählen]
    $info_smarty->assign('PRODUCTS_EAN', $product->data['products_ean']);

    Füge dahinter ein:
    Code: PHP  [Auswählen]
    // EOF Zaldoran - 2012-06-19 - OOAK Items
    $info_smarty->assign('PRODUCTS_OOAK', $product->data['products_ooak']);
    // EOF Zaldoran - 2012-06-19 - OOAK Items

    Datei: includes/classes/product.php

    Finde (ca. Z. 424):
    Code: PHP  [Auswählen]
    $productData = array (
            'PRODUCTS_NAME' => $array['products_name'],
            'COUNT' => isset($array['ID']) ? $array['ID'] : 0,
            'PRODUCTS_ID'=> $array['products_id'],
            'PRODUCTS_MODEL'=> isset($array['products_model']) ? $array['products_model'] : '',
            'PRODUCTS_VPE' => $this->getVPEtext($array, $products_price['plain']),
            'PRODUCTS_IMAGE' => $this->productImage($array['products_image'], $image),
            'PRODUCTS_LINK' => xtc_href_link(FILENAME_PRODUCT_INFO, xtc_product_link($array['products_id'], $array['products_name'])),
            'PRODUCTS_PRICE' => $products_price['formated'],
            'PRODUCTS_TAX_INFO' => $main->getTaxInfo($tax_rate),
            'PRODUCTS_SHIPPING_LINK' => $main->getShippingLink(),
            'PRODUCTS_BUTTON_BUY_NOW' => $buy_now,
            'PRODUCTS_SHIPPING_NAME'=>$shipping_status_name,
            'PRODUCTS_SHIPPING_IMAGE'=>$shipping_status_image,
            'PRODUCTS_DESCRIPTION' => isset($array['products_description']) ? $array['products_description'] : '', //DokuMan - 2010-02-26 - set Undefined index
            'PRODUCTS_EXPIRES' => isset($array['expires_date']) ? $array['expires_date'] : 0, //DokuMan - 2010-02-26 - set Undefined index
            'PRODUCTS_CATEGORY_URL' => isset($array['cat_url']) ? $array['cat_url'] : '', //DokuMan - 2010-02-26 - set Undefined index
            'PRODUCTS_SHORT_DESCRIPTION' => isset($array['products_short_description']) ? $array['products_short_description'] : '', //DokuMan - 2010-02-26 - set Undefined index
            'PRODUCTS_FSK18' => isset($array['products_fsk18']) ? $array['products_fsk18'] : 0, //DokuMan - 2010-02-26 - set Undefined index
            'PRODUCTS_BUTTON_DETAILS' => '<a href="'.xtc_href_link(FILENAME_PRODUCT_INFO, xtc_product_link($array['products_id'], $array['products_name'])).'">'.xtc_image_button('button_product_more.gif', $array['products_name'].TEXT_NOW).'</a>', //GTB - 2010-08-27 make Button Details global
            'PRODUCTS_QUANTITY' => isset($array['products_quantity']) ? $array['products_quantity'] : '' //Tomcraft - 2010-07-15 - Added PRODUCTS_QUANTITY for further use in template
            );
     

    Ergänze wie folgt:
    Code: PHP  [Auswählen]
    $productData = array (
            'PRODUCTS_NAME' => $array['products_name'],
            'COUNT' => isset($array['ID']) ? $array['ID'] : 0,
            'PRODUCTS_ID'=> $array['products_id'],
            'PRODUCTS_MODEL'=> isset($array['products_model']) ? $array['products_model'] : '',
            'PRODUCTS_VPE' => $this->getVPEtext($array, $products_price['plain']),
            'PRODUCTS_IMAGE' => $this->productImage($array['products_image'], $image),
            'PRODUCTS_LINK' => xtc_href_link(FILENAME_PRODUCT_INFO, xtc_product_link($array['products_id'], $array['products_name'])),
            'PRODUCTS_PRICE' => $products_price['formated'],
            'PRODUCTS_TAX_INFO' => $main->getTaxInfo($tax_rate),
            'PRODUCTS_SHIPPING_LINK' => $main->getShippingLink(),
            'PRODUCTS_BUTTON_BUY_NOW' => $buy_now,

            // BOF Zaldoran - 2012-06-19 - OOAK Items
            'PRODUCTS_OOAK' => $array['products_ooak'],
            // EOF Zaldoran - 2012-06-19 - OOAK Items

            'PRODUCTS_SHIPPING_NAME'=>$shipping_status_name,
            'PRODUCTS_SHIPPING_IMAGE'=>$shipping_status_image,
            'PRODUCTS_DESCRIPTION' => isset($array['products_description']) ? $array['products_description'] : '', //DokuMan - 2010-02-26 - set Undefined index
            'PRODUCTS_EXPIRES' => isset($array['expires_date']) ? $array['expires_date'] : 0, //DokuMan - 2010-02-26 - set Undefined index
            'PRODUCTS_CATEGORY_URL' => isset($array['cat_url']) ? $array['cat_url'] : '', //DokuMan - 2010-02-26 - set Undefined index
            'PRODUCTS_SHORT_DESCRIPTION' => isset($array['products_short_description']) ? $array['products_short_description'] : '', //DokuMan - 2010-02-26 - set Undefined index
            'PRODUCTS_FSK18' => isset($array['products_fsk18']) ? $array['products_fsk18'] : 0, //DokuMan - 2010-02-26 - set Undefined index
            'PRODUCTS_BUTTON_DETAILS' => '<a href="'.xtc_href_link(FILENAME_PRODUCT_INFO, xtc_product_link($array['products_id'], $array['products_name'])).'">'.xtc_image_button('button_product_more.gif', $array['products_name'].TEXT_NOW).'</a>', //GTB - 2010-08-27 make Button Details global
            'PRODUCTS_QUANTITY' => isset($array['products_quantity']) ? $array['products_quantity'] : '' //Tomcraft - 2010-07-15 - Added PRODUCTS_QUANTITY for further use in template
            );

    Datei: includes/modules/default.php

    Finde (ca. Z. 209):
    Code: PHP  [Auswählen]
    $listing_sql = "-- /includes/modules/default.php
            SELECT "
    .$select."
            p.products_id,
            p.products_ean,
            p.products_quantity,
            p.products_shippingtime,
            p.products_model,
            p.products_image,
            p.products_price,
            p.products_discount_allowed,
            p.products_weight,
            p.products_tax_class_id,
            p.manufacturers_id,
            p.products_fsk18,
            p.products_vpe,
            p.products_vpe_status,
            p.products_vpe_value,
            pd.products_name,
            pd.products_description,
            pd.products_short_description

    Ergänze wie folgt:
    Code: PHP  [Auswählen]
    [...]
            p.products_ean,
            p.products_ooak,
            p.products_quantity,
    [...]
     

    Statt der Lieferzeit und dem Button "zum Warenkorb hinzufügen" soll "Leider Ausverkauft" angezeigt werden, wenn OOAK verkauft ist:
    Datei: templates/templateordner/module/product_info/product_info_tabs_v1.html

    Finde:
    Code: PHP  [Auswählen]
    {if $SHIPPING_NAME}<p class="shippingtime"><strong>{#text_shippingtime#}</strong>{if $SHIPPING_IMAGE}<img src="{$SHIPPING_IMAGE}" alt="{$SHIPPING_NAME}" />{/if} {$SHIPPING_NAME}</p>
    {/if}

    Ersetze durch:
    Code: PHP  [Auswählen]
    <!-- BOF Zaldoran - 2012-06-19 - OOAK Items -->
    {if $PRODUCTS_OOAK != 2}
            {if $SHIPPING_NAME}<p class="shippingtime"><strong>{#text_shippingtime#}</strong>{if $SHIPPING_IMAGE}<img src="{$SHIPPING_IMAGE}" alt="{$SHIPPING_NAME}" />{/if} {$SHIPPING_NAME}</p>
            {/if}
    {else}
            <p class="shippingtime"><strong>{#text_shippingtime#}&nbsp;&nbsp;{#text_soldout#}</strong><p>
    {/if}
    <!-- EOF Zaldoran - 2012-06-19 - OOAK Items -->
     

    Finde:
    Code: PHP  [Auswählen]
    <div class="addtobasket-tabs"><div class="add-Qty-tabs">{$ADD_QTY}</div><span>{$ADD_CART_BUTTON}</span></div>
     

    Ersetze durch:
    Code: PHP  [Auswählen]
    <!-- BOF Zaldoran - 2012-06-19 - OOAK Items -->
    {if $PRODUCTS_OOAK != 2}
            <div class="addtobasket-tabs"><div class="add-Qty-tabs">{$ADD_QTY}</div><span>{$ADD_CART_BUTTON}</span></div>
    {else}
            <div class="addtobasket-tabs"><span style="left:33px;"><img src="{$tpl_path}buttons/{$language}/button_soldout.gif" alt="{#text_soldout#}" /></span></div>
    {/if}
    <!-- EOF Zaldoran - 2012-06-19 - OOAK Items -->
     

    Im Listing soll statt dem Preis "Verkauft" angezeigt werden, wenn der Artikel verkauft ist (Kaufen Button gibts in meinem Template eh nicht):
    Datei: templates/templateordner/module/product_listing/product_listing_v1.html
    Datei: templates/templateordner/module/new_products.html
    Datei: templates/templateordner/module/new_products_overview.html
    Datei: templates/templateordner/module/new_products_default.html
    Bei bedarf auch noch in /module/cross_selling.html und specials.html

    Finde:
    Code: PHP  [Auswählen]
    <p class="price">{$module_data.PRODUCTS_PRICE}</p><div class="clear"></div></div>
     

    Ersetze durch:
    Code: PHP  [Auswählen]
    <!-- BOF Zaldoran - 2012-06-19 - OOAK Items -->
    {if $module_data.PRODUCTS_OOAK !=2}
            <p class="price">{$module_data.PRODUCTS_PRICE}</p><div class="clear"></div></div>
    {else}
            <p class="price">{#text_soldout#}</p><div class="clear"></div></div>
    {/if}
    <!-- EOF Zaldoran - 2012-06-19 - OOAK Items -->
     

    Beim Verkauf eines OOAKs automatisch products_ooak auf 2 (Ja, verkauft) ändern:
    Datei /checkout_process.php:

    Finde (Ca. Z. 246):
    Code: PHP  [Auswählen]
    $stock_query = xtc_db_query("
    select products_quantity
    from "
    .TABLE_PRODUCTS."
    where products_id = '"
    .xtc_get_prid($order->products[$i]['id'])."'");
     

    Ändere wie folgt:
    Code: PHP  [Auswählen]
    // BOF Zaldoran - 2012-06-19 - OOAK Items
    $stock_query = xtc_db_query("
    select products_quantity, products_ooak
    from "
    .TABLE_PRODUCTS."
    where products_id = '"
    .xtc_get_prid($order->products[$i]['id'])."'");
    // EOF Zaldoran - 2012-06-19 - OOAK Items
     

    Kurz danach finde:
    Code: PHP  [Auswählen]
    // do not decrement quantities if products_attributes_filename exists
    if ((DOWNLOAD_ENABLED != 'true') || (!$stock_values['products_attributes_filename'])) {
            $stock_left = $stock_values['products_quantity'] - $order->products[$i]['qty'];
    } else {
            $stock_left = $stock_values['products_quantity'];
    }
     

    Füge dahinter ein:
    Code: PHP  [Auswählen]
    // BOF Zaldoran - 2012-06-19 - OOAK Items
    $products_ooak = $stock_values['products_ooak'];
    if ($products_ooak == 1) {
            xtc_db_query("update ".TABLE_PRODUCTS." set products_ooak = '2' where products_id = '".xtc_get_prid($order->products[$i]['id'])."'");
    }
    // EOF Zaldoran - 2012-06-19 - OOAK Items
     

    OOAKs sollen wieder verfügbar werden, wenn eine Bestellung gelöscht und dem Lager gutgebucht wird:
    Wenn Einzelartikel aus einer Bestellung gelöscht werden: Datei /admin/orders_edit.php

    Finde:
    Code: PHP  [Auswählen]
    //BOF - Dokuman - 2010-03-17 - calculate stock correctly when editing orders
    xtc_db_query("UPDATE ".TABLE_PRODUCTS." SET products_quantity = products_quantity + ".xtc_db_input($_POST['del_qty'])." WHERE products_id = " . (int)$_POST['del_pID']);
    //EOF - Dokuman - 2010-03-17 - calculate stock correctly when editing orders
     

    Füge dahinter ein:
    Code: PHP  [Auswählen]
    // BOF Zaldoran - 2012-06-19 - OOAK Items
    $products_query = xtc_db_query("
    select products_ooak
    from "
    .TABLE_PRODUCTS."
    WHERE products_id = "
    . (int)$_POST['del_pID']);
    $products_values = xtc_db_fetch_array($products_query);
    if ($products_values['products_ooak'] == 2) {
            xtc_db_query("UPDATE ".TABLE_PRODUCTS." SET products_ooak = '1' WHERE products_id = " . (int)$_POST['del_pID']);
    }
    // EOF Zaldoran - 2012-06-19 - OOAK Items
     

    Wenn die Gesamtbestellung gelöscht wird: Datei /admin/includes/functions/general.php

    Finde (ca. Z. 1551):
    Code: PHP  [Auswählen]
    function xtc_remove_order($order_id, $restock = false) {
    if ($restock == 'on') {
            xtc_db_query("update ".TABLE_PRODUCTS." p
            join "
    .TABLE_ORDERS_PRODUCTS." o on o.products_id = p.products_id
            set p.products_quantity = p.products_quantity + o.products_quantity,
            p.products_ordered = p.products_ordered - o.products_quantity
            where o.orders_id = '"
    .xtc_db_input($order_id)."'");
     

    Füge dahinter ein:
    Code: PHP  [Auswählen]
    // BOF Zaldoran - 2012-06-19 - OOAK Items
             xtc_db_query("update ".TABLE_PRODUCTS." p
                     join "
    .TABLE_ORDERS_PRODUCTS." o on o.products_id = p.products_id
                     set p.products_ooak = 1
                     where o.orders_id = '"
    .xtc_db_input($order_id)."' AND p.products_ooak = 2");
    // BOF Zaldoran - 2012-06-19 - OOAK Items
     

    Das wars im großen und ganzen. Vielleicht ist es ja jemandem dienlich, und wenn es Anmerkungen oder Verbesserungsvorschläge dazu gibt, dann nur zu. Die Erweiterung für den Warenkorb werde ich bei Gelegenheit dann noch nachreichen.

    LG
    Zaldo
    0 Antworten
    3116 Aufrufe
    09. Februar 2011, 12:19:49 von adaptershop
    6 Antworten
    3529 Aufrufe
    24. Juli 2012, 00:55:54 von xxxxxxxxx
    2 Antworten
    2033 Aufrufe
    29. Mai 2013, 09:50:33 von xxhappyxx
    2 Antworten
    2464 Aufrufe
    23. September 2011, 22:11:51 von berliner_adler