DEV MODE
Tax based on shipping to United Kingdom gb flag , Change?
Basket 
NEW CLEARANCE
110mm HDPE Twin Wall Underground Ducting 50m Coil - Black
110mm HDPE Twin Wall Underground Ducting 50m Coil - Black
swipe to view images
fullscreen

110mm HDPE Twin Wall Underground Ducting 50m Coil - Black

Rated 5/5 ⭐⭐⭐⭐⭐   1 reviews | 42 Questions
RBF logo RBF
  • Smooth inner
  • Chemical / water resistant
  • CEI EN 50086

HDPE underground ducting conduit in black with a tough, crush resistant corrugated outer and a smooth inner lining for easy cable installation (Read more)

Loading

There are 7 variants of this product

£163.02
£135.85 Ex VAT
Ordered on Request
Delivery from £19.99
Orders will be processed Tuesday 6th May
Product CodeRBF0023
ModelNR110
SPECIAL ORDER / NON-RETURNABLE ITEM
More Information
RELATED PRODUCTS

PRODUCT DETAILS

Our ultra-tough twin wall underground ducting has an HDPE crush resistant corrugated outer wall and a smooth inner wall for easy cable installation.  The high-density polyethylene is highly chemical and water resistant and has a compression resistance of higher than 450N.

The ducting is supplied on 50 metre coils or cut to length (40 and 50 mm only) in multiples of 5 metres.


Please note: Couplers are only supplied with 50m coils

twin_wall_ducting_diagram.png

The following sizes are available

Code Outer (mm) Inner (mm) Coil (m)
NR040 40 32 50
NR050 50 40 50
NR063 63 51 50
NR075 75 61 50
NR110 110 94 50
YOU MIGHT ALSO NEED
Loading
 
 
 
 
 
Loading
 
 
 
 
 
Loading
 
 
 
 
 
Loading
 
 
 
 
 
Loading
 
 
 
 
 
Loading
 
 
 
 
 
SPECIFICATIONS
Specification
Material High density polyethylene (HDPE)
Colour Black
Use Low tension electrical and communication/data cable protection in buried underground systems
Max bend radius 8 times DN or OD
Quality mark NF-USE
Standards CEI EN 50086-1
CEI EN 50086-2-4 (Type N)
EN 61386-24
Compression resistance ≥450N with vertical deflection equivalent to 5% of the original diameter (200mm samples)
Impact resistance Type N at -5°C / 3kg/h (variable with size)
Temperature Range -10°C to +60°C
VARIANTS
RBF0179 40mm x 1m (Per meter) - Black £3.56 In stock
RBF0019 40mm x 50m - Black £77.22 In stock
RBF0180 50mm x 1m (Per meter) - Black £4.46 In stock
RBF0020 50mm x 50m - Black £86.66 In stock
RBF0021 63mm x 50m - Black £94.38 Ordered on Request
RBF0022 75mm x 50m - Black £103.82 Ordered on Request
RBF0023 110mm x 50m - Black £163.02 Ordered on Request
USEFUL FILES AND LINKS
Videos
No videos available
Files
  Twin Wall Ducting Datasheet
Links*
RBF website

* 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


Does the 50mm x 50m conduit have a draw string?
( )
All 50m coils of our HDPE ducting come supplied with a draw string.
( )
Does the 63mm x 50m conduit have a pull string set up inside
( )
Yes, the full 50m reels have a draw string already installed and a draw string can be provided with the shorter cuts if requested
( )
Would this resist crushing by cars if it is laid or buried in a driveway and completely covered by gravel or stones?
( )
The Compression resistance of this ducting is ≥450N with vertical deflection equivalent to 5% of the original diameter.
( )
Can this be buried in concrete.
( )
It depends on the depth of the concrete. The compression resistance is ≥450N with vertical deflection equivalent to 5% of the original diameter (200mm samples). We would always recommend getting advice from a structural engineer before proceeding.
( )
Do you supply glands for the 50mm ducting, I need to terminate the ends into weatherproof plastic boxes ?
( )
We do not currently have any glands available for this type of ducting
( )
I am thinking of using this to run EV ready armoured cable, along the lower part of a fence (to avoid having to dig a long stretch/ under a driveway etc)…do you supply clips or ‘u’ brackets so I could attach securely to fence posts?
( )
Unfortunatley we do not currently have any options for clipping this ducting but you may be able to source some waste pipe wall fixings of a similar size for this purpose.
( )
Do the couplers give a watertight seal?
( )
The couplers do not give a completely watertight seal as they do not have any form of rubber gasket. They are simply designed to couple to sections of ducting together.
( )
I'd like to know whether this might be suitable to use in a pond filter set up, water pumped through at fairly low pressure, and whether it is solvent weld friendly?
( )
I wouldn't recommend it for that. As it's not a smooth outer it would be hard to make a waterproof joint between sections.
( )
I need to run a water supply and return pipe for underfloor heating (22mm pipes) over a run of 5m. Would the 50mm option be too small? Should I opt for 2 runs if it is smaller diameter?
( )
The internal diameter of the 50mm ducting is 40mm so it would be too tight. You could use 2 of the 40mm ducts instead.
( )
Hi there, are you able to supply samples of this? I only need a short length to see if it's suitable as I'm not planning on using it for conduit. a couple of inches would do fine.
( )
Yes, we can send out samples. Please email [email protected] to request a sample.
( )
Hi, what temp can this pipe stand?
I was thinking of adding a heater which pumps air at up to 40℃.
( )
The ducting is suitable for temperatures between -10°C and +60°C so it will be fine for your use case.
( )
Would this be suitable for running cabling from a solar PV and battery system under the floorboards - from the rear of a terraced house (where the panels are) to the front (where the distribution board is)? It’s approx 10m.
( )
Yes, this ducting would be suitable for most electrical or data cabling requirements.
( )
We are converting a barn and require service duct for water 100mm, Electric 125mm, Data/tele 50mm can you supply all relevant duct sizes.
( )
We currently only stock the duct sizes stated on the website and the maximum O/D is 110mm
( )
Is there any text on the outside of your ducting saying either "Electrical cable inside" or something similar? UKPN wants us to use ducting that carries such a label (in addition to the usual yellow tape higher up).
( )
Our black ducting does not have any warnings on the outside for high voltage.
( )
Would 40 or 50mm ducting be suitable for laying BT telephone line or a fibre optic cable underground?
( )
Yes, this ducting is suitable for all types of copper and Fibre data cables
( )
Is this OK to use on a training wall to add pebbles on top to help with drainage? Thanks
( )
We can not advise on the effectiveness of this for this purpose as it's recommended use is for the containment of cables.
( )
Do you stock the end caps for that ducting to prevent water getting in?
( )
Hi there,

We do not currently stock end caps for ducting, however this is something we will look into supplying in the future.
( )
What is the external dimension of the conduit please if the ID is 40mm?
( )
The ducting sizes listed on our website state the overall diameter not inner. The inner diameter is typically 8-10mm less than the outer e.g the 50mm ducting has an inner diameter of 40mm
( )
Does the 50mm ducting includes a drawcord to pull through cables easily?
( )
The draw cord comes with a full reel of this ducting and when smaller quantities are ordered you can specify to leave the draw cord in
( )
Do you do shallow bends to terminate your 100mm duct into a plinth
( )
Unfortunately we do not currently stock any bends for our underground ducting
( )
Can the couplers (50mm ones) be sold separately?
( )
Please contact our sales team on 01978 806111 and we should be able to assist with this.
( )
Can I run mains 25mm water pipe through it.
( )
Yes, there is no reason why you can not run a water pipe through this ducting. I would recommend the 50mm as this has a 40mm inner diameter allowing for more room if you require slight bends
( )
Can this conduit be terminated at a junction box (such as a WISKA box) with a secure and water resistant method? Is there a specific gland I can buy to do this?
( )
We are not currently aware of any IP rated glands for terminating this underground ducting. It would typically be pushed into the underground inspection pit boxes that we sell.
( )
I need a duct for a fibre cable is your 50mm HDPE Twin Wall Underground Ducting adequate and if so what's the max length, I need 30m. Can pick up as live in Whitchurch Shropshire.

Gary Chesters 07817 148692
( )
Good morning,

Providing the thickness of the cable is suitable for the internal diameter of this ducting, this will be suitable. We can supply this ducting in continuous lengths of up to 50m, so 30m will be no problem.

Kind regards
( )
What size of duct would I need for 6mm armoured cable ?
( )
The typical overall diameter of 6mm armoured mains cable would be around 16-17mm. I would recommend that you either use 40mm or 50mm twin wall ducting. If the duct will be installed around corners I would recommend going for the larger size.
( )
What is the minimum bend radius of both the 50 and 63 mm ducting?
( )
The minimum bend radius is 8 times DN or OD
( )
I would like 20m of 14942 NRO 75mm underground ducting in one piece , is this possible? How do I specify this when ordering than you Tim Rees.
( )
Hi Tim,

This can be done by selecting 2 lengths of 10m and requesting that this is cut as 1x 20m length in the comments section during checkout.

Kind regards
( )
Are you able to supply a 15 metre single length of your 50 mm conduit.
Regards Wilson
( )
Yes we automatically ship as one length. If you order a 10m and a 5m length, this will be shipped as one 15m length
( )
Is this perforated and would it be able to carry non pressurised water from a gutter
( )
The ducting isn't perforated and should be watertight. It is corrugated on the outside and smooth on the inside. It is designed as a conduit for cables but I can't see why it wouldn't work for this purpose.
( )
Hi, is this good enough for underground swa cable to EV charging unit
( )
Yes this is suitable for electrical or data cables underground
( )
Hi. Is it cuttable so I could make it split along it's length?
( )
Hi Sean,

All of our ducting is cuttable so making the incisions that you require will be no problem.

Kind regards
( )
What size ducting would I need to put a single telephone cable in and could I put a run of i
100m without a chamber . Many Thanks Rob
( )
I would recommend the 40mm twin wall ducting for this.
( )
Is the twin wall flexible. Do you sell 50mm to 50mm adaptors?
( )
Hi Gil,

This ducting is reasonably flexible and on the larger rolls (50M) will come with the couplings.

Kind regards
( )
Hi do you do 110mm flexi ducting rolls in Red ? I need 13 rolls (650)
( )
Hi Sean,

Unfortunately we have now discontinued our red ducting, and the last rolls we did have are now sold out.

Kind regards
( )
Hello I’m about have a patio
With a shed at far end
My spark can’t do the armour cable B4 he on holiday
so would this be ok to put under patio to run 6mm armour through
( )
Yes this should be suitable but ensure that there is some mains warning tape above the ducting if possible.
( )
@Paul Jarvis. You mention buying inspection pits to join the ducting but do you have a recommend product that would work for the 50mm ducting?

Thank you in anticipation
( )
We have a small range of inspection pits in stock. please call our sales team on 01978 806111
( )
Can I get 15m in one piece by ordering 3x5m?
( )
Yes. If you order the quantity you require either 2x10m and 1x 5m or 3x5m, them put a comment in the comments box at the checkout to state you would like this as one length.
( )
The 40mm would it bend say 90 degrees ?
Maybe with some heat applied?
( )
The ducting would almost certainly kink severely at that angle making it very difficult to pass cables through so I wouldn't recommend it
( )
Is this product flexible despite its twin walled strength.
( )
The twin wall is very tough and is designed to be crush resistant. As a result, the flexibility is limited. You can bend and manipulate the ducting and the smaller diameter has a better bend radius than the larger diameter.
( )
Do I need couplings to join the ducting , I need to connect to a number of points to supply auto gates
( )
We would recommend using inspection pits to join your ducting as this makes pulling cable through much easier. An inline coupler is supplied with a full 50m roll of our twin wall ducting.
( )
Can i use this as an underground sewer pipe?
I already have a 150mm ID pipe traversing under a trunk road. I need to get an SWA cable under the road using the sewer pipe and was thinking of buying this 110mm flexible pipe allowing enough room for the 15mm SWA cable to fit inbetween.
Could this pipe be used as a sewer pipe, given that it is chemical and water resistant?
( )
As this cable ducting is designed to be buried in the ground, we do not see why this could not be used within another pipe. We cannot guarantee that it's chemical resistance will be sufficient as it is not normal practice to install this submerged within a sewer.
( )
Does this come with draw string already in?
( )
Our twin wall ducting is supplied with a draw string when a full 50m roll is purchased. Shorter cut lengths are not supplied with a draw string.
( )
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.
Very good product
⭐ ⭐ ⭐ ⭐ ⭐
This is very good quality ducting and Connectec was the only place I could buy a short length for a reasonable price.
Author Tony17/09/2021   
2 people found this review helpful    Verified

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 / e5f5ecad7ec80de56b7af08a67c66d67
0.103699
Array
(
    [e5f5ecad7ec80de56b7af08a67c66d67] => Array
        (
            [customer_group_id] => 1
            [pricing_groups] => 
            [currency] => GBP
            [currency_value] => 1.00000000
            [country_id] => 222
            [location_id] => 0
            [tracker] => a2dd8ed4e918f7e226d865aca8bb96ef37fc96117f804c141e5b486b23967765
            [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 (3 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 (2 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 (1 day)
                                    [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 (1 day)
                                    [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 (1 day)
                                    [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 (4 days)
                                    [amount] => 0
                                    [amount_diff] => 0
                                    [amount_diff_text] => £0.00
                                    [price] => 16.67
                                    [price_text] => £20.00
                                )

                        )

                )

            [recent] => Array
                (
                    [11772] => 2025-05-05 17:57:45
                )

        )

)
Array
(
    [ALL] => Array
        (
            [0] => 17:57:45; PREPARED; MEMCACHE; __construct; SELECT * FROM ct_url_alias WHERE store_id = ? OR store_id = 0; 1
            [1] => 17:57:45; PREPARED; MEMCACHE; index; SELECT * FROM ct_setting WHERE store_id = 0 OR store_id = ? ORDER BY store_id ASC; 1
            [2] => 17:57:45; PREPARED; MEMCACHE; __construct; SELECT * FROM ct_customer_group WHERE customer_group_id = ?; 1
            [3] => 17:57:45; 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] => 17:57:45; STANDARD; MEMCACHE; ModelLocalisationCurrency; getCurrencies; SELECT * FROM ct_currency WHERE status = 1 ORDER BY title ASC
            [5] => 17:57:45; STANDARD; MEMCACHE; Cart\Currency; __construct; SELECT * FROM ct_currency
            [6] => 17:57:45; PREPARED; 0.000771; 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] => 17:57:45; PREPARED; 0.000356; Tracking; getNewTracker; SELECT tracking_id FROM ct_tracking WHERE tracker = ?; a2dd8ed4e918f7e226d865aca8bb96ef37fc96117f804c141e5b486b23967765
            [8] => 17:57:45; PREPARED; MEMCACHE; getRedirect; SELECT * FROM ct_url_redirect WHERE source = ? AND path = ?; installation|
            [9] => 17:57:45; PREPARED; MEMCACHE; getRedirect; SELECT * FROM ct_url_redirect WHERE source = ? AND path = ?; cabling-accessories|
            [10] => 17:57:45; PREPARED; MEMCACHE; getRedirect; SELECT * FROM ct_url_redirect WHERE source = ? AND path = ?; containment|
            [11] => 17:57:45; PREPARED; MEMCACHE; getRedirect; SELECT * FROM ct_url_redirect WHERE source = ? AND path = ?; underground-twin-wall-corrugated-data-or-electrical-ducting|
            [12] => 17:57:45; PREPARED; 0.001275; 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 = ?; 11772
            [13] => 17:57:45; PREPARED; 0.000273; ModelCatalogProduct; getProductKit; SELECT * FROM ct_product_kit WHERE product_id = ?; 11772
            [14] => 17:57:45; PREPARED; 0.000706; 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|11772
            [15] => 17:57:45; PREPARED; 0.000410; 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 = ?; 11772|1
            [16] => 17:57:45; PREPARED; 0.000512; 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|11772
            [17] => 17:57:45; PREPARED; 0.000231; ModelCatalogProduct; getProductKit; SELECT * FROM ct_product_kit WHERE product_id = ?; 18055
            [18] => 17:57:45; PREPARED; 0.000652; 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|18055
            [19] => 17:57:45; PREPARED; 0.000226; ModelCatalogProduct; getProductKit; SELECT * FROM ct_product_kit WHERE product_id = ?; 11773
            [20] => 17:57:45; PREPARED; 0.000621; 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|11773
            [21] => 17:57:45; PREPARED; 0.000227; ModelCatalogProduct; getProductKit; SELECT * FROM ct_product_kit WHERE product_id = ?; 18056
            [22] => 17:57:45; PREPARED; 0.000601; 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|18056
            [23] => 17:57:45; PREPARED; 0.000213; ModelCatalogProduct; getProductKit; SELECT * FROM ct_product_kit WHERE product_id = ?; 11774
            [24] => 17:57:45; PREPARED; 0.000617; 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|11774
            [25] => 17:57:45; PREPARED; 0.000213; ModelCatalogProduct; getProductKit; SELECT * FROM ct_product_kit WHERE product_id = ?; 11775
            [26] => 17:57:45; PREPARED; 0.000710; 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|11775
            [27] => 17:57:45; PREPARED; 0.000220; ModelCatalogProduct; getProductKit; SELECT * FROM ct_product_kit WHERE product_id = ?; 11776
            [28] => 17:57:45; PREPARED; 0.000612; 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|11776
            [29] => 17:57:45; PREPARED; 0.000220; ModelCatalogProduct; getProductKit; SELECT * FROM ct_product_kit WHERE product_id = ?; 11777
            [30] => 17:57:45; PREPARED; 0.000624; 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|11777
            [31] => 17:57:45; PREPARED; 0.000792; 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 = ?; 11777
            [32] => 17:57:45; PREPARED; 0.000234; ModelCatalogProduct; getProductKit; SELECT * FROM ct_product_kit WHERE product_id = ?; 11777
            [33] => 17:57:45; PREPARED; 0.000654; 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|11777
            [34] => 17:57:45; PREPARED; 0.000314; 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 = ?; 11777
            [35] => 17:57:45; PREPARED; 0.000235; 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 = ?; 11777
            [36] => 17:57:45; PREPARED; 0.000391; 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|18055
            [37] => 17:57:45; PREPARED; 0.000361; 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|11773
            [38] => 17:57:45; PREPARED; 0.000392; 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|18056
            [39] => 17:57:45; PREPARED; 0.000364; 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|11774
            [40] => 17:57:45; PREPARED; 0.000364; 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|11775
            [41] => 17:57:45; PREPARED; 0.000387; 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|11776
            [42] => 17:57:45; PREPARED; 0.000356; 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|11777
            [43] => 17:57:45; PREPARED; 0.000251; ModelCatalogProduct; getProductOptions; SELECT * FROM ct_product_option WHERE product_id = ? ORDER BY sort_order ASC; 11777
            [44] => 17:57:45; PREPARED; 0.000205; ModelCatalogProduct; getProductQtyDiscounts; SELECT p.price_rule_id FROM ct_product p WHERE p.product_id = ?; 11777
            [45] => 17:57:45; PREPARED; 0.000300; 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; 141|0|1
            [46] => 17:57:45; PREPARED; 0.000485; 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; 11777|0|1
            [47] => 17:57:45; PREPARED; 0.000474; 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|e5f5ecad7ec80de56b7af08a67c66d67
            [48] => 17:57:45; 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
            [49] => 17:57:45; PREPARED; 0.000232; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 4
            [50] => 17:57:45; PREPARED; 0.000227; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 4
            [51] => 17:57:45; PREPARED; 0.000314; 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 = ?; 4|2025-05-08
            [52] => 17:57:45; STANDARD; MEMCACHE; ModelLocalisationCountry; getCountries; SELECT * FROM ct_country WHERE status = '1' ORDER BY name ASC
            [53] => 17:57:45; STANDARD; MEMCACHE; ModelLocalisationZone; getZonesByCountryId; SELECT * FROM ct_zone WHERE country_id = '222' AND status = '1' ORDER BY name
            [54] => 17:57:45; PREPARED; 0.001024; 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
            [55] => 17:57:45; PREPARED; 0.000203; 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
            [56] => 17:57:45; PREPARED; 0.000408; 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|e5f5ecad7ec80de56b7af08a67c66d67
            [57] => 17:57:45; PREPARED; 0.000308; 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(?); 
            [58] => 17:57:45; PREPARED; 0.000375; 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|e5f5ecad7ec80de56b7af08a67c66d67
            [59] => 17:57:45; PREPARED; 0.000421; 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|e5f5ecad7ec80de56b7af08a67c66d67
            [60] => 17:57:45; PREPARED; 0.000233; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 2
            [61] => 17:57:45; PREPARED; 0.000222; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 2
            [62] => 17:57:45; PREPARED; 0.000310; 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
            [63] => 17:57:45; PREPARED; 0.000234; Cart\Shipping; getArrivalDates; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 2
            [64] => 17:57:45; PREPARED; 0.000221; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 2
            [65] => 17:57:45; PREPARED; 0.000230; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 2
            [66] => 17:57:45; PREPARED; 0.000303; 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
            [67] => 17:57:45; PREPARED; 0.000412; 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|e5f5ecad7ec80de56b7af08a67c66d67
            [68] => 17:57:45; PREPARED; 0.000228; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 3
            [69] => 17:57:45; PREPARED; 0.000218; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 3
            [70] => 17:57:45; PREPARED; 0.000312; 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
            [71] => 17:57:45; PREPARED; 0.000247; Cart\Shipping; getArrivalDates; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 3
            [72] => 17:57:45; PREPARED; 0.000206; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 3
            [73] => 17:57:45; PREPARED; 0.000222; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 3
            [74] => 17:57:45; 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 = ?; 3|2025-05-08
            [75] => 17:57:45; PREPARED; 0.000390; 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|e5f5ecad7ec80de56b7af08a67c66d67
            [76] => 17:57:45; PREPARED; 0.000239; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 1
            [77] => 17:57:45; PREPARED; 0.000217; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 1
            [78] => 17:57:45; PREPARED; 0.000290; 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
            [79] => 17:57:45; PREPARED; 0.000242; Cart\Shipping; getArrivalDates; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 1
            [80] => 17:57:45; PREPARED; 0.000217; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 1
            [81] => 17:57:45; PREPARED; 0.000219; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 1
            [82] => 17:57:45; PREPARED; 0.000299; 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
            [83] => 17:57:45; PREPARED; 0.000410; 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|e5f5ecad7ec80de56b7af08a67c66d67
            [84] => 17:57:45; PREPARED; 0.000230; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 16
            [85] => 17:57:45; PREPARED; 0.000243; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 16
            [86] => 17:57:45; PREPARED; 0.000303; 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
            [87] => 17:57:45; PREPARED; 0.000234; Cart\Shipping; getArrivalDates; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 16
            [88] => 17:57:45; PREPARED; 0.000211; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 16
            [89] => 17:57:45; PREPARED; 0.000225; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 16
            [90] => 17:57:45; PREPARED; 0.000272; 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
            [91] => 17:57:45; PREPARED; 0.000412; 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|e5f5ecad7ec80de56b7af08a67c66d67
            [92] => 17:57:45; PREPARED; 0.000227; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 17
            [93] => 17:57:45; PREPARED; 0.000218; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 17
            [94] => 17:57:45; PREPARED; 0.000282; 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
            [95] => 17:57:45; PREPARED; 0.000252; Cart\Shipping; getArrivalDates; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 17
            [96] => 17:57:45; PREPARED; 0.000208; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 17
            [97] => 17:57:45; PREPARED; 0.000213; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 17
            [98] => 17:57:45; PREPARED; 0.000315; 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
            [99] => 17:57:45; PREPARED; 0.000390; 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|e5f5ecad7ec80de56b7af08a67c66d67
            [100] => 17:57:45; PREPARED; 0.000247; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 18
            [101] => 17:57:45; PREPARED; 0.000234; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 18
            [102] => 17:57:45; PREPARED; 0.000295; 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
            [103] => 17:57:45; PREPARED; 0.000226; Cart\Shipping; getArrivalDates; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 18
            [104] => 17:57:45; PREPARED; 0.000231; Cart\Shipping; getArrivalDate; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 18
            [105] => 17:57:45; PREPARED; 0.000223; Cart\Shipping; getTotalShipments; SELECT * FROM ct_shipping_method WHERE shipping_method_id = ?; 18
            [106] => 17:57:45; PREPARED; 0.000289; 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
            [107] => 17:57:45; PREPARED; 0.000416; 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|e5f5ecad7ec80de56b7af08a67c66d67
            [108] => 17:57:45; 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
            [109] => 17:57:45; PREPARED; 0.000562; 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; 11777
            [110] => 17:57:45; PREPARED; 0.000300; ModelCatalogProduct; getProductImages; SELECT * FROM ct_product_image WHERE product_id = ? ORDER BY sort_order ASC; 11772
            [111] => 17:57:45; PREPARED; 0.000523; ModelCatalogProduct; getProductAlternatives; SELECT pa.alternative_id FROM ct_product_alternative pa LEFT JOIN ct_product p ON p.product_id = pa.alternative_id LEFT JOIN ct_product_available pav ON pav.product_id = p.product_id AND pav.store_id = ? WHERE pa.product_id = ? AND (p.eol != 1 OR pav.available > 0) AND p.status > 1 ORDER BY p.cost ASC; 1|11772
            [112] => 17:57:45; PREPARED; 0.000266; ModelCatalogProduct; getProductVideos; SELECT name, youtube_id FROM ct_product_video WHERE product_id = ? ORDER BY sort_order ASC; 11772
            [113] => 17:57:45; PREPARED; 0.000389; 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; 110mm HDPE Twin Wall Underground Ducting 50m Coil - Black burial,conduit,ducting,trunking,underground|95
            [114] => 17:57:45; PREPARED; 0.000272; ModelCatalogProduct; getProductFiles; SELECT * FROM ct_product_file WHERE product_id = ? AND online = 1 ORDER BY sort_order ASC; 11772
            [115] => 17:57:45; PREPARED; 0.000235; ModelCatalogProduct; getProductLinks; SELECT text, link FROM ct_product_link WHERE product_id = ? ORDER BY sort_order ASC; 11772
            [116] => 17:57:45; PREPARED; 0.000808; 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; 11772
            [117] => 17:57:45; PREPARED; 0.001003; 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|11772
            [118] => 17:57:45; PREPARED; 0.000949; 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; 11772|1|11772|1
            [119] => 17:57:45; PREPARED; 0.000359; 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'; 11772
            [120] => 17:57:45; PREPARED; 0.000321; 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; 11772
            [121] => 17:57:45; PREPARED; 0.000204; ModelCatalogReview; reviewedBy; SELECT customer_id FROM ct_review WHERE product_id = ? AND customer_id = ?; 11772|0
            [122] => 17:57:45; PREPARED; 0.000226; ModelAccountFavourites; getFavourites; SELECT * FROM ct_customer_favourites WHERE customer_id = ?; 0
            [123] => 17:57:45; PREPARED; 0.007012; ModelCatalogProduct; updateViewed; UPDATE ct_product SET viewed = (viewed + 1) WHERE product_id = ?; 11772
            [124] => 17:57:45; PREPARED; 0.000412; Tracking; track; SELECT customer_id FROM ct_customer WHERE tracker = ?; a2dd8ed4e918f7e226d865aca8bb96ef37fc96117f804c141e5b486b23967765
            [125] => 17:57:45; PREPARED; 0.007207; 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()); a2dd8ed4e918f7e226d865aca8bb96ef37fc96117f804c141e5b486b23967765|3.15.5.184|Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])|e5f5ecad7ec80de56b7af08a67c66d67|0||/installation/cabling-accessories/containment/underground-twin-wall-corrugated-data-or-electrical-ducting?variant_id=11777|view_product|11777
            [126] => 17:57:45; PREPARED; 0.000501; 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; 11772
            [127] => 17:57:45; PREPARED; MEMCACHE; getHtmlBlock; SELECT * FROM ct_html_block WHERE code = ? AND store_id = ?; why_buy|1
            [128] => 17:57:45; PREPARED; MEMCACHE; getHtmlBlock; SELECT * FROM ct_html_block WHERE code = ? AND store_id = ?; product_qa_text|1
            [129] => 17:57:45; PREPARED; MEMCACHE; getHtmlBlock; SELECT * FROM ct_html_block WHERE code = ? AND store_id = ?; product_review_text|1
            [130] => 17:57:45; PREPARED; MEMCACHE; getHtmlBlock; SELECT * FROM ct_html_block WHERE code = ? AND store_id = ?; product_links_disclaimer|1
        )

    [DUPLIACTES] => Array
(
    [91] => 17:57:45; PREPARED; 0.000412; 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|e5f5ecad7ec80de56b7af08a67c66d67
    [99] => 17:57:45; PREPARED; 0.000390; 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|e5f5ecad7ec80de56b7af08a67c66d67
)

    [TOTAL_EXECUTION_TIME] => 0.05582165718
)