Where the 21 came from

Real orders from the live store, before and after the change. 16 Sep 2026

Every product in the store has a lead time saved on it, the number of days it takes to make. A garage kit might say 5 days, a bigger one 10. A small number of products have no lead time saved: 153 out of 82,459, and 21 of those have actually been ordered in the past year. The ones you will see most are cprod (Custom Product), engineering-services and prd (Premium Delivery). Whether they ought to have one is a separate question. What matters here is what the system does when the field is empty.

1. A kit plus a cprod

This is the shape of Tina’s order. Same kind of order either side of 10 September.

Before 10 Sep

orderplacedeach line, and the lead time saved on that productCRM Lead Time
10009661419 Aug
SBSQ24241406-KB2410 days
cprodnone stored
engineering-servicesnone stored
10a kit, a cprod and an engineering line
10009519210 Jul
FBSK16361505-R10 days
cprodnone stored
10
10009569024 Jul
cprodnone stored
SBSQ24301406-R10 days
10

After 10 Sep

orderplacedeach line, and the lead time saved on that productCRM Lead Time
10009775211 Sep
FBSQ24240905-KB2410 days
cprodnone stored
10, 21Tina’s order
10009789615 Sep
LSM1121808061WD-2125 days
cprodnone stored
5, 21
10009790115 Sep
designer-app5 days
cprodnone stored
5, 21

Before, one number, and it is the kit’s. The cprod has no lead time saved, so it was left out of the list. After, the cprod contributes a 21.

Order 100096614 from August is the closest match to Tina’s. It has a kit, a cprod and an engineering-services line, and it still reported only 10. The engineering line added nothing.

On Tina’s order the kit shows 10 days. The product itself has 5 saved on it, but Scott’s Lead Time Manager setting for 2x3 garages was changed to 10 on 10 September and that setting wins. That change is deliberate and correct. It is only the second number, the 21, that is wrong.

2. A cprod on its own

Before 10 Sep

orderplacedeach line, and the lead time saved on that productCRM Lead Time
10009766710 Sep
cprodnone stored
(empty)
10009763309 Sep
cprodnone stored
(empty)

After 10 Sep

orderplacedeach line, and the lead time saved on that productCRM Lead Time
10009789715 Sep
cprodnone stored
21
10009789315 Sep
cprodnone stored
21

With nothing else on the order there is nothing to list, so the field was empty. After the change it reads 21.

3. Why it happened

  1. The CRM Lead Time field is a list, not a total. It holds one number per line on the order, separated by commas. Two lines of 10 days each read as 10, 10. It has no way to show what a number belongs to, and it never adds them up.
  2. A line with no number is left out of the list. That is why a cprod on its own left the field empty, and why a kit plus a cprod showed just the kit’s number.
  3. On 10 September we changed how that number is looked up. The goal was to make Scott’s new Lead Time Manager settings flow through to ship dates and the CRM, instead of only showing on the website. That part works.
  4. The new lookup can never answer “nothing”. The old one returned nothing when a product had no lead time saved. The new one always returns a number, and when a product has none of its own it falls back to a store-wide default. That default is 21 and has been set to 21 since 2019.
  5. So every product with no lead time saved started reporting 21. Twenty-one of them have been ordered in the past year, between them touching about 2,133 orders. By volume the main three are Custom Product, Engineering Services and Premium Delivery, but roof screws, touch up paint and a couple of sidewall kits are in the same group. None of them had ever reported a number before.
  6. Almost everything else was unaffected. 153 products out of 82,459 have no lead time saved, so 99.8% of the catalogue never reaches the fallback. Every kit has a real lead time, which is why the kit numbers above are the same on both sides.
The actual code change, for the record
- $product->getLeadTime()                      // returns nothing when none is saved
+ Mage::helper('shop')->getLeadTime($product)  // returns the 21 default instead

Two call sites in the file that builds the Zoho payload. The fix adds a third option, a lookup that can still answer “nothing”, and points those two lines at it.

4. What happened when

5. After the fix

Kits, 16 Sep

orderplacedeach line, and the lead time saved on that productCRM Lead Time
10009792816 Sep
2x3-HE-510 days
10
10009792416 Sep
PVM0142700905 days
5

cprods, 16 Sep

orderplacedeach line, and the lead time saved on that productCRM Lead Time
10009792516 Sep
cprodnone stored
(empty)
10009791215 Sep
cprodnone stored
prdnone stored
engineering-servicesnone stored
(empty)our test order

Kits unchanged, cprods back to empty.