Shipping - Kontrekte Modul Klasse - Referenz¶
Erweitert die abtrakte Modul Klasse um folgende Attribute und Methoden.
Meta¶
Wichtiger Hinweis
Der PHP-Klassen Name und der Dateiname darf bei Shipping Modul Klassen keine Unterschriche _
beinhalten.
-
my_first_shipping_module / my_first_shipping_module.php
-
myfirstshippingmodule / myfirstshippingmodule.php
name | value | example |
---|---|---|
class directory | /includes/modules/shipping/ |
|
lang directory | /lang/<LANGUAGE>/modules/shipping/ |
|
name | snake_case ohne _ |
mymodule |
class name | shipping<NAME> in snake_case ohne _ |
shippingmymodule |
file name | <CLASS_NAME>.php in snake_case |
shippingmymodule.php |
configuration type | MODULE_SHIPPING in SCREAM_CASE |
|
configuration prefix | <CONFIGURATION_TYPE>_<NAME> in SCREAM_CASE |
MODULE_SHIPPING_MYMODULE |
Attribute¶
keine
Methoden¶
quote()¶
Option | Value |
---|---|
optional | 🚫 |
caller | checkout_shipping.php |
Beschreibung
Die Methode quote()
muss ein Array zurückliefern. Wir nennen dieses Array in diesem Text ShippingQuoteArray
. Mit diesem Array wird dem Shop mitgeteilt, wie hoch die Versandkosten für die aktuelle Bestellung (die sich im Bestellablauf befindet) ausfallen werden. Zudem können in dem Array ShippingQuoteArray
mehrere Versandoption definiert werden. Diese nennen sich im modified-Kontext methods
. Wir nennen einen Eintrag ShippingQuoteMethodArray
. So könnte dem Käufer z. B. ein Standard-Versand und ein Express-Versand angeboten werden. Das Array ShippingQuoteArray
muss mindestens ein ShippingQuoteMethodArray
beinhalten.
In der Methode quote()
werden typischerweise auf die globalen Variablen $total_weight
, $shipping_weight
, $shipping_quoted
und $shipping_num_boxes
zugegriffen.
Variable | Beschreibung |
---|---|
$order |
Die Bestelldaten |
$shipping_weight |
Gesamtgewicht der Bestellung |
$shipping_quoted |
??? |
$shipping_num_boxes |
???. Vermutlich die Anzahl der Pakete, wie das berechnet/definiert wird ist noch unklar. |
Objekte und Arraystrukturen
ShippingQuoteArray (array)
Key | Typ | Beschreibung | Beispiel |
---|---|---|---|
id |
string | Eindeutiger Bezeichner der Versandart. Nur Buchstaben, keine _ erlaubt. |
myfirstshippingmodule |
module |
string | Anzeigeinformation für den Nutzer | Versand mit MyShipping |
methods |
array | Array aus mind einem ShippingQuoteMethodArray |
ShippingQuoteMethodArray (array)
Key | Typ | Beschreibung | Beispiel |
---|---|---|---|
id |
string | Eindeutiger Bezeichnet der Versandart. Nur Buchstaben, keine _ erlaubt. |
express |
title |
string | Anzeige Information für den Nutzer | Express Versand für 9,90 € |
cost |
float | Versandkosten | 9.90 |
Beispiel
/**
* @param string $method Gibt an, welche Shipping-Method zurückgegeben
* werden soll. Wenn leer, alle zur Auswahl stehenden Methoden
* zurückgeben.
* @param string $module ??? lorem
*
* @return array Siehe Beispiel in quote()
*/
public function quote(string $method = '', string $module = ''): array
{
// [...]
$shippingQuoteMethodArray1 = [
'id' => 'standard', // keine Unterstriche möglich!
'title' => 'Standard Versand',
'cost' => 4.90,
];
$shippingQuoteMethodArray2 = [
'id' => 'express', // keine Unterstriche möglich!
'title' => 'Express Versand',
'cost' => 9.90,
];
$shippingQuoteArray = [
'id' => 'myfirstshippingmodule', // keine Unterstriche möglich!
'module' => sprintf(
'My First Module (%s kg)', round($shipping_weight, 2)
),
'methods' => [
$shippingQuoteMethodArray1,
$shippingQuoteMethodArray2
]
];
return $shippingQuoteArray;
}
Beispiele¶
Beispieldateien findest du unter github.com/RobinTheHood/class-extensions.