Skip to main content

Bestellung duplizieren

Code-Snippet zum Kopieren einer alten Bestellung in den Warenkorb eines Besuchers

Der Code ist zwar unvollständig, gezeigt wird nur die Funktion rund um das Duplizieren einer bestehenden Bestellung in den Warenkorb des Besuchers. Dieser kann auch noch leer sein und damit nicht existieren. Das 'true' Flag forciert dabei das Speichern des Warenkorbs in der Datenbank, auch wenn noch keiner existiert.

Was fehlt ist u.A. der dafür notwendige Code, um eine alte Bestellung auszurufen.

$lineItemInstance  = Plugin::getInstance()->getLineItems();
$cart              = Plugin::getInstance()->getCarts()->getCart(true); // pass true to force the cart to save to the DB.
$lineItems         = [];

foreach ($this->order->getLineItems() as $orderLineItem) {
    $lineItems[] = $lineItemInstance->createLineItem($cart->getId(), $orderLineItem->purchasableId, [], $orderLineItem->qty);
}

$cart->setLineItems($lineItems);
Craft::$app->getElements()->saveElement($cart);