Antwort #11 am: 11. Mai 2015, 17:18:30
Ich habe das mal für einen Kunden der wollte, daß seine Lageristen bei Anfragen dem Kunden einfach einen Link senden können und mittels diesem die Artikel in den Warenkorb kommen so in der
/includes/cart_actions.php gelöst:
case 'custom_cart': if(isset($_GET['p_id'])) { //define $goto to be sure to be in shopping cart $goto = FILENAME_SHOPPING_CART
; //remove potentially exsitent products in cart foreach($_SESSION['cart']->contents as $key => $val){ $_SESSION['cart']->remove($key); } $prod_id_arr = explode('~', $_GET['p_id']); foreach($prod_id_arr as $val) { $prod_id_and_pcs = explode('-', $val); $prod_id = (int
)$prod_id_and_pcs[0]; $pcs = (int
)$prod_id_and_pcs[1]; $_SESSION['cart']->add_cart($prod_id, $pcs); } } xtc_redirect
(xtc_href_link
($goto, xtc_get_all_get_params
(array ('action','p_id')))); break; Der Warenkorb wird sicherheitshalber vorher geleert.
Ein solcher Link sähe dann so aus (können die Lageristen im Backend per einfacher input-Felder für Artikelnummern und Stückzahlen selbst generieren):
DOMAIN?action=custom_cart&p_id=PRODUKT_ID1-2~PRODUKT_ID2-4~PRODUKT_ID3-6
Attribute sind mit meiner einfachen Lösung nicht möglich.
Hinter dem Bindestrich steht die Stückzahl.
Was dich an dem Redirect stört verstehe ich nicht.
Man landet im Warenkorb des Empfänger-Shops mit den zu bestellenden Artikeln.
Diese sind in der
$_SESSION['cart'] gepeichert und loggt man sich ein dann auch in der von
hendrik zitierten DB-Tabelle
customers_basket.
Da du die Bestellung ja dann in Hens Shop abschließt ist danach alles in den Tabellen
orders,
orders_products, usw. vorhanden.
Wenn es keine Attribute gibt (oder nicht für unter 18 freigeschaltete Artikel) wird übrigens auch bei
case 'buy_now': oder
case 'add_a_quickie': nicht auf die product_info umgeleitet.
Bei
case 'cust_order': kann man nur einen Artikel in den Warenkorb legen und es wird auch nicht der WK geleert vor der Aktion.
Deshalb habe ich mir da selbst eine kurze Routine geschrieben.
Wenn jemand Artikel seines Shops auf diese Weise verkaufen möchte kann er ja außerdem
DISPLAY_CART auf 'true' stellen (habe ich aber in meinem code abgefangen mittles der Definition von
$goto).
Gruß,
noRiddle
*NACHTRAG*
Ich würde einfach den
case 'cust_order': umschreiben. Der macht so wie er momentan ist ohnehin wenig Sinn. Damit wärst du immer noch nahe am Original-Code und hättest lediglich eine Verbesserung eingebaut.