Ich bin auf ein interessantes, aber wahrscheinlich häufiges Problem gestoßen. Wenn das Caching aktiviert ist, wird der Bestand für anonyme Benutzer nicht sofort aktualisiert (was sinnvoll ist, da dies der Punkt des Caching ist). Dies führt jedoch zu einem kleinen UXWTF. Wenn ein Produkt nicht vorrätig ist, wird den Benutzern weiterhin angezeigt, dass "1" noch verfügbar ist. Erst wenn sie versuchen, es in den Warenkorb zu legen, wird ihnen ein Hinweis angezeigt
Die maximale Menge an 'Produktname', die gekauft werden kann, beträgt 0.
Ich möchte den Cache immer noch für alles andere behalten, aber gibt es eine Möglichkeit, das Caching der verfügbaren Bestandsanzahl zu deaktivieren?
Antworten:
Nur eine Idee - in diesem Fall könnte eine Problemumgehung darin bestehen, eine Funktion zu verknüpfen, nachdem eine Bestellung aufgegeben wurde, und dann den Cache programmgesteuert zu bereinigen.
Sie können die
hook_commerce_checkout_complete()
und dort diecache_clear_all()
Funktion aufrufen .quelle
Der Caching-Mechanismus in Drupal ist sehr flexibel. Sie können einen benutzerdefinierten Cache für die Teile einer Seite verwenden, die unter bestimmten Bedingungen "nicht zwischengespeichert" werden sollen. Wenn die Bedingung erfüllt ist (Auschecken), setzen Sie einfach den Cache für diese bestimmte $ cid im Formular "Auschecken" der Kasse zurück .
In diesem Beitrag finden Sie einen guten Überblick über die Caching-API.
quelle