A plugin declares three entries in hooks.py. Together they give 13 handler names.
commera_api_version = [1]
commera_events = {"order_paid": ["my_app.orders.on_order_paid"]}
commera_hooks = {"validate_cart": ["my_app.cart.get_cart_refusal"]}
| Hook | What it does | When a handler fails |
|---|---|---|
commera_api_version |
Names the Commera API versions that your plugin supports. See Compatibility | Not a handler |
commera_events |
Tells your plugin that something happened. Handlers run later, in a background job | Commera retries the delivery |
commera_hooks |
Asks your plugin while an action runs. The answer changes the action. Today every hook runs at checkout | The checkout is blocked |
bench migrate prints a warning and writes an Error Log for a key that Commera does not know, for example order_payed.
Events
Register them in commera_events. Each handler gets a CommeraEvent. See Events.
| Key | When it fires |
|---|---|
order_placed |
The shopper places a store order |
order_paid |
A store order is paid |
order_cancelled |
A store order is cancelled |
order_fulfilled |
A store order is shipped, delivered or returned, whichever comes first |
order_delivered |
A store order is delivered |
order_returned |
A store order is partially or fully returned |
order_refunded |
A refund for a store order is submitted |
product_updated |
A product on the storefront changes |
inventory_changed |
Stock of a product on the storefront changes in the store warehouse |
Hooks
Register them in commera_hooks. Each handler gets the cart Quotation. See Hooks.
| Key | What it can do |
|---|---|
validate_cart |
Refuse the checkout, with a message for the shopper |
cart_fees |
Add a charge row to the cart, which adds to the total |
delivery_options |
Hide, reprice or rename delivery options |
payment_methods |
Hide payment methods |
No hook changes an item price, gives a discount or sets the cart total directly.
Other places to extend Commera
These are not Commera hooks:
- Dashboard pages, cards, actions and settings. The folder of a file under
commera/sets where it shows. See Dashboard entries. - Refuse a cancel. Use a Sales Order
before_canceldoc event. See Hooks.
Next steps
Last updated 3 days ago
Was this helpful?