Child pages
  • Hooks in PrestaShop 1.5

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Home page and general site pages

Hook nameDescriptionWhat to expect in $params? (Pseudocode)
displayHeaderCalled within the HTML <head> tags. Ideal location for adding JavaScript and CSS files.N/A
displayTopCalled in the page's header.N/A
displayLeftColumnCalled when loading the left column.N/A
displayRightColumnCalled when loading the right column.
array(
    'cart' => (object) Cart object
);

Note that the Cart object can also be retrieved from the current Context.

displayFooterCalled in the page's footer.N/A
displayHomeCalled at the center of the homepage.N/A

Product page

Hook nameDescriptionWhat to expect in $params? (Pseudocode)
displayLeftColumnProductCalled right before the "Print" link, under the picture.N/A
displayRightColumnProductCalled right after the block for the "Add to Cart" button.N/A
displayProductButtonsCalled inside the block for the "Add to Cart" button, right after that button.N/A
actionProductOutOfStockCalled inside the block for the "Add to Cart" button, right after the "Availability" information.N/A
displayFooterProductCalled right before the tabs.N/A
displayProductTabCalled in tabs list, such as "More info", "Data sheet", "Accessories", etc.N/A
displayProductTabContentCalled when a tab is clicked.
array(
    'product' => (object) Product object
);

Cart page

Hook nameDescriptionWhat to expect in $params? (Pseudocode)
actionCartSaveCalled right after a cart creation or update.N/A
displayShoppingCartFooterCalled right below the cart items table.
array(
'delivery' => $delivery,
'delivery_state' => State::getNameById($delivery->id_state),
'invoice' => $invoice,
'invoice_state' => State::getNameById($invoice->id_state),
'formattedAddresses' => $formatted_addresses,
'products' => array_values($products),
'gift_products' => $gift_products,
'discounts' => $cart_rules,
'is_virtual_cart' => (int)$this->isVirtualCart(),
'total_discounts' => $total_discounts,
'total_discounts_tax_exc' => $total_discounts_tax_exc,
'total_wrapping' => $this->getOrderTotal(true, Cart::ONLY_WRAPPING),
'total_wrapping_tax_exc' => $this->getOrderTotal(false, Cart::ONLY_WRAPPING),
'total_shipping' => $total_shipping,
'total_shipping_tax_exc' => $total_shipping_tax_exc,
'total_products_wt' => $total_products_wt,
'total_products' => $total_products,
'total_price' => $base_total_tax_inc,
'total_tax' => $total_tax,
'total_price_without_tax' => $base_total_tax_exc,
'is_multi_address_delivery' => $this->isMultiAddressDelivery() || ((int)Tools::getValue('multi-shipping') == 1),
'free_ship' => $total_shipping ? 0 : 1,
'carrier' => new Carrier($this->id_carrier, $id_lang),
);

Can be found in /classes/Cart.php

displayShoppingCartCalled after the cart's table of items, right above the navigation buttons.
array(
'delivery' => $delivery,
'delivery_state' => State::getNameById($delivery->id_state),
'invoice' => $invoice,
'invoice_state' => State::getNameById($invoice->id_state),
'formattedAddresses' => $formatted_addresses,
'products' => array_values($products),
'gift_products' => $gift_products,
'discounts' => $cart_rules,
'is_virtual_cart' => (int)$this->isVirtualCart(),
'total_discounts' => $total_discounts,
'total_discounts_tax_exc' => $total_discounts_tax_exc,
'total_wrapping' => $this->getOrderTotal(true, Cart::ONLY_WRAPPING),
'total_wrapping_tax_exc' => $this->getOrderTotal(false, Cart::ONLY_WRAPPING),
'total_shipping' => $total_shipping,
'total_shipping_tax_exc' => $total_shipping_tax_exc,
'total_products_wt' => $total_products_wt,
'total_products' => $total_products,
'total_price' => $base_total_tax_inc,
'total_tax' => $total_tax,
'total_price_without_tax' => $base_total_tax_exc,
'is_multi_address_delivery' => $this->isMultiAddressDelivery() || ((int)Tools::getValue('multi-shipping') == 1),
'free_ship' => $total_shipping ? 0 : 1,
'carrier' => new Carrier($this->id_carrier, $id_lang),
);

Can be found in /classes/Cart.php

displayCustomerAccountFormTopCalled within the client account creation form, right above the "Your personal information" block.N/A
displayCustomerAccountFormCalled within the client account creation form, right before the "Register" button.N/A
actionCustomerAccountAddCalled right after the client account creation.N/A
displayCustomerAccountCalled on the client account homepage, after the list of available links. Ideal location to add a link to this list.N/A
displayMyAccountBlockCalled within the "My account" block, in the left column, below the list of available links. This is the ideal location to add a link to this list.N/A
displayMyAccountBlockfooterDisplays extra information inside the "My account" block.N/A
actionAuthenticationCalled right after the client identification, only if the authentication is valid (e-mail address and password are both OK).N/A
actionBeforeAuthenticationCalled right before authentication.N/A

Search page

Hook nameDescriptionWhat to expect in $params? (Pseudocode)
actionSearchCalled after a search is performed. Ideal location to parse and/or handle the search query and results.
array(
    'expr' => (string) Search query,
    'total' => (int) Amount of search results
);

Carrier choice page

Hook name

Description

What to expect in $params? (Pseudocode)
displayBeforeCarrierDisplayed before the carrier list on front-office.
array(
'carriers' => array(
array(
'name' => (string) Name,
'img' => (string) Image URL,
'delay' => (string) Delay text,
'price' =>  (float) Total price with tax,
'price_tax_exc' => (float) Total price without tax,
'id_carrier' => (int) intified option delivery identifier,
'id_module' => (int) Module ID
)),
'checked' => (int) intified selected carriers,
'delivery_option_list' => array(array(
0 => array( // First address
'12,' => array( // First delivery option available for this address
carrier_list => array(
12 => array( // First carrier for this option
'instance' => Carrier Object,
'logo' => <url to the carrier's logo>,
'price_with_tax' => 12.4, // Example
'price_without_tax' => 12.4, // Example
'package_list' => array(
1, // Example
3, // Example
),
),
),
is_best_grade => true, // Does this option have the biggest grade (quick shipping) for this shipping address
is_best_price => true, // Does this option have the lower price for this shipping address
unique_carrier => true, // Does this option use a unique carrier
total_price_with_tax => 12.5,
total_price_without_tax => 12.5,
position => 5, // Average of the carrier position
),
),
)),
'delivery_option' => array(
'<id_address>' => Delivery option,
...
)
); 
NOTE: intified means an array of integers 'intified' by Cart::intifier
displayCarrierListCalled after the list of available carriers, during the order process. Ideal location to add a carrier, as added by a module.
array(
    'address' => (object) Address object
);

Payment page

Hook nameDescriptionWhat to expect in $params? (Pseudocode)
displayPaymentTopTop of payment page.N/A
displayPaymentCalled when needing to build a list of the available payment solutions, during the order process. Ideal location to enable the choice of a payment module that you have developed.N/A
displayPaymentReturnCalled when the user is sent back to the store after having paid on the 3rd-party website. Ideal location to display a confirmation message or to give some details on the payment.
array(
    'total_to_pay' => (float) Total amount with tax,
    'currency' => (string) Currency sign,
    'objOrder' => (object) Order object,
    'currencyObj' => (object) Currency object
);
displayOrderConfirmationA duplicate of paymentReturn.
array(
    'total_to_pay' => (float) Total amount with tax,
    'currency' => (string) Currency sign,
    'objOrder' => (object) Order object,
    'currencyObj' => (object) Currency object
);
displayBeforePaymentCalled when displaying the list of available payment solutions. Ideal location to redirect the user instead of displaying said list (i.e., 1-click PayPal checkout).
array(
    'module' => (string) Module link [e.g. /module/test/front]
);

Order page

Hook nameDescriptionWhat to expect in $params? (Pseudocode)
actionOrderReturnCalled when the customer request to send his merchandise back to the store, and if now error occurs.
array(
    'orderReturn' => (object) OrderReturn object
);
displayPDFInvoiceCalled when displaying the invoice in PDF format. Ideal location to display content within the invoice.N/A

Mobile theme hooks

All these hooks are specific to PrestaShop's default mobile theme.

...

General hooks

Hook nameDescriptionWhat to expect in $params? (Pseudocode)
displayBackOfficeTopCalled within the header, above the tabs.N/A
displayBackOfficeHeaderCalled between the HEAD tags. Ideal location for adding JavaScript and CSS files.N/A
displayBackOfficeFooterCalled within the page footer, above the "Power By PrestaShop" line.N/A
displayBackOfficeHomeCalled at the center of the homepage.N/A

Orders and order details

Hook nameDescriptionWhat to expect in $params? (Pseudocode)
actionValidateOrderCalled during the new order creation process, right after it has been created.
array(
    'cart' => (object) Cart object,
    'order' => (object) Order object,
    'customer' => (object) Customer object,
    'currency' => (object) Currency object,
    'orderStatus' => (object) OrderState object
);
actionPaymentConfirmationCalled when an order's status becomes "Payment accepted".
array(
    'id_order' => (int) Order ID
);
actionOrderStatusUpdateCalled when an order's status is changed, right before it is actually changed.
array(
    'newOrderStatus' => (object) OrderState object,
    'id_order' => (int) Order ID
);
actionOrderStatusPostUpdateCalled when an order's status is changed, right after it is actually changed.
array(
    'newOrderStatus' => (object) OrderState object,
'id_order' => (int) Order ID
);
actionProductCancelCalled when an item is deleted from an order, right after the deletion.
array(
'order' => (object) Order object,
'id_order_detail' => (int) Order Detail ID
); 
displayInvoiceCalled when the order's details are displayed, above the Client Information block.N/A
displayAdminOrderCalled when the order's details are displayed, below the Client Information block.
array(
'id_order' = (int) Order ID
); 
actionOrderSlipAddCalled during the creation of a credit note, right after it has been created.
array(
    'order' => Order oject,
    'productList' => array(
        (int) product ID 1,
(int) product ID 2,
...,
(int) product ID n ), 'qtyList' => array( (int) quantity 1,
(int) quantity 2,
...,
(int) quantity n 
    )
);

The order of IDs and quantities is important!

Products

Hook nameDescriptionWhat to expect in $params? (Pseudocode)
actionProductSaveCalled when saving products.
array(
'id_product' => (int) Product ID
); 
actionUpdateQuantityCalled during an the validation of an order, the status of which being something other than "canceled" or "Payment error", for each of the order's items.
array(
    'id_product' => (int) Product ID,
    'id_product_attribute' => (int) Product attribute ID,
    'quantity' => (int) New product quantity
);
actionProductAttributeUpdateCalled when a product declination is updated, right after said update.
array(
'id_product_attribute' => (int) Product attribute ID
);
actionProductAttributeDeleteCalled when a product declination is deleted.
array(
'product' => (object) Product object
);
actionWatermarkCalled when an image is added to a product, right after said addition.
array(
    'id_image' => (int) Image ID,
    'id_product' => (int) Product ID
);
displayAttributeFormAdd fields to the form "attribute value".N/A
displayAttributeGroupFormAdd fields to the form "attribute group".N/A
displayAttributeGroupPostProcessCalled when post-process in admin attribute group.N/A
displayFeatureFormAdd fields to the form "feature".N/A
displayFeaturePostProcessCalled when post-process in admin feature.N/A
displayFeatureValueFormAdd fields to the form "feature value".N/A
displayFeatureValuePostProcessCalled when post-process in admin feature value.N/A

Statistics

Hook nameDescriptionWhat to expect in $params? (Pseudocode)
displayAdminStatsGraphEngineCalled when a stats graph is displayed.N/A
displayAdminStatsGridEngineCalled when the grid of stats is displayed.N/A
displayAdminStatsModulesCalled when the list of stats modules is displayed.N/A

Clients

Hook nameDescriptionWhat to expect in $params? (Pseudocode)
displayAdminCustomersCalled when a client's details are displayed, right after the list of the clients groups the current client belongs to.N/A

Carriers

Hook nameDescriptionWhat to expect in $params? (Pseudocode)
actionCarrierUpdateCalled during a carrier's update, right after said update.
array(
    'id_carrier' => (int) Current Carrier ID,
    'carrier' => (object) New Carrier object
);