Cloudways WooCommerce: von der Installation eines kleinen Onlineshops bis zum Ausschluss von Warenkorb und Kasse aus dem Cache

Cloudways WooCommerce ist ein Onlineshop, den man betreibt, indem man das WooCommerce-Plugin in einer WordPress-Anwendung auf einem Cloudways-Server installiert. Um den Onlineshop eines kleinen Geschäfts zu testen, habe ich WooCommerce im WordPress eines Vultr-Testservers in Seoul mit 1 GB installiert und bis zu einer Testbestellung durchgespielt. Warenkorb, Kasse und Mein Konto wurden automatisch vom Cache ausgenommen, und das erste Byte der Produktseite sank mit dem Breeze-Cache von 532,4 ms auf 54,9 ms.
1️⃣ WooCommerce auf Cloudways installieren
Man könnte meinen, ein Onlineshop brauche eine eigene Anwendung, doch der Shop öffnet sich, sobald man das WooCommerce-Plugin zu einer bestehenden WordPress-Anwendung hinzufügt. Auch auf dem Testserver habe ich keine neue Anwendung angelegt, sondern es als Plugin in der bestehenden WordPress-Anwendung installiert.
Installiert habe ich, indem ich mich per SSH mit der Anwendung verbunden und wp-cli genutzt habe; installieren lässt es sich auch über das Menü „Plugins hinzufügen“ im WordPress-Adminbereich.
wp plugin install woocommerce --activateInstalling the plugin...
Plugin installed successfully.
Activating 'woocommerce'...
Plugin 'woocommerce' activated.
Success: Installed 1 of 1 plugins.Installation und Aktivierung dauerten 30 Sekunden, der Plugin-Ordner war 72 MB groß.
wp post list --post_type=page --fields=ID,post_title,post_name --format=csvID,post_title,post_name
7,Shop,shop
8,Cart,cart
9,Checkout,checkout
10,My account,my-account
11,Refund and Returns Policy,refund_returns
2,Sample Page,sample-page
3,Privacy Policy,privacy-policyMit der Aktivierung legte WooCommerce fünf Seiten an: Shop, Warenkorb (Cart), Kasse (Checkout), Mein Konto (My account) und eine Seite mit den Rückerstattungsrichtlinien.
2️⃣ Grundeinstellungen: Verkaufsland, Währung, Zahlungsarten
Auch wenn die Seiten angelegt sind, steht ein frisch installierter Shop auf einer Adresse in Kalifornien (USA) und US-Dollar; ein Geschäft in Korea ändert also zuerst Verkaufsland und Währung.
| Einstellung | Direkt nach der Installation | Geänderter Wert |
|---|---|---|
| Verkaufsland (Country / State) | Kalifornien, USA | Südkorea |
| Währung (Currency) | US-Dollar (USD) | Südkoreanischer Won (KRW) |
| Banküberweisung (Direct bank transfer) | Aus | An |
| Scheck (Check payments) | Aus | Aus |
| Nachnahme (Cash on delivery) | Aus | Aus |
Der Won hat keine Nachkommastellen, also [Number of decimals] auf 0 setzen und mit [Save changes] speichern. Direkt nach der Installation gab es drei Zahlungsarten – Banküberweisung, Scheck und Nachnahme –, für die Testbestellung habe ich nur die Banküberweisung eingeschaltet. Auf dem Bildschirm klickt man im Tab [Payments] unter [Take offline payments] bei [Direct bank transfer] auf [Enable].
Kartenzahlung steht nicht in der Liste der Offline-Zahlungen. Nachdem das Verkaufsland auf Südkorea gestellt ist, zeigt der Bildschirm [Payments] Visa Acceptance Solutions und PayPal Payments mit einer Schaltfläche [Install]; wer per Karte verkaufen will, installiert solche Zahlungs-Plugins.
3️⃣ Produkt anlegen und Testbestellung: vom Warenkorb bis zur Bestellung per Überweisung
Eine eingegangene Bestellung heißt nicht, dass bezahlt ist. Eine Bestellung per Überweisung bleibt im Status [On hold], bis der Zahlungseingang bestätigt ist.
Das Testprodukt wurde mit einem Preis von 15.000 Won und 10 Stück Bestand angelegt und wie von einem Besucher in den Warenkorb gelegt und per Überweisung bestellt.
wp wc shop_order list --user=1 --fields=id,status,total,payment_method --format=csvid,status,total,payment_method
13,on-hold,15000,bacswp wc product get 12 --user=1 --fields=id,price,stock_quantity --format=csvField,Value
id,12
price,15000
stock_quantity,9Die Bestellung wurde mit Status on-hold und Zahlungsart Banküberweisung (bacs) erfasst, und obwohl noch nicht bezahlt war, sank der Bestand schon beim Bestellen von 10 auf 9.
4️⃣ WooCommerce-Cache-Ausnahmen: Warenkorb-, Kassen- und Mein-Konto-Adressen
Seitencache passt zur Shopseite und zu den Produktseiten, aber nicht zu Warenkorb, Kasse und Mein Konto, deren Inhalt für jeden Besucher anders ist. Den Warenkorb aus dem Cache zu nehmen ist, als druckte man die Preisschilder im Regal vorab, den Kassenbon aber für jeden Kunden neu. Auch ohne eingeschaltetes Cache-Plugin schickte WooCommerce für diese drei Seiten Antwort-Header, die das Cachen untersagen.
curl -sI https://example.com/cart/ | grep -i cache-controlcache-control: no-cache, must-revalidate, max-age=0, privateAls ich Breeze, das mit der Cloudways-Anwendung mitinstallierte Cache-Plugin, mit Standardwerten aktivierte, war das Feld für ausgeschlossene Adressen in den Einstellungen leer, in der Breeze-Konfigurationsdatei standen die drei Adressen aber in der Ausschlussliste.
grep -A4 exclude_url wp-content/breeze-config/breeze-config.php 'exclude_url' =>
array (
0 => '/cart/*',
1 => '/checkout/*',
2 => '/my-account/*',Von einem anderen Server in Seoul habe ich jede Adresse 10-mal angefragt und den Median der Zeit bis zum ersten Byte (TTFB) gemessen; Varnish war in der Anwendung ausgeschaltet.
| Adresse | Cache aus | Breeze an |
|---|---|---|
| Shop /shop/ | 484.7ms | 55.2ms |
| Produkt /product/test-mug/ | 532.4ms | 54.9ms |
| Warenkorb /cart/ | 506.7ms | 496.9ms |
| Mein Konto /my-account/ | 507.4ms | 377.0ms |
Mit Breeze antworteten Shop- und Produktseite in rund 55 ms, Warenkorb und Mein Konto wurden ohne Cache jedes Mal von PHP erzeugt und brauchten 377–497 ms.
5️⃣ Was der 1-GB-Testserver abdeckt: wann es für einen kleinen Shop nicht passt
Auch wenn der Cache die Produktseiten schnell macht, verarbeitet PHP Warenkorb und Kasse bei jeder Bestellung. Dieser Testserver deckt nur Installation, Bestellung und Cache-Ausnahmen mit einem Produkt und einer Testbestellung ab; ein Shop, bei dem mit mehr Bestellungen mehr Warenkorb- und Kassenanfragen anfallen, sollte zusätzlich prüfen: Servergröße ändern.
Auch die PHP-Version sollte man prüfen. PHP 8.2.34 auf dem Testserver erreicht die Empfehlung der offiziellen WooCommerce-Dokumentation (PHP 8.3 oder höher) nicht, Installation und Bestellung liefen aber.
Auf dem Vultr-Testserver Seoul 1 GB dauerte die WooCommerce-Installation 30 Sekunden, die Testbestellung wurde im Status [On hold] gespeichert, und das erste Byte der Produktseite lag mit Breeze bei 54,9 ms, beim Warenkorb bei 496,9 ms. Als Nächstes wird ein Zahlungs-Plugin im Testmodus angebunden und dieselbe Bestellung noch einmal per Karte aufgegeben.
🔢 FAQ & empfohlene Inhalte
















ℹ️ Affiliate-Hinweis
Die Inhalte dieser Website enthalten Affiliate-Links. Kauft ein Besucher über einen dieser Links ein Produkt oder eine Dienstleistung, erhält die Website vom Verkäufer eine Provision. Der Betrag, den der Käufer zahlt(bei Aktionsrabatten sinkt er ↓), steigt dadurch nicht. Angegebene Preise, Rabatte und Lagerbestände entsprechen dem Stand bei Erstellung und können abweichen; prüfe sie daher vor dem Kauf beim Verkäufer. Produkte werden nach eigenen Kriterien ausgewählt und bewertet, und Provisionen beeinflussen weder die Reihenfolge noch den Inhalt der Bewertungen.