DEV MODE
Tax based on shipping to United Kingdom gb flag , Change?
Basket 
NEW CLEARANCE
Ajax FireProtect 2 AC (Heat/Smoke) Wireless Smoke and Heat Alarm (Black)
fullscreen

Ajax FireProtect 2 AC (Heat/Smoke) Wireless Smoke and Heat Alarm (Black)

Rated 0/5   0 reviews | 0 Questions
Ajax logo Ajax
  • Smoke/Heat Detector
  • Sealed Battery
  • Black or White
Link to videos

The Ajax FireProtect 2 AC is a next-gen mains-powered detector with a unique smoke chamber that does not require regular cleaning. In black or white. (Read more)

Loading

There are 2 variants of this product

In stock
Delivery from £3.98
Order before 15:30 for delivery from Wednesday 7th May
Product CodeAJA0180
ModelFireProtect 2 AC (Heat/Smoke) (BLACK)
More Information
RELATED PRODUCTS

PRODUCT DETAILS

The Ajax FireProtect 2 AC is a next-gen mains-powered detector designed for residential fire safety. The unique smoke chamber does not require regular cleaning, and sophisticated software minimizes false alarms. The dual-spectrum sensor instantly distinguishes smoke from steam, and two thermistors quickly react to the synthetic materials’ burning. Everything meets the latest fire safety standards. Thought-out design, improved mounting panel with WAGO 221 connectors, and in-app settings make the installation process nice and easy, giving an ultimate experience for PRO.


Patented smoke chamber technology

Encouraged by world standards and best practices, Ajax reaches an entirely new level of technology in residential fire safety with FireProtect 2 AC. A unique smoke chamber that is dustproof and impenetrable for insects, a dual-spectrum optical sensor, and a proprietary HazeFlow 2 software algorithm guarantee the speed and accuracy of fire detection — ultimate safety with no stress about false alarms.


Impenetrable for dust and insects

The smoke chamber is designed with zero possibility of contamination that can affect detection. A unique circulation mechanism provides the optical sensor with an unobstructed field to quickly identify products of combustion in the air.


Ignores сooking fumes and water steam

The smoke chamber is hardwired with a dual-spectrum optical sensor that has blue and infrared LEDs with different wavelengths. It uses the most reliable real-time detection method, directly measuring the microparticle concentration in the air. This technology allows FireProtect 2 AC to determine the size of the volatile particles inside the chamber and respond only to smoke, ignoring vapour and water steam.


Enhanced wireless interconnection

6628ce3dc5fbf_screenshot2024-04-24101738.png

All FireProtect 2 AC detectors can synchronously notify about the fire alarm in two ways: primary and fallback . In case of danger, the initiating detector sends a fire alarm to the hub. The hub initiates the primary interconnect: all fire detectors will activate the built-in sirens in 20 seconds — three times faster than the fire standard requires. All information is immediately available in Ajax apps: initiating detector’s location, alarm type, and exact time. If there is no connection with the hub, the initiating detector activates the fallback interconnection bydirectly sending the alarm to other fire detectors. It takes only 1 minute to raise an alarm.


Features:

  • Wireless heat & smoke detector
  • Dustproof smoke chamber
  • SmartBracket with adjustable rotation angle
  • Quick and easy to fit
  • 85 dB siren
  • Dual spectrum optical smoke sensor
  • White or black
  • Ignores сooking fumes and water steam
  • Powered by 110–240 V~ mains and has a sealed battery to serve as a backup
  • Different sound and LED indications
  • Enhanced wireless interconnection
  • Monitoring with PRO Desktop
SPECIFICATIONS
Communication
Jeweller communication technology
Proprietary wireless communication technology to transmit commands, alarms, and events.

Key features:
Two-way communication.
Advanced anti-sabotage.
Block encryption featuring a dynamic key.
Instant notifications.
Remote configuration in the Ajax apps.
Frequency bands
866.0 – 866.5 MHz
868.0 – 868.6 MHz
868.7 – 869.2 MHz
905.0 – 926.5 MHz
915.85 – 926.5 MHz
921.0 – 922.0 MHz
Maximum effective radiated power (ERP)
up to 20 mW
Radio signal modulation
GFSK
Radio communication range
up to 1,700 m
Encrypted communication
All stored and transmitted data are protected by block encryption featuring a dynamic key.
Frequency hopping
Radio communication uses frequency hopping to prevent interception and jamming.
Sensitive elements
Sensitive elements

smoke sensor
heat sensor
CO (carbon monoxide) sensor
Smoke detection
Sensitive element
double-spectrum optical sensor
Detects smoke by the size of particles in the air.
Protection from false alarms
Does not react to water vapor.
Patented smoke chamber
Protects the smoke sensor from dust, dirt, and insects
Dangerous temperature detection
Sensitive element
according to the requirements for Class A1R heat detectors
Requirements of EN 54-5 and BS 5446-2 standards.
High temperature alarm
at temperatures above 64°C
Temperature spike alarm
when the temperature rises by more than 10°C in 1 minute or less
Additional features
Built-in siren
volume 85 dB at a distance of 3 meters
Sound notification of alarms. Remains active until the reason for triggering is eliminated or until the user manually disables the notification.
Interconnected fire detectors alarms

via primary interconnection
If one of the fire detectors in the system detects a threat, it sends an alarm to the hub. Within 20 seconds, the hub initiates an interconnected alarm and sends data to Ajax apps.

via fallback interconnection
At the same time with notifying the hub, the initiating detector sends an alarm directly to other detectors. All connected detectors activate the buzzer within a minute. It will work even in the worst-case scenario of losing connection with the hub.
LED indication
green is a power indication
An LED indicator on the device enclosure lights continuously when powered by an external power source. If the device draws power from the backup battery, the LED indicator lights up once every 56 seconds. This indication complies with the requirements stipulated in EN 14604 and EN 50291 standards.

yellow is a malfunction indication
An LED indicator on the device enclosure lights up to signal detected malfunctions. This can occur in instances such as battery depletion, smoke chamber contamination, or reaching the end of the service life.

red is a fire alarm indication

An LED indicator on the device enclosure lights up when the detector registers a fire alarm.
Button on the front panel of the detector
In normal mode, when pressed, it starts the smoke chamber test. In the event of an alarm or malfunction, the pressing turns off the detector sound notification.
External power supply
110–240 V~, 50/60 Hz
The phase and neutral cables from the external power supply should be connected to the WAGO terminals on SmartBracket mounting panel. To remove the detector from SmartBracket, there is no need to disconnect the power cables.
Recommendations
Recommendations
The device is designed for indoor installation only.
SmartBracket mounting panel allows adjusting the position of the detector even after installation.
Sabotage protection
Tamper alarm
Notifications on attempts to detach the detector from the surface or remove it from the mounting panel.
Protection against spoofing
device authentication
Communication loss detection
within 15 minutes
The time required to detect a communication loss depends on the settings for the number of undelivered data packages (specified in the Jeweller or Jeweller/Fibra settings).
Power supply
Main
110–240 V~, 50/60 Hz
Backup
1 non-replaceable lithium battery CR-2/3AZ
Enclosure
Dimensions
122 x 122 x 54 mm
Weight
318 g
Operating temperature range
from 0°С to +50°С
Operating humidity
up to 80%
Colours
Black or white
Complete set
FireProtect 2 AC (Heat/Smoke) Jeweller
SmartBracket mounting panel
WAGO 221 3-conductor terminal — 2 pcs.
(pre-installed in SmartBracket)
Installation kit
Quick start guide
VARIANTS
AJA0182 WHITE In stock
AJA0180 BLACK In stock
USEFUL FILES AND LINKS
Videos
Files
  Ajax FireProtect 2 AC Datasheet
  Ajax FireProtect 2 AC User Manual
Links*
Ajax website
Ajax support site

* External websites provide additional content that supports the content on connectec.uk however the external Web site is subject to change and is beyond the control of Connectec Ltd. Connectec cannot guarantee the accuracy of content on external websites and does not endorse the information or products on any external websites. You will be subject to the external websites own privacy policy when you follow these links.

QUESTIONS AND ANSWERS

Get expert answers to questions specific to this product below or for more help visit our Q&A forum


Be the first to ask a question and help others interested in this product

REVIEWS

Read customer reviews or submit your review of this product


Thanks for taking the time to review this product.
Your feedback helps us improve our products and services as well as helping other users make informed buying decisions.

There are no reviews for this product.


Why buy from Connectec?

Support

SUPPORT

Our technical support team are experienced installation engineers with years of field experience.

service_icon.png

SERVICE

Customer service is our top priority. We always try to ensure we offer a first class service too all our customers.

free_delivery_icon.png

DELIVERY

We offer FREE mainland UK delivery on orders over £75 and FREE next day delivery on orders over £150*.

partner_icon.png

PARTNERS

We are approved resellers for direct access to manufacturer warranty and support.

* Qualifying products only, subject to terms. For more information view our delivery information.

Compare 0
Google review badge
__Secure-PHPSESSID / 152ca4b3ce48631f0e92a8b1b5ff928f
0.094506
Array
(
    [152ca4b3ce48631f0e92a8b1b5ff928f] => Array
        (
            [customer_group_id] => 1
            [pricing_groups] => 
            [currency] => GBP
            [currency_value] => 1.00000000
            [country_id] => 222
            [location_id] => 0
            [tracker] => 5ff7890d88edc717582bd377335c901fcb5e2ff50223fda067be82ec47e330c1
            [shipping_methods] => Array
                (
                    [size] => 1
                    [name] => Small Items
                    [methods] => Array
                        (
                            [0] => Array
                                (
                                    [type] => shipping
                                    [shipping_method_id] => 2
                                    [location_id] => 0
                                    [name] => UK Economy
                                    [notes] => 
                                    [description] => Economy shipping to UK addresses
                                    [arrival_date] => 2025-05-09
                                    [arrival_dates] => Array
                                        (
                                            [0] => 2025-05-09
                                            [1] => 2025-05-12
                                            [2] => 2025-05-13
                                            [3] => 2025-05-14
                                            [4] => 2025-05-15
                                            [5] => 2025-05-16
                                            [6] => 2025-05-19
                                            [7] => 2025-05-20
                                            [8] => 2025-05-21
                                            [9] => 2025-05-22
                                            [10] => 2025-05-23
                                        )

                                    [arrival_text] => Friday 9th May (4 days)
                                    [amount] => 62.5
                                    [amount_diff] => 62.5
                                    [amount_diff_text] => £75.00
                                    [price] => 3.32
                                    [price_text] => £3.98
                                )

                            [1] => Array
                                (
                                    [type] => shipping
                                    [shipping_method_id] => 3
                                    [location_id] => 0
                                    [name] => UK Priority (Mainland UK)
                                    [notes] => 
                                    [description] => Priority delivery to UK mainland
                                    [arrival_date] => 2025-05-08
                                    [arrival_dates] => Array
                                        (
                                            [0] => 2025-05-08
                                            [1] => 2025-05-09
                                            [2] => 2025-05-12
                                            [3] => 2025-05-13
                                            [4] => 2025-05-14
                                            [5] => 2025-05-15
                                            [6] => 2025-05-16
                                            [7] => 2025-05-19
                                            [8] => 2025-05-20
                                            [9] => 2025-05-21
                                            [10] => 2025-05-22
                                        )

                                    [arrival_text] => Thursday 8th May (3 days)
                                    [amount] => 83.333
                                    [amount_diff] => 83.333
                                    [amount_diff_text] => £100.00
                                    [price] => 4.16
                                    [price_text] => £4.99
                                )

                            [2] => Array
                                (
                                    [type] => shipping
                                    [shipping_method_id] => 1
                                    [location_id] => 0
                                    [name] => UK Next Working Day
                                    [notes] => 
                                    [description] => Next working day delivery to mainland UK addresses
                                    [arrival_date] => 2025-05-07
                                    [arrival_dates] => Array
                                        (
                                            [0] => 2025-05-07
                                            [1] => 2025-05-08
                                            [2] => 2025-05-09
                                            [3] => 2025-05-12
                                            [4] => 2025-05-13
                                            [5] => 2025-05-14
                                            [6] => 2025-05-15
                                            [7] => 2025-05-16
                                            [8] => 2025-05-19
                                            [9] => 2025-05-20
                                            [10] => 2025-05-21
                                        )

                                    [arrival_text] => Wednesday 7th May (2 days)
                                    [amount] => 124.99
                                    [amount_diff] => 124.99
                                    [amount_diff_text] => £149.99
                                    [price] => 7.49
                                    [price_text] => £8.99
                                )

                            [3] => Array
                                (
                                    [type] => shipping
                                    [shipping_method_id] => 16
                                    [location_id] => 0
                                    [name] => UK Next Working Day < 1:00 PM
                                    [notes] => 
                                    [description] => Delivery to UK mainland addresses before 1:00 PM
                                    [arrival_date] => 2025-05-07
                                    [arrival_dates] => Array
                                        (
                                            [0] => 2025-05-07
                                            [1] => 2025-05-08
                                            [2] => 2025-05-09
                                            [3] => 2025-05-12
                                            [4] => 2025-05-13
                                            [5] => 2025-05-14
                                            [6] => 2025-05-15
                                            [7] => 2025-05-16
                                            [8] => 2025-05-19
                                            [9] => 2025-05-20
                                            [10] => 2025-05-21
                                        )

                                    [arrival_text] => Wednesday 7th May (2 days)
                                    [amount] => 0
                                    [amount_diff] => 0
                                    [amount_diff_text] => £0.00
                                    [price] => 12.5
                                    [price_text] => £15.00
                                )

                            [4] => Array
                                (
                                    [type] => shipping
                                    [shipping_method_id] => 17
                                    [location_id] => 0
                                    [name] => UK Next working day < 11:00 AM
                                    [notes] => 
                                    [description] => Delivery to mainland UK addresses before 11:00 AM
                                    [arrival_date] => 2025-05-07
                                    [arrival_dates] => Array
                                        (
                                            [0] => 2025-05-07
                                            [1] => 2025-05-08
                                            [2] => 2025-05-09
                                            [3] => 2025-05-12
                                            [4] => 2025-05-13
                                            [5] => 2025-05-14
                                            [6] => 2025-05-15
                                            [7] => 2025-05-16
                                            [8] => 2025-05-19
                                            [9] => 2025-05-20
                                            [10] => 2025-05-21
                                        )

                                    [arrival_text] => Wednesday 7th May (2 days)
                                    [amount] => 0
                                    [amount_diff] => 0
                                    [amount_diff_text] => £0.00
                                    [price] => 20.83
                                    [price_text] => £25.00
                                )

                            [5] => Array
                                (
                                    [type] => shipping
                                    [shipping_method_id] => 18
                                    [location_id] => 0
                                    [name] => UK Saturday
                                    [notes] => 
                                    [description] => Delivery on Saturdays
                                    [arrival_date] => 2025-05-10
                                    [arrival_dates] => Array
                                        (
                                            [0] => 2025-05-10
                                            [1] => 2025-05-17
                                            [2] => 2025-05-24
                                        )

                                    [arrival_text] => Saturday 10th May (5 days)
                                    [amount] => 0
                                    [amount_diff] => 0
                                    [amount_diff_text] => £0.00
                                    [price] => 16.67
                                    [price_text] => £20.00
                                )

                        )

                )

            [recent] => Array
                (
                    [18545] => 2025-05-05 07:51:23
                )

        )

)
Array
(
    [ALL] => Array
        (
            [0] => 07:51:23; PREPARED; MEMCACHE; __construct; SELECT * FROM ct_url_alias WHERE store_id = ? OR store_id = 0; 1
            [1] => 07:51:23; PREPARED; MEMCACHE; index; SELECT * FROM ct_setting WHERE store_id = 0 OR store_id = ? ORDER BY store_id ASC; 1
            [2] => 07:51:23; PREPARED; MEMCACHE; __construct; SELECT * FROM ct_customer_group WHERE customer_group_id = ?; 1
            [3] => 07:51:23; PREPARED; MEMCACHE; getCustomerCatalog; SELECT cc.* FROM ct_customer_catalog_customer ccc LEFT JOIN ct_customer_catalog cc ON cc.customer_catalog_id = ccc.customer_catalog_id WHERE (ccc.customer_id = ? AND ccc.customer_id != 0) OR ccc.customer_group_id = ?; 0|1
            [4] => 07:51:23; STANDARD; MEMCACHE; ModelLocalisationCurrency; getCurrencies; SELECT * FROM ct_currency WHERE status = 1 ORDER BY title ASC
            [5] => 07:51:23; STANDARD; MEMCACHE; Cart\Currency; __construct; SELECT * FROM ct_currency
            [6] => 07:51:23; PREPARED; 0.001041; Cart\Tax; setAddress; SELECT tr1.tax_class_id, tr2.tax_rate_id, tr2.name, tr2.rate, tr2.type, tr2.tax_rate_register FROM ct_tax_rule tr1 LEFT JOIN ct_tax_rate tr2 ON (tr1.tax_rate_id = tr2.tax_rate_id) LEFT JOIN ct_zone_to_geo_zone z2gz ON (tr2.geo_zone_id = z2gz.geo_zone_id) LEFT JOIN ct_geo_zone gz ON (tr2.geo_zone_id = gz.geo_zone_id) WHERE z2gz.country_id = ? AND z2gz.zone_id = ? AND tr2.tax_rate_register = ?; 222|11|0
            [7] => 07:51:23; PREPARED; 0.000550; Tracking; getNewTracker; SELECT tracking_id FROM ct_tracking WHERE tracker = ?; 5ff7890d88edc717582bd377335c901fcb5e2ff50223fda067be82ec47e330c1
            [8] => 07:51:23; PREPARED; MEMCACHE; getRedirect; SELECT * FROM ct_url_redirect WHERE source = ? AND path = ?; security|
            [9] => 07:51:23; PREPARED; MEMCACHE; getRedirect; SELECT * FROM ct_url_redirect WHERE source = ? AND path = ?; intruder-alarms|
            [10] => 07:51:23; PREPARED; MEMCACHE; getRedirect; SELECT * FROM ct_url_redirect WHERE source = ? AND path = ?; wireless-alarm-systems|
            [11] => 07:51:23; PREPARED; MEMCACHE; getRedirect; SELECT * FROM ct_url_redirect WHERE source = ? AND path = ?; ajax-jeweller|
            [12] => 07:51:23; PREPARED; MEMCACHE; getRedirect; SELECT * FROM ct_url_redirect WHERE source = ? AND path = ?; ajax-detectors-and-sensors|
            [13] => 07:51:23; PREPARED; MEMCACHE; getRedirect; SELECT * FROM ct_url_redirect WHERE source = ? AND path = ?; ajax-fireprotect-2-ac-heat-smoke-wireless-smoke-and-heat-alarm|
            [14] => 07:51:23; PREPARED; 0.001197; ModelCatalogProduct; getProduct; SELECT DISTINCT p.*, pav.available, pd.feature, pd.description, pd.specification, pd.tag, pd.meta_title, pd.meta_description, pd.product_note, IF(p.eol OR p.increment < 1, 1, p.increment) AS increment, IF(p.eol OR p.minimum < 1, 1, p.minimum) AS minimum, IF(p.eol, IF(p.maximum > 0, LEAST(pav.available, p.maximum), pav.available), IF(p.maximum > 0, p.maximum, 9999)) AS maximum, m.name AS manufacturer, m.image AS manufacturer_thumb, m.site AS manufacturer_site, m.support AS manufacturer_support, ss.name AS stock_status, ss.in_stock, ss.zero_checkout, COALESCE(AVG(r.rating), 0) AS rating, COUNT(DISTINCT r.review_id) AS reviews, p.sort_order , (SELECT GROUP_CONCAT(CONCAT(pv.variant_id, '|', pv.name)) FROM ct_product_variant pv WHERE pv.product_id = p.product_id GROUP BY pv.product_id ORDER BY pv.sort_order) AS variants FROM ct_product p LEFT JOIN ct_product_available pav ON pav.product_id = p.product_id AND pav.store_id = 1 LEFT JOIN ct_review r ON (r.product_id = p.product_id AND r.status = '1') LEFT JOIN ct_stock_status ss ON (p.stock_status_id = ss.stock_status_id) LEFT JOIN ct_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN ct_manufacturer m ON (p.manufacturer_id = m.manufacturer_id) WHERE p.product_id = ?; 18545
            [15] => 07:51:23; PREPARED; 0.000249; ModelCatalogProduct; getProductKit; SELECT * FROM ct_product_kit WHERE product_id = ?; 18545
            [16] => 07:51:23; PREPARED; 0.000765; ModelCatalogProduct; getProductPrice; SELECT p.cost, p.tax_class_id, COALESCE(pr.markup, p.markup) AS markup, COALESCE(pr.login, p.login) AS login, COALESCE(pr.trade, p.trade) AS trade, p.rrp, p.points, COALESCE(pd.price, prd.price, 0) AS discount_price, COALESCE(pd.percent, prd.percent, 0) AS discount_percent, COALESCE(pd.markup, prd.markup, 0) AS discount_markup, COALESCE(pd.date_end, '') AS discount_end, COALESCE(pd.reason, prd.reason, '') AS discount_reason, COALESCE(pd.customer_group_id, prd.customer_group_id, 0) AS customer_group_id FROM ct_product p LEFT JOIN ct_product_available pav ON pav.product_id = p.product_id LEFT JOIN ct_price_rule pr ON pr.price_rule_id = p.price_rule_id LEFT JOIN ct_price_rule_discount prd ON prd.price_rule_id = pr.price_rule_id AND ((prd.customer_id = ? OR prd.customer_id = 0) AND (prd.customer_group_id = 0 OR prd.customer_group_id = ? OR FIND_IN_SET(prd.customer_group_id, ?)) AND prd.quantity <= ?) LEFT JOIN ct_product_discount pd ON pd.product_id = p.product_id AND ((pd.customer_id = ? OR pd.customer_id = 0) AND (pd.customer_group_id = 0 OR pd.customer_group_id = ? OR FIND_IN_SET(pd.customer_group_id, ?)) AND ((pd.date_start = '0000-00-00' OR pd.date_start < NOW()) AND (pd.date_end = '0000-00-00' OR pd.date_end > NOW())) AND pd.quantity <= ? AND (pd.quantity_end = '' OR pav.available > pd.quantity_end)) WHERE p.product_id = ? ORDER BY prd.quantity DESC, pd.quantity DESC, prd.sort_order ASC, pd.sort_order ASC LIMIT 1; 0|1||1|0|1||1|18545
            [17] => 07:51:23; PREPARED; 0.000413; ModelCatalogProduct; getProductPath; SELECT DISTINCT *, (SELECT GROUP_CONCAT(cp.path_id ORDER BY level SEPARATOR '_') FROM ct_category_path cp WHERE cp.category_id = p2c.category_id GROUP BY cp.category_id) AS path FROM ct_product_to_category p2c WHERE p2c.product_id = ? AND p2c.primary_category = 1 AND p2c.store_id = ?; 18545|1
            [18] => 07:51:23; PREPARED; 0.000525; ModelCatalogProduct; getProductVariant; SELECT pv.variant_id, pv.name AS variant_name, p.sku, p.model, p.mpn, p.ean, p.tax_class_id, pav.available, ss.name AS stock_status, ss.in_stock FROM ct_product_variant pv LEFT JOIN ct_product p ON pv.variant_id = p.product_id LEFT JOIN ct_product_available pav ON pav.product_id = p.product_id AND pav.store_id = ? LEFT JOIN ct_stock_status ss ON p.stock_status_id = ss.stock_status_id WHERE pv.product_id = ? AND p.status > 1 AND (p.eol = 0 OR pav.available > 0) AND p.date_available <= CURDATE() ORDER BY pv.sort_order ASC; 1|18545
            [19] => 07:51:23; PREPARED; 0.000229; ModelCatalogProduct; getProductKit; SELECT * FROM ct_product_kit WHERE product_id = ?; 18543
            [20] => 07:51:23; PREPARED; 0.000733; ModelCatalogProduct; getProductPrice; SELECT p.cost, p.tax_class_id, COALESCE(pr.markup, p.markup) AS markup, COALESCE(pr.login, p.login) AS login, COALESCE(pr.trade, p.trade) AS trade, p.rrp, p.points, COALESCE(pd.price, prd.price, 0) AS discount_price, COALESCE(pd.percent, prd.percent, 0) AS discount_percent, COALESCE(pd.markup, prd.markup, 0) AS discount_markup, COALESCE(pd.date_end, '') AS discount_end, COALESCE(pd.reason, prd.reason, '') AS discount_reason, COALESCE(pd.customer_group_id, prd.customer_group_id, 0) AS customer_group_id FROM ct_product p LEFT JOIN ct_product_available pav ON pav.product_id = p.product_id LEFT JOIN ct_price_rule pr ON pr.price_rule_id = p.price_rule_id LEFT JOIN ct_price_rule_discount prd ON prd.price_rule_id = pr.price_rule_id AND ((prd.customer_id = ? OR prd.customer_id = 0) AND (prd.customer_group_id = 0 OR prd.customer_group_id = ? OR FIND_IN_SET(prd.customer_group_id, ?)) AND prd.quantity <= ?) LEFT JOIN ct_product_discount pd ON pd.product_id = p.product_id AND ((pd.customer_id = ? OR pd.customer_id = 0) AND (pd.customer_group_id = 0 OR pd.customer_group_id = ? OR FIND_IN_SET(pd.customer_group_id, ?)) AND ((pd.date_start = '0000-00-00' OR pd.date_start < NOW()) AND (pd.date_end = '0000-00-00' OR pd.date_end > NOW())) AND pd.quantity <= ? AND (pd.quantity_end = '' OR pav.available > pd.quantity_end)) WHERE p.product_id = ? ORDER BY prd.quantity DESC, pd.quantity DESC, prd.sort_order ASC, pd.sort_order ASC LIMIT 1; 0|1||1|0|1||1|18543
            [21] => 07:51:23; PREPARED; 0.000222; ModelCatalogProduct; getProductKit; SELECT * FROM ct_product_kit WHERE product_id = ?; 18541
            [22] => 07:51:23; PREPARED; 0.000662; ModelCatalogProduct; getProductPrice; SELECT p.cost, p.tax_class_id, COALESCE(pr.markup, p.markup) AS markup, COALESCE(pr.login, p.login) AS login, COALESCE(pr.trade, p.trade) AS trade, p.rrp, p.points, COALESCE(pd.price, prd.price, 0) AS discount_price, COALESCE(pd.percent, prd.percent, 0) AS discount_percent, COALESCE(pd.markup, prd.markup, 0) AS discount_markup, COALESCE(pd.date_end, '') AS discount_end, COALESCE(pd.reason, prd.reason, '') AS discount_reason, COALESCE(pd.customer_group_id, prd.customer_group_id, 0) AS customer_group_id FROM ct_product p LEFT JOIN ct_product_available pav ON pav.product_id = p.product_id LEFT JOIN ct_price_rule pr ON pr.price_rule_id = p.price_rule_id LEFT JOIN ct_price_rule_discount prd ON prd.price_rule_id = pr.price_rule_id AND ((prd.customer_id = ? OR prd.customer_id = 0) AND (prd.customer_group_id = 0 OR prd.customer_group_id = ? OR FIND_IN_SET(prd.customer_group_id, ?)) AND prd.quantity <= ?) LEFT JOIN ct_product_discount pd ON pd.product_id = p.product_id AND ((pd.customer_id = ? OR pd.customer_id = 0) AND (pd.customer_group_id = 0 OR pd.customer_group_id = ? OR FIND_IN_SET(pd.customer_group_id, ?)) AND ((pd.date_start = '0000-00-00' OR pd.date_start < NOW()) AND (pd.date_end = '0000-00-00' OR pd.date_end > NOW())) AND pd.quantity <= ? AND (pd.quantity_end = '' OR pav.available > pd.quantity_end)) WHERE p.product_id = ? ORDER BY prd.quantity DESC, pd.quantity DESC, prd.sort_order ASC, pd.sort_order ASC LIMIT 1; 0|1||1|0|1||1|18541
            [23] => 07:51:23; PREPARED; 0.000841; ModelCatalogProduct; getProduct; SELECT DISTINCT p.*, pav.available, pd.feature, pd.description, pd.specification, pd.tag, pd.meta_title, pd.meta_description, pd.product_note, IF(p.eol OR p.increment < 1, 1, p.increment) AS increment, IF(p.eol OR p.minimum < 1, 1, p.minimum) AS minimum, IF(p.eol, IF(p.maximum > 0, LEAST(pav.available, p.maximum), pav.available), IF(p.maximum > 0, p.maximum, 9999)) AS maximum, m.name AS manufacturer, m.image AS manufacturer_thumb, m.site AS manufacturer_site, m.support AS manufacturer_support, ss.name AS stock_status, ss.in_stock, ss.zero_checkout, COALESCE(AVG(r.rating), 0) AS rating, COUNT(DISTINCT r.review_id) AS reviews, p.sort_order , (SELECT GROUP_CONCAT(CONCAT(pv.variant_id, '|', pv.name)) FROM ct_product_variant pv WHERE pv.product_id = p.product_id GROUP BY pv.product_id ORDER BY pv.sort_order) AS variants FROM ct_product p LEFT JOIN ct_product_available pav ON pav.product_id = p.product_id AND pav.store_id = 1 LEFT JOIN ct_review r ON (r.product_id = p.product_id AND r.status = '1') LEFT JOIN ct_stock_status ss ON (p.stock_status_id = ss.stock_status_id) LEFT JOIN ct_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN ct_manufacturer m ON (p.manufacturer_id = m.manufacturer_id) WHERE p.product_id = ?; 18541
            [24] => 07:51:23; PREPARED; 0.000237; ModelCatalogProduct; getProductKit; SELECT * FROM ct_product_kit WHERE product_id = ?; 18541
            [25] => 07:51:23; PREPARED; 0.000667; ModelCatalogProduct; getProductPrice; SELECT p.cost, p.tax_class_id, COALESCE(pr.markup, p.markup) AS markup, COALESCE(pr.login, p.login) AS login, COALESCE(pr.trade, p.trade) AS trade, p.rrp, p.points, COALESCE(pd.price, prd.price, 0) AS discount_price, COALESCE(pd.percent, prd.percent, 0) AS discount_percent, COALESCE(pd.markup, prd.markup, 0) AS discount_markup, COALESCE(pd.date_end, '') AS discount_end, COALESCE(pd.reason, prd.reason, '') AS discount_reason, COALESCE(pd.customer_group_id, prd.customer_group_id, 0) AS customer_group_id FROM ct_product p LEFT JOIN ct_product_available pav ON pav.product_id = p.product_id LEFT JOIN ct_price_rule pr ON pr.price_rule_id = p.price_rule_id LEFT JOIN ct_price_rule_discount prd ON prd.price_rule_id = pr.price_rule_id AND ((prd.customer_id = ? OR prd.customer_id = 0) AND (prd.customer_group_id = 0 OR prd.customer_group_id = ? OR FIND_IN_SET(prd.customer_group_id, ?)) AND prd.quantity <= ?) LEFT JOIN ct_product_discount pd ON pd.product_id = p.product_id AND ((pd.customer_id = ? OR pd.customer_id = 0) AND (pd.customer_group_id = 0 OR pd.customer_group_id = ? OR FIND_IN_SET(pd.customer_group_id, ?)) AND ((pd.date_start = '0000-00-00' OR pd.date_start < NOW()) AND (pd.date_end = '0000-00-00' OR pd.date_end > NOW())) AND pd.quantity <= ? AND (pd.quantity_end = '' OR pav.available > pd.quantity_end)) WHERE p.product_id = ? ORDER BY prd.quantity DESC, pd.quantity DESC, prd.sort_order ASC, pd.sort_order ASC LIMIT 1; 0|1||1|0|1||1|18541
            [26] => 07:51:23; PREPARED; 0.000354; ModelCatalogProduct; getProductCountries; SELECT DISTINCT ztgz.country_id, c.iso_code_2, c.name FROM ct_product_geo_zone pgz LEFT JOIN ct_zone_to_geo_zone ztgz ON ztgz.geo_zone_id = pgz.geo_zone_id LEFT JOIN ct_country c ON c.country_id = ztgz.country_id WHERE pgz.product_id = ?; 18541
            [27] => 07:51:23; PREPARED; 0.000272; ModelCatalogProduct; getProductCertifications; SELECT pc.*, c.name FROM ct_product_certification pc LEFT JOIN ct_certification c ON c.certification_id = pc.certification_id WHERE pc.product_id = ?; 18541
            [28] => 07:51:23; PREPARED; 0.000434; ModelCatalogProduct; getAllProductUsed; SELECT pu.*, p.name AS name FROM ct_product_used pu LEFT JOIN ct_product p ON p.product_id = pu.product_id LEFT JOIN ct_product_to_category p2c ON p2c.product_id = pu.product_id AND p2c.primary_category = 1 AND p2c.store_id = ? WHERE pu.product_id = ? AND pu.quantity > 0 AND pu.price > 0 AND p2c.category_id IS NOT NULL; 1|18543
            [29] => 07:51:23; PREPARED; 0.000405; ModelCatalogProduct; getAllProductUsed; SELECT pu.*, p.name AS name FROM ct_product_used pu LEFT JOIN ct_product p ON p.product_id = pu.product_id LEFT JOIN ct_product_to_category p2c ON p2c.product_id = pu.product_id AND p2c.primary_category = 1 AND p2c.store_id = ? WHERE pu.product_id = ? AND pu.quantity > 0 AND pu.price > 0 AND p2c.category_id IS NOT NULL; 1|18541
            [30] => 07:51:23; PREPARED; 0.000259; ModelCatalogProduct; getProductOptions; SELECT * FROM ct_product_option WHERE product_id = ? ORDER BY sort_order ASC; 18541
            [31] => 07:51:23; PREPARED; 0.000239; ModelCatalogProduct; getProductQtyDiscounts; SELECT p.price_rule_id FROM ct_product p WHERE p.product_id = ?; 18541
            [32] => 07:51:23; PREPARED; 0.000334; ModelCatalogProduct; getProductQtyDiscounts; SELECT prd.*, '' AS date_start, '' AS date_end, '' AS quantity_end FROM ct_price_rule_discount prd WHERE prd.price_rule_id = ? AND (prd.customer_id = 0 OR prd.customer_id = ?) AND (prd.customer_group_id = 0 OR prd.customer_group_id = ?) AND prd.quantity > 1 ORDER BY prd.sort_order ASC; 3|0|1
            [33] => 07:51:23; PREPARED; 0.000534; ModelCatalogProduct; getProductQtyDiscounts; SELECT pd.* FROM ct_product_discount pd LEFT JOIN ct_product p ON p.product_id = pd.product_id LEFT JOIN ct_product_available pav ON pav.product_id = p.product_id AND pav.store_id = 1 WHERE pd.product_id = ? AND (pd.customer_id = 0 OR pd.customer_id = ?) AND (pd.customer_group_id = 0 OR pd.customer_group_id = ?) AND pd.quantity > 1 AND ((pd.date_start = '0000-00-00' OR pd.date_start < NOW()) AND (pd.date_end = '0000-00-00' OR pd.date_end > NOW())) AND (pd.quantity_end = '' OR pav.available > pd.quantity_end) ORDER BY pd.sort_order ASC; 18541|0|1
            [34] => 07:51:23; PREPARED; 0.000484; Cart\Cart; getProducts; SELECT c.*, pit.name AS product_inventory_type, pit.name AS type, pit.add_to_stock, pi.quantity AS product_inventory_quantity FROM ct_cart c LEFT JOIN ct_product_inventory pi ON pi.product_inventory_type_id = c.product_inventory_type_id AND pi.product_id = c.product_id LEFT JOIN ct_product_inventory_type pit ON pit.product_inventory_type_id = c.product_inventory_type_id WHERE c.api_id = ? AND c.customer_id = ? AND c.directory_id = ? AND c.session_id = ? ORDER BY c.sort_order ASC; 0|0|0|152ca4b3ce48631f0e92a8b1b5ff928f
            [35] => 07:51:23; PREPARED; 0.001084; ModelCheckoutShippingMethod; getMethodsByAddress; SELECT sm.* FROM ct_shipping_method_geo_zone smgz LEFT JOIN ct_shipping_method sm ON sm.shipping_method_id = smgz.shipping_method_id LEFT JOIN ct_zone_to_geo_zone z2gz ON z2gz.geo_zone_id = smgz.geo_zone_id LEFT JOIN ct_zone z on z.zone_id = z2gz.zone_id WHERE FIND_IN_SET(?, stores) AND z2gz.country_id = ? AND (z2gz.zone_id = ? OR z2gz.zone_id = '0') AND sm.status = 1 AND sm.type = 'shipping' ORDER BY sm.sort_order ASC; 1|222|11
            [36] => 07:51:23; PREPARED; 0.000258; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 2
            [37] => 07:51:23; PREPARED; 0.000229; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 2
            [38] => 07:51:23; PREPARED; 0.000384; Cart\Shipping; getTotalShipments; SELECT COUNT(DISTINCT order_id) AS total FROM ct_order_shipping_method osm LEFT JOIN ct_shipping_method sm ON sm.shipping_method_id = osm.shipping_method_id WHERE osm.shipping_method_id = ? AND osm.arrival_date = ?; 2|2025-05-09
            [39] => 07:51:23; PREPARED; 0.000250; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 3
            [40] => 07:51:23; PREPARED; 0.000257; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 3
            [41] => 07:51:23; PREPARED; 0.000318; Cart\Shipping; getTotalShipments; SELECT COUNT(DISTINCT order_id) AS total FROM ct_order_shipping_method osm LEFT JOIN ct_shipping_method sm ON sm.shipping_method_id = osm.shipping_method_id WHERE osm.shipping_method_id = ? AND osm.arrival_date = ?; 3|2025-05-08
            [42] => 07:51:23; PREPARED; 0.000243; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 1
            [43] => 07:51:23; PREPARED; 0.000230; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 1
            [44] => 07:51:23; PREPARED; 0.000352; Cart\Shipping; getTotalShipments; SELECT COUNT(DISTINCT order_id) AS total FROM ct_order_shipping_method osm LEFT JOIN ct_shipping_method sm ON sm.shipping_method_id = osm.shipping_method_id WHERE osm.shipping_method_id = ? AND osm.arrival_date = ?; 1|2025-05-07
            [45] => 07:51:23; PREPARED; 0.000263; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 16
            [46] => 07:51:23; PREPARED; 0.000253; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 16
            [47] => 07:51:23; PREPARED; 0.000306; Cart\Shipping; getTotalShipments; SELECT COUNT(DISTINCT order_id) AS total FROM ct_order_shipping_method osm LEFT JOIN ct_shipping_method sm ON sm.shipping_method_id = osm.shipping_method_id WHERE osm.shipping_method_id = ? AND osm.arrival_date = ?; 16|2025-05-07
            [48] => 07:51:23; PREPARED; 0.000250; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 17
            [49] => 07:51:23; PREPARED; 0.000235; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 17
            [50] => 07:51:23; PREPARED; 0.000285; Cart\Shipping; getTotalShipments; SELECT COUNT(DISTINCT order_id) AS total FROM ct_order_shipping_method osm LEFT JOIN ct_shipping_method sm ON sm.shipping_method_id = osm.shipping_method_id WHERE osm.shipping_method_id = ? AND osm.arrival_date = ?; 17|2025-05-07
            [51] => 07:51:23; PREPARED; 0.000285; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 18
            [52] => 07:51:23; PREPARED; 0.000229; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 18
            [53] => 07:51:23; PREPARED; 0.000296; Cart\Shipping; getTotalShipments; SELECT COUNT(DISTINCT order_id) AS total FROM ct_order_shipping_method osm LEFT JOIN ct_shipping_method sm ON sm.shipping_method_id = osm.shipping_method_id WHERE osm.shipping_method_id = ? AND osm.arrival_date = ?; 18|2025-05-07
            [54] => 07:51:23; STANDARD; MEMCACHE; ModelLocalisationCountry; getCountries; SELECT * FROM ct_country WHERE status = '1' ORDER BY name ASC
            [55] => 07:51:23; STANDARD; MEMCACHE; ModelLocalisationZone; getZonesByCountryId; SELECT * FROM ct_zone WHERE country_id = '222' AND status = '1' ORDER BY name
            [56] => 07:51:23; PREPARED; 0.001139; ModelCheckoutShippingMethod; getMethodsByAddress; SELECT sm.* FROM ct_shipping_method_geo_zone smgz LEFT JOIN ct_shipping_method sm ON sm.shipping_method_id = smgz.shipping_method_id LEFT JOIN ct_zone_to_geo_zone z2gz ON z2gz.geo_zone_id = smgz.geo_zone_id LEFT JOIN ct_zone z on z.zone_id = z2gz.zone_id WHERE FIND_IN_SET(?, stores) AND z2gz.country_id = ? AND (z2gz.zone_id = ? OR z2gz.zone_id = '0') AND sm.status = 1 AND sm.type = 'shipping' ORDER BY sm.sort_order ASC; 1|222|11
            [57] => 07:51:23; PREPARED; 0.000223; ModelCheckoutOrder; getAddToNextOrders; SELECT DISTINCT o.order_id FROM ct_order_shipping_method osm LEFT JOIN ct_order o ON o.order_id = osm.order_id WHERE osm.type = 'add_to_order' AND o.add_to_order = 0 AND o.customer_id = ? AND o.customer_id != 0 AND o.shipping_postcode = ? AND o.order_status_id IN (?, ?); 0||4|5
            [58] => 07:51:23; PREPARED; 0.000888; Cart\Cart; getProducts; SELECT c.*, pit.name AS product_inventory_type, pit.name AS type, pit.add_to_stock, pi.quantity AS product_inventory_quantity FROM ct_cart c LEFT JOIN ct_product_inventory pi ON pi.product_inventory_type_id = c.product_inventory_type_id AND pi.product_id = c.product_id LEFT JOIN ct_product_inventory_type pit ON pit.product_inventory_type_id = c.product_inventory_type_id WHERE c.api_id = ? AND c.customer_id = ? AND c.directory_id = ? AND c.session_id = ? ORDER BY c.sort_order ASC; 0|0|0|152ca4b3ce48631f0e92a8b1b5ff928f
            [59] => 07:51:23; PREPARED; 0.000665; Cart\Cart; getCountries; SELECT DISTINCT ztgz.country_id FROM ct_product_geo_zone pgz LEFT JOIN ct_zone_to_geo_zone ztgz ON ztgz.geo_zone_id = pgz.geo_zone_id WHERE pgz.product_id IN(?); 
            [60] => 07:51:23; PREPARED; 0.001178; Cart\Cart; getProducts; SELECT c.*, pit.name AS product_inventory_type, pit.name AS type, pit.add_to_stock, pi.quantity AS product_inventory_quantity FROM ct_cart c LEFT JOIN ct_product_inventory pi ON pi.product_inventory_type_id = c.product_inventory_type_id AND pi.product_id = c.product_id LEFT JOIN ct_product_inventory_type pit ON pit.product_inventory_type_id = c.product_inventory_type_id WHERE c.api_id = ? AND c.customer_id = ? AND c.directory_id = ? AND c.session_id = ? ORDER BY c.sort_order ASC; 0|0|0|152ca4b3ce48631f0e92a8b1b5ff928f
            [61] => 07:51:23; PREPARED; 0.000821; Cart\Cart; getProducts; SELECT c.*, pit.name AS product_inventory_type, pit.name AS type, pit.add_to_stock, pi.quantity AS product_inventory_quantity FROM ct_cart c LEFT JOIN ct_product_inventory pi ON pi.product_inventory_type_id = c.product_inventory_type_id AND pi.product_id = c.product_id LEFT JOIN ct_product_inventory_type pit ON pit.product_inventory_type_id = c.product_inventory_type_id WHERE c.api_id = ? AND c.customer_id = ? AND c.directory_id = ? AND c.session_id = ? ORDER BY c.sort_order ASC; 0|0|0|152ca4b3ce48631f0e92a8b1b5ff928f
            [62] => 07:51:23; PREPARED; 0.000529; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 2
            [63] => 07:51:23; PREPARED; 0.000417; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 2
            [64] => 07:51:23; PREPARED; 0.000693; Cart\Shipping; getTotalShipments; SELECT COUNT(DISTINCT order_id) AS total FROM ct_order_shipping_method osm LEFT JOIN ct_shipping_method sm ON sm.shipping_method_id = osm.shipping_method_id WHERE osm.shipping_method_id = ? AND osm.arrival_date = ?; 2|2025-05-09
            [65] => 07:51:23; PREPARED; 0.000334; Cart\Shipping; getArrivalDates; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 2
            [66] => 07:51:23; PREPARED; 0.000225; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 2
            [67] => 07:51:23; PREPARED; 0.000231; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 2
            [68] => 07:51:23; PREPARED; 0.000313; Cart\Shipping; getTotalShipments; SELECT COUNT(DISTINCT order_id) AS total FROM ct_order_shipping_method osm LEFT JOIN ct_shipping_method sm ON sm.shipping_method_id = osm.shipping_method_id WHERE osm.shipping_method_id = ? AND osm.arrival_date = ?; 2|2025-05-09
            [69] => 07:51:23; PREPARED; 0.000451; Cart\Cart; getProducts; SELECT c.*, pit.name AS product_inventory_type, pit.name AS type, pit.add_to_stock, pi.quantity AS product_inventory_quantity FROM ct_cart c LEFT JOIN ct_product_inventory pi ON pi.product_inventory_type_id = c.product_inventory_type_id AND pi.product_id = c.product_id LEFT JOIN ct_product_inventory_type pit ON pit.product_inventory_type_id = c.product_inventory_type_id WHERE c.api_id = ? AND c.customer_id = ? AND c.directory_id = ? AND c.session_id = ? ORDER BY c.sort_order ASC; 0|0|0|152ca4b3ce48631f0e92a8b1b5ff928f
            [70] => 07:51:23; PREPARED; 0.000233; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 3
            [71] => 07:51:23; PREPARED; 0.000238; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 3
            [72] => 07:51:23; PREPARED; 0.000308; Cart\Shipping; getTotalShipments; SELECT COUNT(DISTINCT order_id) AS total FROM ct_order_shipping_method osm LEFT JOIN ct_shipping_method sm ON sm.shipping_method_id = osm.shipping_method_id WHERE osm.shipping_method_id = ? AND osm.arrival_date = ?; 3|2025-05-08
            [73] => 07:51:23; PREPARED; 0.000238; Cart\Shipping; getArrivalDates; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 3
            [74] => 07:51:23; PREPARED; 0.000224; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 3
            [75] => 07:51:23; PREPARED; 0.000328; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 3
            [76] => 07:51:23; PREPARED; 0.000335; Cart\Shipping; getTotalShipments; SELECT COUNT(DISTINCT order_id) AS total FROM ct_order_shipping_method osm LEFT JOIN ct_shipping_method sm ON sm.shipping_method_id = osm.shipping_method_id WHERE osm.shipping_method_id = ? AND osm.arrival_date = ?; 3|2025-05-08
            [77] => 07:51:23; PREPARED; 0.000428; Cart\Cart; getProducts; SELECT c.*, pit.name AS product_inventory_type, pit.name AS type, pit.add_to_stock, pi.quantity AS product_inventory_quantity FROM ct_cart c LEFT JOIN ct_product_inventory pi ON pi.product_inventory_type_id = c.product_inventory_type_id AND pi.product_id = c.product_id LEFT JOIN ct_product_inventory_type pit ON pit.product_inventory_type_id = c.product_inventory_type_id WHERE c.api_id = ? AND c.customer_id = ? AND c.directory_id = ? AND c.session_id = ? ORDER BY c.sort_order ASC; 0|0|0|152ca4b3ce48631f0e92a8b1b5ff928f
            [78] => 07:51:23; PREPARED; 0.000232; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 1
            [79] => 07:51:23; PREPARED; 0.000244; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 1
            [80] => 07:51:23; PREPARED; 0.000416; Cart\Shipping; getTotalShipments; SELECT COUNT(DISTINCT order_id) AS total FROM ct_order_shipping_method osm LEFT JOIN ct_shipping_method sm ON sm.shipping_method_id = osm.shipping_method_id WHERE osm.shipping_method_id = ? AND osm.arrival_date = ?; 1|2025-05-07
            [81] => 07:51:23; PREPARED; 0.000241; Cart\Shipping; getArrivalDates; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 1
            [82] => 07:51:23; PREPARED; 0.000253; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 1
            [83] => 07:51:23; PREPARED; 0.000229; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 1
            [84] => 07:51:23; PREPARED; 0.000330; Cart\Shipping; getTotalShipments; SELECT COUNT(DISTINCT order_id) AS total FROM ct_order_shipping_method osm LEFT JOIN ct_shipping_method sm ON sm.shipping_method_id = osm.shipping_method_id WHERE osm.shipping_method_id = ? AND osm.arrival_date = ?; 1|2025-05-07
            [85] => 07:51:23; PREPARED; 0.000435; Cart\Cart; getProducts; SELECT c.*, pit.name AS product_inventory_type, pit.name AS type, pit.add_to_stock, pi.quantity AS product_inventory_quantity FROM ct_cart c LEFT JOIN ct_product_inventory pi ON pi.product_inventory_type_id = c.product_inventory_type_id AND pi.product_id = c.product_id LEFT JOIN ct_product_inventory_type pit ON pit.product_inventory_type_id = c.product_inventory_type_id WHERE c.api_id = ? AND c.customer_id = ? AND c.directory_id = ? AND c.session_id = ? ORDER BY c.sort_order ASC; 0|0|0|152ca4b3ce48631f0e92a8b1b5ff928f
            [86] => 07:51:23; PREPARED; 0.000232; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 16
            [87] => 07:51:23; PREPARED; 0.000260; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 16
            [88] => 07:51:23; PREPARED; 0.000327; Cart\Shipping; getTotalShipments; SELECT COUNT(DISTINCT order_id) AS total FROM ct_order_shipping_method osm LEFT JOIN ct_shipping_method sm ON sm.shipping_method_id = osm.shipping_method_id WHERE osm.shipping_method_id = ? AND osm.arrival_date = ?; 16|2025-05-07
            [89] => 07:51:23; PREPARED; 0.000237; Cart\Shipping; getArrivalDates; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 16
            [90] => 07:51:23; PREPARED; 0.000232; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 16
            [91] => 07:51:23; PREPARED; 0.000223; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 16
            [92] => 07:51:23; PREPARED; 0.000321; Cart\Shipping; getTotalShipments; SELECT COUNT(DISTINCT order_id) AS total FROM ct_order_shipping_method osm LEFT JOIN ct_shipping_method sm ON sm.shipping_method_id = osm.shipping_method_id WHERE osm.shipping_method_id = ? AND osm.arrival_date = ?; 16|2025-05-07
            [93] => 07:51:23; PREPARED; 0.000438; Cart\Cart; getProducts; SELECT c.*, pit.name AS product_inventory_type, pit.name AS type, pit.add_to_stock, pi.quantity AS product_inventory_quantity FROM ct_cart c LEFT JOIN ct_product_inventory pi ON pi.product_inventory_type_id = c.product_inventory_type_id AND pi.product_id = c.product_id LEFT JOIN ct_product_inventory_type pit ON pit.product_inventory_type_id = c.product_inventory_type_id WHERE c.api_id = ? AND c.customer_id = ? AND c.directory_id = ? AND c.session_id = ? ORDER BY c.sort_order ASC; 0|0|0|152ca4b3ce48631f0e92a8b1b5ff928f
            [94] => 07:51:23; PREPARED; 0.000234; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 17
            [95] => 07:51:23; PREPARED; 0.000249; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 17
            [96] => 07:51:23; PREPARED; 0.000371; Cart\Shipping; getTotalShipments; SELECT COUNT(DISTINCT order_id) AS total FROM ct_order_shipping_method osm LEFT JOIN ct_shipping_method sm ON sm.shipping_method_id = osm.shipping_method_id WHERE osm.shipping_method_id = ? AND osm.arrival_date = ?; 17|2025-05-07
            [97] => 07:51:23; PREPARED; 0.000296; Cart\Shipping; getArrivalDates; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 17
            [98] => 07:51:23; PREPARED; 0.000326; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 17
            [99] => 07:51:23; PREPARED; 0.000277; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 17
            [100] => 07:51:23; PREPARED; 0.000367; Cart\Shipping; getTotalShipments; SELECT COUNT(DISTINCT order_id) AS total FROM ct_order_shipping_method osm LEFT JOIN ct_shipping_method sm ON sm.shipping_method_id = osm.shipping_method_id WHERE osm.shipping_method_id = ? AND osm.arrival_date = ?; 17|2025-05-07
            [101] => 07:51:23; PREPARED; 0.000479; Cart\Cart; getProducts; SELECT c.*, pit.name AS product_inventory_type, pit.name AS type, pit.add_to_stock, pi.quantity AS product_inventory_quantity FROM ct_cart c LEFT JOIN ct_product_inventory pi ON pi.product_inventory_type_id = c.product_inventory_type_id AND pi.product_id = c.product_id LEFT JOIN ct_product_inventory_type pit ON pit.product_inventory_type_id = c.product_inventory_type_id WHERE c.api_id = ? AND c.customer_id = ? AND c.directory_id = ? AND c.session_id = ? ORDER BY c.sort_order ASC; 0|0|0|152ca4b3ce48631f0e92a8b1b5ff928f
            [102] => 07:51:23; PREPARED; 0.000300; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 18
            [103] => 07:51:23; PREPARED; 0.000271; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 18
            [104] => 07:51:23; PREPARED; 0.000359; Cart\Shipping; getTotalShipments; SELECT COUNT(DISTINCT order_id) AS total FROM ct_order_shipping_method osm LEFT JOIN ct_shipping_method sm ON sm.shipping_method_id = osm.shipping_method_id WHERE osm.shipping_method_id = ? AND osm.arrival_date = ?; 18|2025-05-07
            [105] => 07:51:23; PREPARED; 0.000280; Cart\Shipping; getArrivalDates; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 18
            [106] => 07:51:23; PREPARED; 0.000264; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 18
            [107] => 07:51:23; PREPARED; 0.000295; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 18
            [108] => 07:51:23; PREPARED; 0.000351; Cart\Shipping; getTotalShipments; SELECT COUNT(DISTINCT order_id) AS total FROM ct_order_shipping_method osm LEFT JOIN ct_shipping_method sm ON sm.shipping_method_id = osm.shipping_method_id WHERE osm.shipping_method_id = ? AND osm.arrival_date = ?; 18|2025-05-07
            [109] => 07:51:23; PREPARED; 0.000519; Cart\Cart; getProducts; SELECT c.*, pit.name AS product_inventory_type, pit.name AS type, pit.add_to_stock, pi.quantity AS product_inventory_quantity FROM ct_cart c LEFT JOIN ct_product_inventory pi ON pi.product_inventory_type_id = c.product_inventory_type_id AND pi.product_id = c.product_id LEFT JOIN ct_product_inventory_type pit ON pit.product_inventory_type_id = c.product_inventory_type_id WHERE c.api_id = ? AND c.customer_id = ? AND c.directory_id = ? AND c.session_id = ? ORDER BY c.sort_order ASC; 0|0|0|152ca4b3ce48631f0e92a8b1b5ff928f
            [110] => 07:51:23; STANDARD; MEMCACHE; ModelCatalogInformation; getInformation; SELECT DISTINCT * FROM ct_information i LEFT JOIN ct_information_description id ON (i.information_id = id.information_id) WHERE i.information_id = 12 AND i.status = 1
            [111] => 07:51:23; PREPARED; 0.000478; ModelCatalogProduct; getProductOnOrder; SELECT ip.inventory_id, s.name AS supplier, (ip.ordered - ip.received) AS ordered, ip.date_due, i.product_inventory_type_id FROM ct_inventory_product ip LEFT JOIN ct_inventory i ON i.inventory_id = ip.inventory_id LEFT JOIN ct_supplier s ON s.supplier_id = i.supplier_id WHERE ip.ordered > ip.received AND ip.product_id = ? AND i.direct = '' ORDER BY ip.date_due ASC; 18541
            [112] => 07:51:23; PREPARED; 0.000321; ModelCatalogProduct; getProductImages; SELECT * FROM ct_product_image WHERE product_id = ? ORDER BY sort_order ASC; 18545
            [113] => 07:51:23; PREPARED; 0.000289; ModelCatalogProduct; getProductVideos; SELECT name, youtube_id FROM ct_product_video WHERE product_id = ? ORDER BY sort_order ASC; 18545
            [114] => 07:51:23; PREPARED; 0.000495; ModelCatalogVideo; getVideos; SELECT DISTINCT v.* FROM ct_video v LEFT JOIN ct_video_keyword vk ON v.video_id = vk.video_id WHERE 1 AND (LOCATE(vk.keyword, ?) > 0 OR vk.keyword IS NULL) AND (manufacturer_id = ? OR manufacturer_id = 0) ORDER BY v.name ASC; Ajax FireProtect 2 AC (Heat/Smoke) Wireless Smoke and Heat Alarm (Black) ajax jeweller,fire,heat,smoke alarm,smoke detector,wireless|231
            [115] => 07:51:23; PREPARED; 0.000318; ModelCatalogProduct; getProductFiles; SELECT * FROM ct_product_file WHERE product_id = ? AND online = 1 ORDER BY sort_order ASC; 18545
            [116] => 07:51:23; PREPARED; 0.000237; ModelCatalogProduct; getProductLinks; SELECT text, link FROM ct_product_link WHERE product_id = ? ORDER BY sort_order ASC; 18545
            [117] => 07:51:23; PREPARED; 0.000351; ModelCatalogQuestion; getQuestions; SELECT q.question_id, q.reply_to, q.customer_id, q.author, q.text, q.date_added, c.firstname FROM ct_question q LEFT JOIN ct_customer c ON (c.customer_id = q.customer_id) WHERE q.product_id = ? AND q.status = '1' ORDER BY q.date_added DESC; 18545
            [118] => 07:51:23; PREPARED; 0.000816; ModelCatalogProduct; getProductAddon; SELECT p.*, pa.addon_id, (SELECT GROUP_CONCAT(pv.variant_id SEPARATOR ',') FROM ct_product_variant pv WHERE pv.product_id = p.product_id GROUP BY pv.product_id ORDER BY pv.sort_order) AS variants FROM ct_product_addon pa LEFT JOIN ct_product p ON pa.addon_id = p.product_id LEFT JOIN ct_product_available pav ON pav.product_id = p.product_id AND pav.store_id = 1 LEFT JOIN ct_product_to_category p2c ON p2c.product_id = p.product_id AND p2c.primary_category = 1 AND p2c.store_id = ? WHERE pa.product_id = ? AND p.status > 1 AND p.date_available <= CURDATE() AND (p.eol = 0 OR pav.available > 0) AND p2c.category_id IS NOT NULL ORDER BY pa.sort_order ASC; 1|18545
            [119] => 07:51:23; PREPARED; 0.000856; ModelCatalogProduct; getRelatedProducts; SELECT p2c.product_id FROM ct_product_to_category p2c LEFT JOIN ct_product p ON p.product_id = p2c.product_id WHERE p2c.category_id = (SELECT category_id FROM ct_product_to_category WHERE product_id = ? AND primary_category = 1 AND store_id = ?) AND p2c.product_id != ? AND p2c.store_id = ? AND p2c.primary_category = 1 AND p.eol = 0 AND p.status = 2 LIMIT 10; 18545|1|18545|1
            [120] => 07:51:23; PREPARED; 0.000403; ModelCatalogReview; getProductRating; SELECT COALESCE(AVG(r.rating), 0) AS rating, COUNT(DISTINCT r.review_id) AS reviews FROM ct_review r WHERE r.product_id = ? AND r.status = '1'; 18545
            [121] => 07:51:23; PREPARED; 0.000357; ModelCatalogReview; getReviewsByProductId; SELECT * FROM ct_review WHERE product_id = ? AND status = 1 ORDER BY helpful = 0, (((helpful +1) / (unhelpful +1)) * 100) DESC, helpful DESC, date_added DESC LIMIT 3; 18545
            [122] => 07:51:23; PREPARED; 0.000247; ModelAccountFavourites; getFavourites; SELECT * FROM ct_customer_favourites WHERE customer_id = ?; 0
            [123] => 07:51:23; PREPARED; 0.001805; ModelCatalogProduct; updateViewed; UPDATE ct_product SET viewed = (viewed + 1) WHERE product_id = ?; 18545
            [124] => 07:51:23; PREPARED; 0.000411; Tracking; track; SELECT customer_id FROM ct_customer WHERE tracker = ?; 5ff7890d88edc717582bd377335c901fcb5e2ff50223fda067be82ec47e330c1
            [125] => 07:51:23; PREPARED; 0.011628; Tracking; track; INSERT INTO ct_tracking SET tracker = ?, ip_address = ?, agent = ?, session_id = ?, customer_id = ?, referer = ?, url = ?, event_label = ?, event_value = ?, date_added = DATE(NOW()), time_added = TIME(NOW()); 5ff7890d88edc717582bd377335c901fcb5e2ff50223fda067be82ec47e330c1|18.118.147.65|Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])|152ca4b3ce48631f0e92a8b1b5ff928f|0||/security/intruder-alarms/wireless-alarm-systems/ajax-jeweller/ajax-detectors-and-sensors/ajax-fireprotect-2-ac-heat-smoke-wireless-smoke-and-heat-alarm?variant_id=18541|view_product|18541
            [126] => 07:51:23; PREPARED; 0.000441; ModelCatalogReview; getReviewsByProductId; SELECT * FROM ct_review WHERE product_id = ? AND status = 1 ORDER BY helpful = 0, (((helpful +1) / (unhelpful +1)) * 100) DESC, helpful DESC, date_added DESC LIMIT 1; 18545
            [127] => 07:51:23; PREPARED; MEMCACHE; getHtmlBlock; SELECT * FROM ct_html_block WHERE code = ? AND store_id = ?; why_buy|1
            [128] => 07:51:23; PREPARED; MEMCACHE; getHtmlBlock; SELECT * FROM ct_html_block WHERE code = ? AND store_id = ?; product_qa_text|1
            [129] => 07:51:23; PREPARED; MEMCACHE; getHtmlBlock; SELECT * FROM ct_html_block WHERE code = ? AND store_id = ?; product_review_text|1
            [130] => 07:51:23; PREPARED; MEMCACHE; getHtmlBlock; SELECT * FROM ct_html_block WHERE code = ? AND store_id = ?; product_links_disclaimer|1
        )

    [DUPLIACTES] => Array
(
    [90] => 07:51:23; PREPARED; 0.000232; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 16
)

    [TOTAL_EXECUTION_TIME] => 0.05743098259
)