PHP-Formular um Daten des Scripts zu füllen

tkoenig

Grünschnabel
Hey liebe Com.,

erstmal vorab bin nicht so fit was sachen php etc. geht bin gerade so in der Lernphase:D

Nun zum Thema. Ich habe mir ein php-script geschrieben, das wenn ich es aufrufe automatisch eine Bestellung im Magento ausführt.

Die jeweiligen Daten stehen im Skript selbst. Ich möchte aber das diese per formular ausgefüllt werden können und an das script weitergegeben werden und es ausführt.

Hier mein Skript: createOrder.php

PHP:
<?php
// ################################################
// Dieses php-skript führt bei Aufruf, automatisch eine Bestellung mit den
// angegebenen Daten aus. Es muss per Browser mit /createOrder.php aufge-
// rufen werden.
//
// Zu ändernde Variablen sind $Bestellung, $Produkt, $ProduktAnzahl und
// Daten des Kunden(optional).
// ################################################

// Wie viele Bestellungen sollen per Aufruf getätigt werden?
$Bestellungen = 1;

// Welches Produkt soll Bestellt werden? (Produkt-ID von Magento)
$Produkt = 2;

// Wie oft soll das Produkt in der Bestellung gekauft werden?
$ProduktAnzahl = 1;

// Daten des Kunden für die Bestellung
$Vorname = 'Maxi';
$Nachname = 'Mustermann';
$Strasse = 'Muster Strasse 7';
$Stadt = 'Musterstadt';
$PLZ = '88000';
$Tel = '04565478566';
$Land_ID = 'DE';                        // ID von MySQL-Tabelle 'directory_country_region'
$Regions_ID = '85';                    // zB.: Californien ('$Land_ID' => 'US', 'Regions_ID' => 12); Berlin('$Land_ID' => 'DE', '$Regions_ID' => 82)


//Mage::log('My variable: '.$Vorname);

// Falls der Code vom Default Store View (also der 1. Storeview)
// geänder wurde muss dies auch hier auch geändert werden
$codeSV = 'default';


//#####################
// Ab hier nichts mehr ändern !!! #
//#####################

header('Content-Type: text/html; charset=iso-8859-1');

$AnzahlBestellungen = 0;

// Parameterübergabe von URL (zB. /createOrder.php?Bestellungen=2)
if (isset($_GET["Bestellungen"])) {
    $Bestellungen = $_GET["Bestellungen"];
}

while($AnzahlBestellungen < $Bestellungen) {

$AnzahlBestellungen++;

require_once 'app/Mage.php';

Mage::app();

$quote = Mage::getModel('sales/quote')
    ->setStoreId(Mage::app()->getStore($codeSV)->getId());    // ->getStore('default') | default = code vom Standart Store View

if ('Test Bestellung') {
    // Bestellung als Kunde:
    $customer = Mage::getModel('customer/customer')
        ->setWebsiteId(1)
        ->loadByEmail('kunde@example.com');
    $quote->assignCustomer($customer);
  
} else {
    // Bestellung als Gast:
    $quote->setCustomerEmail('gast@example.com');
}


// Produkt(e) für Bestellung hinzufügen

// ->load(ArtikelNr.)
// 'qty' => ArtikelAnzahl

$product = Mage::getModel('catalog/product')->load($Produkt);
$buyInfo = array(
    'qty' => $ProduktAnzahl,
);
$quote->addProduct($product, new Varien_Object($buyInfo));
if ($ProduktAnzahl <= 1)
{
    echo "Es wurde $ProduktAnzahl Produkt hinzugefügt.<br>";
    echo "------------------------------------<br>";
}
else if ($ProduktAnzahl > 1)
{
    echo "Es wurden $ProduktAnzahl Produkte hinzugefügt.<br>";
    echo "------------------------------------<br>";
}

// Daten des Kunden
$addressData = array(
    'firstname' => $Vorname,
    'lastname' => $Nachname,
    'street' => $Strasse,
    'city' => $Stadt,
    'postcode' => $PLZ,
    'telephone' => $Tel,
    'country_id' => $Land_ID,            // ID von Tabelle 'directory_country_region'
    'region_id' => $Regions_ID,        // zB.: Californien ('country_id' => 'US', 'region_id' => 12); Berlin('country_id' => 'DE', 'region_id' => 82)
);
echo("Kundendaten wurden erfasst:<br>");
echo "<br>";
foreach($addressData as $key => $value)
{
    echo $key . ' => ' . $value . '<br>';
}
echo "------------------------------------<br>";

$billingAddress = $quote->getBillingAddress()->addData($addressData);
$shippingAddress = $quote->getShippingAddress()->addData($addressData);

$shippingAddress->setCollectShippingRates(true)->collectShippingRates()
        ->setShippingMethod('flatrate_flatrate')
        ->setPaymentMethod('checkmo');

$quote->getPayment()->importData(array('method' => 'checkmo'));

$quote->collectTotals()->save();

$service = Mage::getModel('sales/service_quote', $quote);
// Schickt die Daten ab und führt die Bestellung aus
$service->submitAll();
$order = $service->getOrder();

printf("Test Bestellung mit der OrderID (%s) erfolgreich!<br>", $order->getIncrementId());
echo "------------------------------------<br>";

} // Ende der "while-Schleife"

if ($AnzahlBestellungen <= 1)
{
    echo "Es wurde $AnzahlBestellungen Bestellung durchgeführt.<br>";
    echo "------------------------------------<br>";
}
else if ($AnzahlBestellungen > 1)
{
    echo "Es wurden $AnzahlBestellungen Bestellungen durchgeführt.<br>";
    echo "------------------------------------<br>";
}

?>

Hier die aktuelle Ausgabe:

HTML:
Es wurde 1 Produkt hinzugefügt.
------------------------------------
Kundendaten wurden erfasst:

firstname => Maxi
lastname => Mustermann
street => Muster Strasse 7
city => Musterstadt
postcode => 88000
telephone => 04565478566
country_id => DE
region_id => 85
------------------------------------
Test Bestellung mit der OrderID (100000047) erfolgreich!
------------------------------------
Es wurde 1 Bestellung durchgeführt.
------------------------------------
 
Zuletzt bearbeitet:
Zurück