[object Object]

← back to Dw Rotation Activator

rotation gate: quote-only ('quotes' tag) lines exempt from no-sellable-variant too (Koroseal/Vahallan sample-only by design)

0b70591a6cdc52d79b3119431b028c4d7188d2b5 · 2026-07-23 12:30:51 -0700 · Steve Abrams

Files touched

Diff

commit 0b70591a6cdc52d79b3119431b028c4d7188d2b5
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Thu Jul 23 12:30:51 2026 -0700

    rotation gate: quote-only ('quotes' tag) lines exempt from no-sellable-variant too (Koroseal/Vahallan sample-only by design)
---
 rotate-activate.js | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/rotate-activate.js b/rotate-activate.js
index f6ada3a..2ffc247 100644
--- a/rotate-activate.js
+++ b/rotate-activate.js
@@ -215,9 +215,12 @@ function fiveFieldExtra(n) {
   const tagCount = (n.tags || []).length;
   const reasons = [];
   if (!hasSample) reasons.push('no-sample-variant');
-  if (!sellable.length) reasons.push('no-sellable-variant');
-  // quote-only lines legitimately have NULL roll price (only the $4.25 sample) →
-  // exempt from the price>0-on-sellable requirement, consistent with activate-gated.js.
+  // Designated quote-only lines (the `quotes` tag — e.g. Koroseal, Vahallan) legitimately
+  // ship sample-only: the customer requests a per-project quote, so there is NO sellable
+  // (non-sample) variant AND no roll price. Exempt BOTH the sellable-variant and the
+  // price>0 requirements for them (2026-07-23, per memory quote-only-ok-lines /
+  // no-cost-no-sellable-variant). Non-quote lines are unaffected — they still require both.
+  if (!sellable.length && !isQuoteOnly) reasons.push('no-sellable-variant');
   if (!hasSellablePriced && !isQuoteOnly) reasons.push('sellable-price-not-gt-0');
   if (tagCount < 2) reasons.push('fewer-than-2-tags');
   return { ok: reasons.length === 0, reasons };

← 469d6e0 leakGuard: add rigo / rigowall / rigo wallcovering (RIGO PL  ·  back to Dw Rotation Activator  ·  auto-save: 2026-07-25T12:36:15 (1 files) — cmo-activate.js f8d9655 →