Jump to content
xt:Commerce Community Forum

1 Server - 2 Datenbanken - Lagerbestand abgleichen


Klaus*

Recommended Posts

Hallo,

ich stehe auf dem Schlauch und brauche Hilfe.

Folgende Situation:

- es gibt 2 Shops, einen B2C, einen B2B

- jeder Shop läuft eigenständig mit 2 Datenbanken auf einem Server.

Der B2B-Shop soll sich regelmässig die Artikelzahl (Lagerbestand) aus dem B2C-Shop ziehen:

z.B.: hole stündlich die Artikelzahl aus Shop 1 und schreibe diese in die Datenbank von Shop 2.

Wie kann das konkret gehen?

Cronjob?

Wie sieht dafür die Abfrage aus?

Vielen Dank schonmal!

Gruß

Klaus

Link to comment
Share on other sites

Hallo,

vielleicht interessiert es jemanden.

Ich habe die Sache sehr simpel gelöst.

(wäre schön, wenn mal ein Programmierer das kommentieren würde)

Shop B2B

checkout_process.php


// Update Bestand B2C
mysql_select_db(usr_web12_1);
$stock_query = tep_db_query("select products_quantity from " . TABLE_PRODUCTS . " where products_model = '" . tep_get_prid($order->products[$i]['model']) . "'");
$stock_values = tep_db_fetch_array($stock_query);
$stock_left = $stock_values['products_quantity'] - $order->products[$i]['qty'];
tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = '" . $stock_left . "' where products_model = '" . tep_get_prid($order->products[$i]['model']) . "'");
mysql_select_db(usr_web12_4);
// End Bestand B2C
[/PHP]

Shop B2C

checkout_process.php

[PHP]
// Update Bestand B2B
mysql_select_db(usr_web12_4);
$stock_query = tep_db_query("select products_quantity from " . TABLE_PRODUCTS . " where products_model = '" . tep_get_prid($order->products[$i]['model']) . "'");
$stock_values = tep_db_fetch_array($stock_query);
$stock_left = $stock_values['products_quantity'] - $order->products[$i]['qty'];
tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = '" . $stock_left . "' where products_model = '" . tep_get_prid($order->products[$i]['model']) . "'");
mysql_select_db(usr_web12_1);
// End Bestand B2C
[/PHP]

Das kommt hier hin:

// Stock Update vor der letzten }

Im Testshop hat es funktioniert.

Irgendwo einen Gedankenfehler?

Gruß

Klaus

Link to comment
Share on other sites

Noch was geändert.

Wenn über Admin eine Bestellung gelöscht wird, werden jetzt in beiden Shops die Artikel gutgeschrieben.

admin/includes/functions/general.php

function xtc_remove_order vor der letzten }


// Update Bestand B2B
mysql_select_db(usr_web12_4);
$stock_query = tep_db_query("select products_quantity from " . TABLE_PRODUCTS . " where products_model = '" . (int)$order_model . "'");
$stock_values = tep_db_fetch_array($stock_query);
$stock_left = $stock_values['products_quantity'] + $order['products_quantity'];
tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = '" . $stock_left . "' where products_model = '" . (int)$order['products_id'] . "'");
mysql_select_db(usr_web12_1);
// End Bestand B2B
[/PHP]

[PHP]
// Update Bestand B2C
mysql_select_db(usr_web12_1);
$stock_query = tep_db_query("select products_quantity from " . TABLE_PRODUCTS . " where products_model = '" . (int)$order_model . "'");
$stock_values = tep_db_fetch_array($stock_query);
$stock_left = $stock_values['products_quantity'] + $order['products_quantity'];
tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = '" . $stock_left . "' where products_model = '" . (int)$order['products_id'] . "'");
mysql_select_db(usr_web12_4);
// End Bestand B2C
[/PHP]

Im Testshop funktioniert es.

Es ist allerdings OsCommerce, sollte aber nach Code-Check bei Xt genauso sein.

Ich werde das in den Live-Shops demnächst Nachts probieren.

[b]Wichtig: Die vergebene Artikelnummer (products_model) muss in beiden Shops gleich sein.[/b]

Der Artikelstamm darf allerdings unterschiedlich sein.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...