sfcc-dev-mcp 1.0.19 → 1.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/clients/logs/index.d.ts +13 -0
- package/dist/clients/logs/index.d.ts.map +1 -0
- package/dist/clients/logs/index.js +15 -0
- package/dist/clients/logs/index.js.map +1 -0
- package/dist/clients/logs/log-analyzer.d.ts +55 -0
- package/dist/clients/logs/log-analyzer.d.ts.map +1 -0
- package/dist/clients/logs/log-analyzer.js +228 -0
- package/dist/clients/logs/log-analyzer.js.map +1 -0
- package/dist/clients/logs/log-client.d.ts +87 -0
- package/dist/clients/logs/log-client.d.ts.map +1 -0
- package/dist/clients/logs/log-client.js +418 -0
- package/dist/clients/logs/log-client.js.map +1 -0
- package/dist/clients/logs/log-constants.d.ts +37 -0
- package/dist/clients/logs/log-constants.d.ts.map +1 -0
- package/dist/clients/logs/log-constants.js +37 -0
- package/dist/clients/logs/log-constants.js.map +1 -0
- package/dist/clients/logs/log-file-discovery.d.ts +64 -0
- package/dist/clients/logs/log-file-discovery.d.ts.map +1 -0
- package/dist/clients/logs/log-file-discovery.js +249 -0
- package/dist/clients/logs/log-file-discovery.js.map +1 -0
- package/dist/clients/logs/log-file-reader.d.ts +55 -0
- package/dist/clients/logs/log-file-reader.d.ts.map +1 -0
- package/dist/clients/logs/log-file-reader.js +207 -0
- package/dist/clients/logs/log-file-reader.js.map +1 -0
- package/dist/clients/logs/log-formatter.d.ts +90 -0
- package/dist/clients/logs/log-formatter.d.ts.map +1 -0
- package/dist/clients/logs/log-formatter.js +189 -0
- package/dist/clients/logs/log-formatter.js.map +1 -0
- package/dist/clients/logs/log-processor.d.ts +91 -0
- package/dist/clients/logs/log-processor.d.ts.map +1 -0
- package/dist/clients/logs/log-processor.js +328 -0
- package/dist/clients/logs/log-processor.js.map +1 -0
- package/dist/clients/logs/log-types.d.ts +58 -0
- package/dist/clients/logs/log-types.d.ts.map +1 -0
- package/dist/clients/logs/log-types.js +8 -0
- package/dist/clients/logs/log-types.js.map +1 -0
- package/dist/clients/logs/webdav-client-manager.d.ts +28 -0
- package/dist/clients/logs/webdav-client-manager.d.ts.map +1 -0
- package/dist/clients/logs/webdav-client-manager.js +77 -0
- package/dist/clients/logs/webdav-client-manager.js.map +1 -0
- package/dist/docs/dw_customer/CustomerMgr.md +3 -3
- package/dist/docs/dw_customer/Wallet.md +25 -0
- package/dist/docs/dw_extensions.payments/SalesforceAdyenPaymentIntent.md +156 -0
- package/dist/docs/dw_extensions.payments/SalesforceAdyenSavedPaymentMethod.md +258 -0
- package/dist/docs/dw_extensions.payments/SalesforcePayPalOrder.md +36 -0
- package/dist/docs/dw_extensions.payments/SalesforcePaymentIntent.md +1 -1
- package/dist/docs/dw_extensions.payments/SalesforcePaymentsHooks.md +68 -1
- package/dist/docs/dw_extensions.payments/SalesforcePaymentsMerchantAccount.md +154 -0
- package/dist/docs/dw_extensions.payments/SalesforcePaymentsMerchantAccountPaymentMethod.md +96 -0
- package/dist/docs/dw_extensions.payments/SalesforcePaymentsMgr.md +311 -2
- package/dist/docs/dw_extensions.payments/SalesforcePaymentsSiteConfiguration.md +26 -0
- package/dist/docs/dw_extensions.payments/SalesforcePaymentsZone.md +458 -0
- package/dist/docs/dw_order/OrderMgr.md +3 -3
- package/dist/docs/dw_order.hooks/BasketMergeHooks.md +4 -4
- package/dist/docs/dw_order.hooks/CheckoutHooks.md +42 -0
- package/dist/utils/path-resolver.d.ts +5 -0
- package/dist/utils/path-resolver.d.ts.map +1 -1
- package/dist/utils/path-resolver.js +27 -5
- package/dist/utils/path-resolver.js.map +1 -1
- package/package.json +9 -3
- package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -131
- package/.github/ISSUE_TEMPLATE/config.yml +0 -9
- package/.github/ISSUE_TEMPLATE/documentation.yml +0 -117
- package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -151
- package/.github/ISSUE_TEMPLATE/question.yml +0 -102
- package/.github/PULL_REQUEST_TEMPLATE/bug_fix.md +0 -59
- package/.github/PULL_REQUEST_TEMPLATE/documentation.md +0 -48
- package/.github/PULL_REQUEST_TEMPLATE/new_tool.md +0 -55
- package/.github/agents/official-docs-researcher.agent.md +0 -56
- package/.github/dependabot.yml +0 -65
- package/.github/instructions/mcp-node-tests.instructions.md +0 -30
- package/.github/instructions/mcp-yml-tests.instructions.md +0 -27
- package/.github/pull_request_template.md +0 -103
- package/.github/skills/agent-authoring/SKILL.md +0 -66
- package/.github/skills/mcp-log-debugging/SKILL.md +0 -69
- package/.github/skills/mcp-programmatic-testing/SKILL.md +0 -142
- package/.github/skills/mcp-yaml-testing/SKILL.md +0 -136
- package/.github/skills/salesforce-developer-site-scraper/SKILL.md +0 -102
- package/.github/skills/salesforce-developer-site-scraper/scripts/scrape-to-markdown.js +0 -205
- package/.github/skills/salesforce-help-site-scraper/SKILL.md +0 -84
- package/.github/skills/salesforce-help-site-scraper/scripts/scrape-help-to-markdown.js +0 -212
- package/.github/skills/skill-authoring/SKILL.md +0 -228
- package/.github/skills/skill-authoring/references/PATTERNS.md +0 -384
- package/.github/workflows/ci.yml +0 -103
- package/.github/workflows/deploy-pages.yml +0 -59
- package/.github/workflows/publish.yml +0 -112
- package/.github/workflows/update-docs.yml +0 -182
- package/.husky/pre-commit +0 -2
- package/AGENTS.md +0 -638
- package/CONTRIBUTING.md +0 -323
- package/SECURITY.md +0 -148
- package/aegis.config.docs-only.json +0 -9
- package/aegis.config.json +0 -12
- package/aegis.config.with-dw.json +0 -15
- package/ai-instructions/AGENTS.md +0 -628
- package/ai-instructions/skills/sfcc-caching/SKILL.md +0 -89
- package/ai-instructions/skills/sfcc-cartridge-development/SKILL.md +0 -240
- package/ai-instructions/skills/sfcc-forms-development/SKILL.md +0 -261
- package/ai-instructions/skills/sfcc-forms-development/references/ARCHITECTURE-SGJC-SFRA.md +0 -143
- package/ai-instructions/skills/sfcc-forms-development/references/FORM-XML-CHEATSHEET.md +0 -127
- package/ai-instructions/skills/sfcc-fraud-prevention/SKILL.md +0 -95
- package/ai-instructions/skills/sfcc-hooks-registration/SKILL.md +0 -39
- package/ai-instructions/skills/sfcc-isml-development/SKILL.md +0 -370
- package/ai-instructions/skills/sfcc-isml-development/references/REMOTE-INCLUDES.md +0 -116
- package/ai-instructions/skills/sfcc-isml-development/references/SFRA-LAYOUTS.md +0 -50
- package/ai-instructions/skills/sfcc-isml-development/references/SFRA-PAGES-CART-ACCOUNT-AUTH.md +0 -45
- package/ai-instructions/skills/sfcc-isml-development/references/SFRA-PAGES-CATALOG.md +0 -85
- package/ai-instructions/skills/sfcc-isml-development/references/SFRA-STRUCTURE-COMPONENTS.md +0 -63
- package/ai-instructions/skills/sfcc-isml-development/references/UTILITIES-EXPRESSIONS.md +0 -159
- package/ai-instructions/skills/sfcc-isml-development/references/sfra-base-templates-architecture.md +0 -13
- package/ai-instructions/skills/sfcc-job-development/SKILL.md +0 -334
- package/ai-instructions/skills/sfcc-job-development/references/CHUNK-ORIENTED.md +0 -393
- package/ai-instructions/skills/sfcc-job-development/references/STEPTYPES-JSON.md +0 -271
- package/ai-instructions/skills/sfcc-job-development/references/TASK-ORIENTED.md +0 -257
- package/ai-instructions/skills/sfcc-localization/SKILL.md +0 -92
- package/ai-instructions/skills/sfcc-localization/references/CONTROLLERS.md +0 -63
- package/ai-instructions/skills/sfcc-localization/references/FORMATTING.md +0 -29
- package/ai-instructions/skills/sfcc-localization/references/FORMS-LOCALIZATION.md +0 -33
- package/ai-instructions/skills/sfcc-localization/references/JAVASCRIPT-LOCALIZATION.md +0 -41
- package/ai-instructions/skills/sfcc-localization/references/LOCALE-SWITCHING.md +0 -35
- package/ai-instructions/skills/sfcc-localization/references/PATTERNS.md +0 -740
- package/ai-instructions/skills/sfcc-localization/references/PROPERTIES-ENCODING.md +0 -25
- package/ai-instructions/skills/sfcc-localization/references/RESOURCE-BUNDLES.md +0 -67
- package/ai-instructions/skills/sfcc-localization/references/STATIC-FILES.md +0 -23
- package/ai-instructions/skills/sfcc-localization/references/TESTING.md +0 -21
- package/ai-instructions/skills/sfcc-localserviceregistry/SKILL.md +0 -374
- package/ai-instructions/skills/sfcc-logging/SKILL.md +0 -352
- package/ai-instructions/skills/sfcc-logging/references/LOG-FILES.md +0 -282
- package/ai-instructions/skills/sfcc-ocapi-hooks/SKILL.md +0 -350
- package/ai-instructions/skills/sfcc-ocapi-scapi-slas/SKILL.md +0 -108
- package/ai-instructions/skills/sfcc-page-designer/SKILL.md +0 -353
- package/ai-instructions/skills/sfcc-page-designer/references/ATTRIBUTE-TYPES.md +0 -436
- package/ai-instructions/skills/sfcc-page-designer/references/META-DEFINITIONS.md +0 -322
- package/ai-instructions/skills/sfcc-performance/SKILL.md +0 -424
- package/ai-instructions/skills/sfcc-platform-limits/SKILL.md +0 -89
- package/ai-instructions/skills/sfcc-scapi-custom-endpoints/SKILL.md +0 -237
- package/ai-instructions/skills/sfcc-scapi-custom-endpoints/references/AUTHENTICATION.md +0 -214
- package/ai-instructions/skills/sfcc-scapi-custom-endpoints/references/URL-MAPPING.md +0 -253
- package/ai-instructions/skills/sfcc-scapi-hooks/SKILL.md +0 -341
- package/ai-instructions/skills/sfcc-script-evaluation/SKILL.md +0 -380
- package/ai-instructions/skills/sfcc-security/SKILL.md +0 -394
- package/ai-instructions/skills/sfcc-sfra-client-side-js/SKILL.md +0 -270
- package/ai-instructions/skills/sfcc-sfra-client-side-js/references/AJAX-CSRF-VALIDATION.md +0 -285
- package/ai-instructions/skills/sfcc-sfra-client-side-js/references/BASE-MODULE-INDEX.md +0 -206
- package/ai-instructions/skills/sfcc-sfra-client-side-js/references/EXTENSION-PATTERNS.md +0 -165
- package/ai-instructions/skills/sfcc-sfra-client-side-js/references/PLUGIN-PATTERNS.md +0 -185
- package/ai-instructions/skills/sfcc-sfra-controllers/SKILL.md +0 -347
- package/ai-instructions/skills/sfcc-sfra-controllers/references/MIDDLEWARE-REFERENCE.md +0 -257
- package/ai-instructions/skills/sfcc-sfra-controllers/references/REMOTE-INCLUDES.md +0 -193
- package/ai-instructions/skills/sfcc-sfra-controllers/references/standard-sfra-controllers.md +0 -814
- package/ai-instructions/skills/sfcc-sfra-models/SKILL.md +0 -322
- package/ai-instructions/skills/sfcc-sfra-models/references/MODEL-PATTERNS.md +0 -530
- package/ai-instructions/skills/sfcc-sfra-models/references/MODEL-STRUCTURE.md +0 -234
- package/ai-instructions/skills/sfcc-sfra-models/references/TESTING-SECURITY.md +0 -417
- package/ai-instructions/skills/sfcc-sfra-scss/SKILL.md +0 -393
- package/ai-instructions/skills/sfcc-webdav-workflows/SKILL.md +0 -111
- package/docs/TopLevel/APIException.md +0 -68
- package/docs/TopLevel/Array.md +0 -897
- package/docs/TopLevel/ArrayBuffer.md +0 -79
- package/docs/TopLevel/BigInt.md +0 -132
- package/docs/TopLevel/Boolean.md +0 -62
- package/docs/TopLevel/ConversionError.md +0 -23
- package/docs/TopLevel/DataView.md +0 -352
- package/docs/TopLevel/Date.md +0 -924
- package/docs/TopLevel/ES6Iterator.md +0 -33
- package/docs/TopLevel/Error.md +0 -88
- package/docs/TopLevel/EvalError.md +0 -23
- package/docs/TopLevel/Fault.md +0 -87
- package/docs/TopLevel/Float32Array.md +0 -130
- package/docs/TopLevel/Float64Array.md +0 -130
- package/docs/TopLevel/Function.md +0 -105
- package/docs/TopLevel/Generator.md +0 -78
- package/docs/TopLevel/IOError.md +0 -62
- package/docs/TopLevel/Int16Array.md +0 -130
- package/docs/TopLevel/Int32Array.md +0 -130
- package/docs/TopLevel/Int8Array.md +0 -130
- package/docs/TopLevel/InternalError.md +0 -23
- package/docs/TopLevel/Iterable.md +0 -41
- package/docs/TopLevel/Iterator.md +0 -48
- package/docs/TopLevel/JSON.md +0 -162
- package/docs/TopLevel/Map.md +0 -216
- package/docs/TopLevel/Math.md +0 -913
- package/docs/TopLevel/Module.md +0 -45
- package/docs/TopLevel/Namespace.md +0 -96
- package/docs/TopLevel/Number.md +0 -417
- package/docs/TopLevel/Object.md +0 -641
- package/docs/TopLevel/QName.md +0 -96
- package/docs/TopLevel/RangeError.md +0 -23
- package/docs/TopLevel/ReferenceError.md +0 -23
- package/docs/TopLevel/RegExp.md +0 -109
- package/docs/TopLevel/Set.md +0 -165
- package/docs/TopLevel/StopIteration.md +0 -20
- package/docs/TopLevel/String.md +0 -1299
- package/docs/TopLevel/Symbol.md +0 -78
- package/docs/TopLevel/SyntaxError.md +0 -23
- package/docs/TopLevel/SystemError.md +0 -62
- package/docs/TopLevel/TypeError.md +0 -23
- package/docs/TopLevel/URIError.md +0 -23
- package/docs/TopLevel/Uint16Array.md +0 -130
- package/docs/TopLevel/Uint32Array.md +0 -130
- package/docs/TopLevel/Uint8Array.md +0 -130
- package/docs/TopLevel/Uint8ClampedArray.md +0 -130
- package/docs/TopLevel/WeakMap.md +0 -137
- package/docs/TopLevel/WeakSet.md +0 -92
- package/docs/TopLevel/XML.md +0 -937
- package/docs/TopLevel/XMLList.md +0 -484
- package/docs/TopLevel/XMLStreamError.md +0 -74
- package/docs/TopLevel/arguments.md +0 -34
- package/docs/TopLevel/global.md +0 -474
- package/docs/dw_campaign/ABTest.md +0 -47
- package/docs/dw_campaign/ABTestMgr.md +0 -70
- package/docs/dw_campaign/ABTestSegment.md +0 -96
- package/docs/dw_campaign/AmountDiscount.md +0 -51
- package/docs/dw_campaign/ApproachingDiscount.md +0 -124
- package/docs/dw_campaign/BonusChoiceDiscount.md +0 -146
- package/docs/dw_campaign/BonusDiscount.md +0 -48
- package/docs/dw_campaign/Campaign.md +0 -365
- package/docs/dw_campaign/CampaignMgr.md +0 -395
- package/docs/dw_campaign/CampaignStatusCodes.md +0 -48
- package/docs/dw_campaign/Coupon.md +0 -310
- package/docs/dw_campaign/CouponMgr.md +0 -144
- package/docs/dw_campaign/CouponRedemption.md +0 -94
- package/docs/dw_campaign/CouponStatusCodes.md +0 -86
- package/docs/dw_campaign/Discount.md +0 -226
- package/docs/dw_campaign/DiscountPlan.md +0 -282
- package/docs/dw_campaign/FixedPriceDiscount.md +0 -52
- package/docs/dw_campaign/FixedPriceShippingDiscount.md +0 -52
- package/docs/dw_campaign/FreeDiscount.md +0 -17
- package/docs/dw_campaign/FreeShippingDiscount.md +0 -17
- package/docs/dw_campaign/PercentageDiscount.md +0 -52
- package/docs/dw_campaign/PercentageOptionDiscount.md +0 -48
- package/docs/dw_campaign/PriceBookPriceDiscount.md +0 -47
- package/docs/dw_campaign/Promotion.md +0 -874
- package/docs/dw_campaign/PromotionMgr.md +0 -386
- package/docs/dw_campaign/PromotionPlan.md +0 -330
- package/docs/dw_campaign/SlotContent.md +0 -144
- package/docs/dw_campaign/SourceCodeGroup.md +0 -72
- package/docs/dw_campaign/SourceCodeInfo.md +0 -144
- package/docs/dw_campaign/SourceCodeStatusCodes.md +0 -36
- package/docs/dw_campaign/TotalFixedPriceDiscount.md +0 -47
- package/docs/dw_catalog/Catalog.md +0 -122
- package/docs/dw_catalog/CatalogMgr.md +0 -182
- package/docs/dw_catalog/Category.md +0 -1308
- package/docs/dw_catalog/CategoryAssignment.md +0 -192
- package/docs/dw_catalog/CategoryLink.md +0 -126
- package/docs/dw_catalog/PriceBook.md +0 -242
- package/docs/dw_catalog/PriceBookMgr.md +0 -204
- package/docs/dw_catalog/Product.md +0 -2593
- package/docs/dw_catalog/ProductActiveData.md +0 -1275
- package/docs/dw_catalog/ProductAttributeModel.md +0 -277
- package/docs/dw_catalog/ProductAvailabilityLevels.md +0 -142
- package/docs/dw_catalog/ProductAvailabilityModel.md +0 -380
- package/docs/dw_catalog/ProductInventoryList.md +0 -140
- package/docs/dw_catalog/ProductInventoryMgr.md +0 -117
- package/docs/dw_catalog/ProductInventoryRecord.md +0 -563
- package/docs/dw_catalog/ProductLink.md +0 -144
- package/docs/dw_catalog/ProductMgr.md +0 -138
- package/docs/dw_catalog/ProductOption.md +0 -214
- package/docs/dw_catalog/ProductOptionModel.md +0 -246
- package/docs/dw_catalog/ProductOptionValue.md +0 -123
- package/docs/dw_catalog/ProductPriceInfo.md +0 -172
- package/docs/dw_catalog/ProductPriceModel.md +0 -745
- package/docs/dw_catalog/ProductPriceTable.md +0 -134
- package/docs/dw_catalog/ProductSearchHit.md +0 -581
- package/docs/dw_catalog/ProductSearchModel.md +0 -2018
- package/docs/dw_catalog/ProductSearchRefinementDefinition.md +0 -97
- package/docs/dw_catalog/ProductSearchRefinementValue.md +0 -73
- package/docs/dw_catalog/ProductSearchRefinements.md +0 -216
- package/docs/dw_catalog/ProductVariationAttribute.md +0 -100
- package/docs/dw_catalog/ProductVariationAttributeValue.md +0 -238
- package/docs/dw_catalog/ProductVariationModel.md +0 -849
- package/docs/dw_catalog/Recommendation.md +0 -314
- package/docs/dw_catalog/SearchModel.md +0 -901
- package/docs/dw_catalog/SearchRefinementDefinition.md +0 -146
- package/docs/dw_catalog/SearchRefinementValue.md +0 -185
- package/docs/dw_catalog/SearchRefinements.md +0 -180
- package/docs/dw_catalog/SortingOption.md +0 -120
- package/docs/dw_catalog/SortingRule.md +0 -47
- package/docs/dw_catalog/Store.md +0 -562
- package/docs/dw_catalog/StoreGroup.md +0 -96
- package/docs/dw_catalog/StoreInventoryFilter.md +0 -74
- package/docs/dw_catalog/StoreInventoryFilterValue.md +0 -74
- package/docs/dw_catalog/StoreMgr.md +0 -236
- package/docs/dw_catalog/Variant.md +0 -859
- package/docs/dw_catalog/VariationGroup.md +0 -792
- package/docs/dw_content/Content.md +0 -534
- package/docs/dw_content/ContentMgr.md +0 -166
- package/docs/dw_content/ContentSearchModel.md +0 -682
- package/docs/dw_content/ContentSearchRefinementDefinition.md +0 -49
- package/docs/dw_content/ContentSearchRefinementValue.md +0 -17
- package/docs/dw_content/ContentSearchRefinements.md +0 -208
- package/docs/dw_content/Folder.md +0 -467
- package/docs/dw_content/Library.md +0 -121
- package/docs/dw_content/MarkupText.md +0 -88
- package/docs/dw_content/MediaFile.md +0 -317
- package/docs/dw_crypto/CertificateRef.md +0 -42
- package/docs/dw_crypto/CertificateUtils.md +0 -187
- package/docs/dw_crypto/Cipher.md +0 -530
- package/docs/dw_crypto/Encoding.md +0 -220
- package/docs/dw_crypto/JWE.md +0 -224
- package/docs/dw_crypto/JWEHeader.md +0 -172
- package/docs/dw_crypto/JWS.md +0 -264
- package/docs/dw_crypto/JWSHeader.md +0 -148
- package/docs/dw_crypto/KeyRef.md +0 -44
- package/docs/dw_crypto/Mac.md +0 -139
- package/docs/dw_crypto/MessageDigest.md +0 -175
- package/docs/dw_crypto/SecureRandom.md +0 -148
- package/docs/dw_crypto/Signature.md +0 -252
- package/docs/dw_crypto/WeakCipher.md +0 -538
- package/docs/dw_crypto/WeakMac.md +0 -121
- package/docs/dw_crypto/WeakMessageDigest.md +0 -163
- package/docs/dw_crypto/WeakSignature.md +0 -242
- package/docs/dw_crypto/X509Certificate.md +0 -193
- package/docs/dw_customer/AddressBook.md +0 -163
- package/docs/dw_customer/AgentUserMgr.md +0 -83
- package/docs/dw_customer/AgentUserStatusCodes.md +0 -96
- package/docs/dw_customer/AuthenticationStatus.md +0 -138
- package/docs/dw_customer/Credentials.md +0 -494
- package/docs/dw_customer/Customer.md +0 -571
- package/docs/dw_customer/CustomerActiveData.md +0 -552
- package/docs/dw_customer/CustomerAddress.md +0 -852
- package/docs/dw_customer/CustomerCDPData.md +0 -70
- package/docs/dw_customer/CustomerContextMgr.md +0 -64
- package/docs/dw_customer/CustomerGroup.md +0 -134
- package/docs/dw_customer/CustomerList.md +0 -71
- package/docs/dw_customer/CustomerMgr.md +0 -735
- package/docs/dw_customer/CustomerPasswordConstraints.md +0 -142
- package/docs/dw_customer/CustomerPaymentInstrument.md +0 -125
- package/docs/dw_customer/CustomerStatusCodes.md +0 -30
- package/docs/dw_customer/EncryptedObject.md +0 -18
- package/docs/dw_customer/ExternalProfile.md +0 -160
- package/docs/dw_customer/OrderHistory.md +0 -111
- package/docs/dw_customer/ProductList.md +0 -1000
- package/docs/dw_customer/ProductListItem.md +0 -504
- package/docs/dw_customer/ProductListItemPurchase.md +0 -145
- package/docs/dw_customer/ProductListMgr.md +0 -234
- package/docs/dw_customer/ProductListRegistrant.md +0 -193
- package/docs/dw_customer/Profile.md +0 -1128
- package/docs/dw_customer/Wallet.md +0 -118
- package/docs/dw_extensions.applepay/ApplePayHookResult.md +0 -209
- package/docs/dw_extensions.applepay/ApplePayHooks.md +0 -255
- package/docs/dw_extensions.facebook/FacebookFeedHooks.md +0 -47
- package/docs/dw_extensions.facebook/FacebookProduct.md +0 -1621
- package/docs/dw_extensions.paymentrequest/PaymentRequestHookResult.md +0 -159
- package/docs/dw_extensions.paymentrequest/PaymentRequestHooks.md +0 -160
- package/docs/dw_extensions.payments/SalesforceBancontactPaymentDetails.md +0 -79
- package/docs/dw_extensions.payments/SalesforceCardPaymentDetails.md +0 -103
- package/docs/dw_extensions.payments/SalesforceEpsPaymentDetails.md +0 -51
- package/docs/dw_extensions.payments/SalesforceIdealPaymentDetails.md +0 -51
- package/docs/dw_extensions.payments/SalesforceKlarnaPaymentDetails.md +0 -51
- package/docs/dw_extensions.payments/SalesforcePayPalOrder.md +0 -246
- package/docs/dw_extensions.payments/SalesforcePayPalOrderAddress.md +0 -191
- package/docs/dw_extensions.payments/SalesforcePayPalOrderPayer.md +0 -118
- package/docs/dw_extensions.payments/SalesforcePayPalPaymentDetails.md +0 -79
- package/docs/dw_extensions.payments/SalesforcePaymentDetails.md +0 -57
- package/docs/dw_extensions.payments/SalesforcePaymentIntent.md +0 -281
- package/docs/dw_extensions.payments/SalesforcePaymentMethod.md +0 -346
- package/docs/dw_extensions.payments/SalesforcePaymentRequest.md +0 -784
- package/docs/dw_extensions.payments/SalesforcePaymentsHooks.md +0 -45
- package/docs/dw_extensions.payments/SalesforcePaymentsMgr.md +0 -634
- package/docs/dw_extensions.payments/SalesforcePaymentsSiteConfiguration.md +0 -95
- package/docs/dw_extensions.payments/SalesforceSepaDebitPaymentDetails.md +0 -51
- package/docs/dw_extensions.payments/SalesforceVenmoPaymentDetails.md +0 -79
- package/docs/dw_extensions.pinterest/PinterestAvailability.md +0 -86
- package/docs/dw_extensions.pinterest/PinterestFeedHooks.md +0 -69
- package/docs/dw_extensions.pinterest/PinterestOrder.md +0 -232
- package/docs/dw_extensions.pinterest/PinterestOrderHooks.md +0 -45
- package/docs/dw_extensions.pinterest/PinterestProduct.md +0 -850
- package/docs/dw_io/CSVStreamReader.md +0 -80
- package/docs/dw_io/CSVStreamWriter.md +0 -60
- package/docs/dw_io/File.md +0 -614
- package/docs/dw_io/FileReader.md +0 -41
- package/docs/dw_io/FileWriter.md +0 -103
- package/docs/dw_io/InputStream.md +0 -34
- package/docs/dw_io/OutputStream.md +0 -34
- package/docs/dw_io/PrintWriter.md +0 -71
- package/docs/dw_io/RandomAccessFileReader.md +0 -173
- package/docs/dw_io/Reader.md +0 -274
- package/docs/dw_io/StringWriter.md +0 -81
- package/docs/dw_io/Writer.md +0 -92
- package/docs/dw_io/XMLIndentingStreamWriter.md +0 -112
- package/docs/dw_io/XMLStreamConstants.md +0 -114
- package/docs/dw_io/XMLStreamReader.md +0 -1043
- package/docs/dw_io/XMLStreamWriter.md +0 -572
- package/docs/dw_job/JobExecution.md +0 -107
- package/docs/dw_job/JobStepExecution.md +0 -151
- package/docs/dw_net/FTPClient.md +0 -699
- package/docs/dw_net/FTPFileInfo.md +0 -122
- package/docs/dw_net/HTTPClient.md +0 -831
- package/docs/dw_net/HTTPClientLoggingConfig.md +0 -296
- package/docs/dw_net/HTTPRequestPart.md +0 -206
- package/docs/dw_net/Mail.md +0 -551
- package/docs/dw_net/SFTPClient.md +0 -591
- package/docs/dw_net/SFTPFileInfo.md +0 -122
- package/docs/dw_net/WebDAVClient.md +0 -715
- package/docs/dw_net/WebDAVFileInfo.md +0 -184
- package/docs/dw_object/ActiveData.md +0 -75
- package/docs/dw_object/CustomAttributes.md +0 -16
- package/docs/dw_object/CustomObject.md +0 -73
- package/docs/dw_object/CustomObjectMgr.md +0 -291
- package/docs/dw_object/Extensible.md +0 -64
- package/docs/dw_object/ExtensibleObject.md +0 -68
- package/docs/dw_object/Note.md +0 -121
- package/docs/dw_object/ObjectAttributeDefinition.md +0 -481
- package/docs/dw_object/ObjectAttributeGroup.md +0 -170
- package/docs/dw_object/ObjectAttributeValueDefinition.md +0 -72
- package/docs/dw_object/ObjectTypeDefinition.md +0 -216
- package/docs/dw_object/PersistentObject.md +0 -94
- package/docs/dw_object/SimpleExtensible.md +0 -46
- package/docs/dw_object/SystemObjectMgr.md +0 -153
- package/docs/dw_order/AbstractItem.md +0 -244
- package/docs/dw_order/AbstractItemCtnr.md +0 -240
- package/docs/dw_order/Appeasement.md +0 -367
- package/docs/dw_order/AppeasementItem.md +0 -90
- package/docs/dw_order/Basket.md +0 -362
- package/docs/dw_order/BasketMgr.md +0 -418
- package/docs/dw_order/BonusDiscountLineItem.md +0 -248
- package/docs/dw_order/CouponLineItem.md +0 -272
- package/docs/dw_order/CreateAgentBasketLimitExceededException.md +0 -18
- package/docs/dw_order/CreateBasketFromOrderException.md +0 -26
- package/docs/dw_order/CreateCouponLineItemException.md +0 -26
- package/docs/dw_order/CreateOrderException.md +0 -18
- package/docs/dw_order/CreateTemporaryBasketLimitExceededException.md +0 -18
- package/docs/dw_order/GiftCertificate.md +0 -569
- package/docs/dw_order/GiftCertificateLineItem.md +0 -324
- package/docs/dw_order/GiftCertificateMgr.md +0 -197
- package/docs/dw_order/GiftCertificateStatusCodes.md +0 -60
- package/docs/dw_order/Invoice.md +0 -418
- package/docs/dw_order/InvoiceItem.md +0 -222
- package/docs/dw_order/LineItem.md +0 -532
- package/docs/dw_order/LineItemCtnr.md +0 -2431
- package/docs/dw_order/Order.md +0 -2567
- package/docs/dw_order/OrderAddress.md +0 -807
- package/docs/dw_order/OrderItem.md +0 -536
- package/docs/dw_order/OrderMgr.md +0 -535
- package/docs/dw_order/OrderPaymentInstrument.md +0 -220
- package/docs/dw_order/OrderProcessStatusCodes.md +0 -84
- package/docs/dw_order/PaymentCard.md +0 -217
- package/docs/dw_order/PaymentInstrument.md +0 -1462
- package/docs/dw_order/PaymentMethod.md +0 -242
- package/docs/dw_order/PaymentMgr.md +0 -117
- package/docs/dw_order/PaymentProcessor.md +0 -70
- package/docs/dw_order/PaymentStatusCodes.md +0 -42
- package/docs/dw_order/PaymentTransaction.md +0 -328
- package/docs/dw_order/PriceAdjustment.md +0 -640
- package/docs/dw_order/PriceAdjustmentLimitTypes.md +0 -38
- package/docs/dw_order/ProductLineItem.md +0 -1821
- package/docs/dw_order/ProductShippingCost.md +0 -96
- package/docs/dw_order/ProductShippingLineItem.md +0 -326
- package/docs/dw_order/ProductShippingModel.md +0 -125
- package/docs/dw_order/Return.md +0 -360
- package/docs/dw_order/ReturnCase.md +0 -400
- package/docs/dw_order/ReturnCaseItem.md +0 -373
- package/docs/dw_order/ReturnItem.md +0 -362
- package/docs/dw_order/Shipment.md +0 -1251
- package/docs/dw_order/ShipmentShippingCost.md +0 -46
- package/docs/dw_order/ShipmentShippingModel.md +0 -146
- package/docs/dw_order/ShippingLineItem.md +0 -278
- package/docs/dw_order/ShippingLocation.md +0 -366
- package/docs/dw_order/ShippingMethod.md +0 -266
- package/docs/dw_order/ShippingMgr.md +0 -158
- package/docs/dw_order/ShippingOrder.md +0 -561
- package/docs/dw_order/ShippingOrderItem.md +0 -355
- package/docs/dw_order/SumItem.md +0 -147
- package/docs/dw_order/TaxGroup.md +0 -143
- package/docs/dw_order/TaxItem.md +0 -74
- package/docs/dw_order/TaxMgr.md +0 -227
- package/docs/dw_order/TrackingInfo.md +0 -312
- package/docs/dw_order/TrackingRef.md +0 -113
- package/docs/dw_order.hooks/BasketMergeHooks.md +0 -42
- package/docs/dw_order.hooks/CalculateHooks.md +0 -77
- package/docs/dw_order.hooks/OrderHooks.md +0 -41
- package/docs/dw_order.hooks/PaymentHooks.md +0 -180
- package/docs/dw_order.hooks/ReturnHooks.md +0 -135
- package/docs/dw_order.hooks/ShippingOrderHooks.md +0 -245
- package/docs/dw_rpc/SOAPUtil.md +0 -465
- package/docs/dw_rpc/Stub.md +0 -289
- package/docs/dw_rpc/WebReference.md +0 -83
- package/docs/dw_suggest/BrandSuggestions.md +0 -17
- package/docs/dw_suggest/CategorySuggestions.md +0 -53
- package/docs/dw_suggest/ContentSuggestions.md +0 -53
- package/docs/dw_suggest/CustomSuggestions.md +0 -17
- package/docs/dw_suggest/ProductSuggestions.md +0 -53
- package/docs/dw_suggest/SearchPhraseSuggestions.md +0 -117
- package/docs/dw_suggest/SuggestModel.md +0 -403
- package/docs/dw_suggest/SuggestedCategory.md +0 -46
- package/docs/dw_suggest/SuggestedContent.md +0 -46
- package/docs/dw_suggest/SuggestedPhrase.md +0 -70
- package/docs/dw_suggest/SuggestedProduct.md +0 -47
- package/docs/dw_suggest/SuggestedTerm.md +0 -143
- package/docs/dw_suggest/SuggestedTerms.md +0 -132
- package/docs/dw_suggest/Suggestions.md +0 -179
- package/docs/dw_svc/FTPService.md +0 -118
- package/docs/dw_svc/FTPServiceDefinition.md +0 -69
- package/docs/dw_svc/HTTPFormService.md +0 -18
- package/docs/dw_svc/HTTPFormServiceDefinition.md +0 -18
- package/docs/dw_svc/HTTPService.md +0 -415
- package/docs/dw_svc/HTTPServiceDefinition.md +0 -303
- package/docs/dw_svc/LocalServiceRegistry.md +0 -43
- package/docs/dw_svc/Result.md +0 -303
- package/docs/dw_svc/SOAPService.md +0 -115
- package/docs/dw_svc/SOAPServiceDefinition.md +0 -17
- package/docs/dw_svc/Service.md +0 -295
- package/docs/dw_svc/ServiceCallback.md +0 -268
- package/docs/dw_svc/ServiceConfig.md +0 -120
- package/docs/dw_svc/ServiceCredential.md +0 -156
- package/docs/dw_svc/ServiceDefinition.md +0 -176
- package/docs/dw_svc/ServiceProfile.md +0 -168
- package/docs/dw_svc/ServiceRegistry.md +0 -109
- package/docs/dw_system/AgentUserStatusCodes.md +0 -21
- package/docs/dw_system/Cache.md +0 -102
- package/docs/dw_system/CacheMgr.md +0 -42
- package/docs/dw_system/HookMgr.md +0 -66
- package/docs/dw_system/InternalObject.md +0 -56
- package/docs/dw_system/JobProcessMonitor.md +0 -124
- package/docs/dw_system/Log.md +0 -237
- package/docs/dw_system/LogNDC.md +0 -88
- package/docs/dw_system/Logger.md +0 -263
- package/docs/dw_system/OrganizationPreferences.md +0 -18
- package/docs/dw_system/Pipeline.md +0 -73
- package/docs/dw_system/PipelineDictionary.md +0 -16
- package/docs/dw_system/RESTErrorResponse.md +0 -66
- package/docs/dw_system/RESTResponseMgr.md +0 -258
- package/docs/dw_system/RESTSuccessResponse.md +0 -39
- package/docs/dw_system/RemoteInclude.md +0 -74
- package/docs/dw_system/Request.md +0 -839
- package/docs/dw_system/RequestHooks.md +0 -59
- package/docs/dw_system/Response.md +0 -522
- package/docs/dw_system/SearchStatus.md +0 -151
- package/docs/dw_system/Session.md +0 -476
- package/docs/dw_system/Site.md +0 -585
- package/docs/dw_system/SitePreferences.md +0 -49
- package/docs/dw_system/Status.md +0 -273
- package/docs/dw_system/StatusItem.md +0 -273
- package/docs/dw_system/System.md +0 -200
- package/docs/dw_system/Transaction.md +0 -84
- package/docs/dw_util/ArrayList.md +0 -50
- package/docs/dw_util/Assert.md +0 -391
- package/docs/dw_util/BigInteger.md +0 -326
- package/docs/dw_util/Bytes.md +0 -252
- package/docs/dw_util/Calendar.md +0 -921
- package/docs/dw_util/Collection.md +0 -338
- package/docs/dw_util/Currency.md +0 -163
- package/docs/dw_util/DateUtils.md +0 -86
- package/docs/dw_util/Decimal.md +0 -438
- package/docs/dw_util/FilteringCollection.md +0 -93
- package/docs/dw_util/Geolocation.md +0 -271
- package/docs/dw_util/HashMap.md +0 -43
- package/docs/dw_util/HashSet.md +0 -46
- package/docs/dw_util/Iterator.md +0 -97
- package/docs/dw_util/LinkedHashMap.md +0 -43
- package/docs/dw_util/LinkedHashSet.md +0 -46
- package/docs/dw_util/List.md +0 -519
- package/docs/dw_util/Locale.md +0 -267
- package/docs/dw_util/Map.md +0 -313
- package/docs/dw_util/MapEntry.md +0 -70
- package/docs/dw_util/MappingKey.md +0 -76
- package/docs/dw_util/MappingMgr.md +0 -122
- package/docs/dw_util/PropertyComparator.md +0 -51
- package/docs/dw_util/SecureEncoder.md +0 -350
- package/docs/dw_util/SecureFilter.md +0 -350
- package/docs/dw_util/SeekableIterator.md +0 -176
- package/docs/dw_util/Set.md +0 -19
- package/docs/dw_util/SortedMap.md +0 -148
- package/docs/dw_util/SortedSet.md +0 -151
- package/docs/dw_util/StringUtils.md +0 -753
- package/docs/dw_util/Template.md +0 -88
- package/docs/dw_util/UUIDUtils.md +0 -38
- package/docs/dw_value/EnumValue.md +0 -92
- package/docs/dw_value/MimeEncodedText.md +0 -103
- package/docs/dw_value/Money.md +0 -610
- package/docs/dw_value/Quantity.md +0 -376
- package/docs/dw_web/CSRFProtection.md +0 -83
- package/docs/dw_web/ClickStream.md +0 -157
- package/docs/dw_web/ClickStreamEntry.md +0 -289
- package/docs/dw_web/Cookie.md +0 -396
- package/docs/dw_web/Cookies.md +0 -46
- package/docs/dw_web/Form.md +0 -74
- package/docs/dw_web/FormAction.md +0 -199
- package/docs/dw_web/FormElement.md +0 -220
- package/docs/dw_web/FormElementValidationResult.md +0 -157
- package/docs/dw_web/FormField.md +0 -603
- package/docs/dw_web/FormFieldOption.md +0 -238
- package/docs/dw_web/FormFieldOptions.md +0 -42
- package/docs/dw_web/FormGroup.md +0 -199
- package/docs/dw_web/FormList.md +0 -126
- package/docs/dw_web/FormListItem.md +0 -48
- package/docs/dw_web/Forms.md +0 -16
- package/docs/dw_web/HttpParameter.md +0 -513
- package/docs/dw_web/HttpParameterMap.md +0 -185
- package/docs/dw_web/LoopIterator.md +0 -261
- package/docs/dw_web/PageMetaData.md +0 -230
- package/docs/dw_web/PageMetaTag.md +0 -142
- package/docs/dw_web/PagingModel.md +0 -389
- package/docs/dw_web/Resource.md +0 -126
- package/docs/dw_web/URL.md +0 -213
- package/docs/dw_web/URLAction.md +0 -26
- package/docs/dw_web/URLParameter.md +0 -22
- package/docs/dw_web/URLRedirect.md +0 -71
- package/docs/dw_web/URLRedirectMgr.md +0 -73
- package/docs/dw_web/URLUtils.md +0 -1264
- package/docs/isml/isactivedatacontext.md +0 -382
- package/docs/isml/isactivedatahead.md +0 -566
- package/docs/isml/isanalyticsoff.md +0 -537
- package/docs/isml/isapplepay.md +0 -667
- package/docs/isml/isbreak.md +0 -687
- package/docs/isml/isbuynow.md +0 -682
- package/docs/isml/iscache.md +0 -802
- package/docs/isml/iscomment.md +0 -794
- package/docs/isml/iscomponent.md +0 -797
- package/docs/isml/iscontent.md +0 -594
- package/docs/isml/iscontinue.md +0 -563
- package/docs/isml/iscookie.md +0 -798
- package/docs/isml/isdecorate.md +0 -818
- package/docs/isml/isif.md +0 -737
- package/docs/isml/isinclude.md +0 -874
- package/docs/isml/isloop.md +0 -377
- package/docs/isml/ismodule.md +0 -844
- package/docs/isml/isnext.md +0 -672
- package/docs/isml/isobject.md +0 -760
- package/docs/isml/ispayment.md +0 -577
- package/docs/isml/ispaymentmessages.md +0 -664
- package/docs/isml/isprint.md +0 -875
- package/docs/isml/isredirect.md +0 -716
- package/docs/isml/isremove.md +0 -725
- package/docs/isml/isreplace.md +0 -783
- package/docs/isml/isscript.md +0 -859
- package/docs/isml/isselect.md +0 -908
- package/docs/isml/isset.md +0 -585
- package/docs/isml/isslot.md +0 -824
- package/docs/isml/isstatus.md +0 -711
- package/docs/sfra/account.md +0 -145
- package/docs/sfra/address.md +0 -84
- package/docs/sfra/billing.md +0 -90
- package/docs/sfra/cart.md +0 -134
- package/docs/sfra/categories.md +0 -124
- package/docs/sfra/content.md +0 -133
- package/docs/sfra/locale.md +0 -126
- package/docs/sfra/order.md +0 -219
- package/docs/sfra/payment.md +0 -131
- package/docs/sfra/price-default.md +0 -118
- package/docs/sfra/price-range.md +0 -77
- package/docs/sfra/price-tiered.md +0 -117
- package/docs/sfra/product-bundle.md +0 -164
- package/docs/sfra/product-full.md +0 -179
- package/docs/sfra/product-line-items.md +0 -147
- package/docs/sfra/product-search.md +0 -245
- package/docs/sfra/product-tile.md +0 -95
- package/docs/sfra/querystring.md +0 -240
- package/docs/sfra/render.md +0 -354
- package/docs/sfra/request.md +0 -210
- package/docs/sfra/response.md +0 -391
- package/docs/sfra/server.md +0 -375
- package/docs/sfra/shipping.md +0 -181
- package/docs/sfra/store.md +0 -145
- package/docs/sfra/stores.md +0 -190
- package/docs/sfra/totals.md +0 -184
- package/docs-site-v2/.vitepress/config.mts +0 -190
- package/docs-site-v2/.vitepress/theme/components/AssistantTabs.vue +0 -96
- package/docs-site-v2/.vitepress/theme/components/Callout.vue +0 -10
- package/docs-site-v2/.vitepress/theme/components/Collapsible.vue +0 -14
- package/docs-site-v2/.vitepress/theme/components/DwJsonBuilder.vue +0 -82
- package/docs-site-v2/.vitepress/theme/components/HomeSections.vue +0 -552
- package/docs-site-v2/.vitepress/theme/components/InstructionFilesTabs.vue +0 -87
- package/docs-site-v2/.vitepress/theme/components/ModeTabs.vue +0 -70
- package/docs-site-v2/.vitepress/theme/components/NewcomerCTA.vue +0 -14
- package/docs-site-v2/.vitepress/theme/components/QuickStartCards.vue +0 -20
- package/docs-site-v2/.vitepress/theme/components/QuickStartHero.vue +0 -20
- package/docs-site-v2/.vitepress/theme/components/SkillsList.vue +0 -48
- package/docs-site-v2/.vitepress/theme/components/ToolExplorer.vue +0 -85
- package/docs-site-v2/.vitepress/theme/custom.css +0 -1373
- package/docs-site-v2/.vitepress/theme/index.ts +0 -39
- package/docs-site-v2/data/skills.ts +0 -147
- package/docs-site-v2/data/tools.ts +0 -490
- package/docs-site-v2/development/index.md +0 -151
- package/docs-site-v2/examples/index.md +0 -333
- package/docs-site-v2/features/index.md +0 -144
- package/docs-site-v2/guide/ai-interfaces.md +0 -58
- package/docs-site-v2/guide/configuration.md +0 -208
- package/docs-site-v2/guide/index.md +0 -50
- package/docs-site-v2/index.md +0 -32
- package/docs-site-v2/package-lock.json +0 -2511
- package/docs-site-v2/package.json +0 -15
- package/docs-site-v2/public/404.html +0 -15
- package/docs-site-v2/public/android-chrome-192x192.png +0 -0
- package/docs-site-v2/public/android-chrome-512x512.png +0 -0
- package/docs-site-v2/public/apple-touch-icon.png +0 -0
- package/docs-site-v2/public/explain-product-pricing-methods-no-mcp.png +0 -0
- package/docs-site-v2/public/explain-product-pricing-methods.png +0 -0
- package/docs-site-v2/public/favicon-16x16.png +0 -0
- package/docs-site-v2/public/favicon-32x32.png +0 -0
- package/docs-site-v2/public/favicon.ico +0 -0
- package/docs-site-v2/public/index.css +0 -4174
- package/docs-site-v2/public/llms.txt +0 -44
- package/docs-site-v2/public/logo-dark.svg +0 -8
- package/docs-site-v2/public/logo.svg +0 -8
- package/docs-site-v2/public/robots.txt +0 -20
- package/docs-site-v2/public/site.webmanifest +0 -50
- package/docs-site-v2/public/sitemap.xml +0 -90
- package/docs-site-v2/script-debugger/index.md +0 -105
- package/docs-site-v2/scripts/generate-llms.js +0 -71
- package/docs-site-v2/scripts/generate-sitemap.js +0 -97
- package/docs-site-v2/security/index.md +0 -115
- package/docs-site-v2/skills/index.md +0 -40
- package/docs-site-v2/tools/index.md +0 -36
- package/docs-site-v2/troubleshooting/index.md +0 -204
- package/eslint.config.js +0 -139
- package/jest.config.js +0 -27
- package/memories/repo/docs-site-v2-build.json +0 -11
- package/scripts/convert-docs.js +0 -633
- package/scripts/validate-server-json.js +0 -68
- package/server.json +0 -20
- package/src/clients/agent-instructions-client.ts +0 -370
- package/src/clients/base/abstract-documentation-client.ts +0 -405
- package/src/clients/base/http-client.ts +0 -152
- package/src/clients/base/oauth-token.ts +0 -164
- package/src/clients/base/ocapi-auth-client.ts +0 -133
- package/src/clients/cartridge/cartridge-generation-client.ts +0 -302
- package/src/clients/cartridge/cartridge-structure.ts +0 -37
- package/src/clients/cartridge/cartridge-templates.ts +0 -246
- package/src/clients/cartridge/index.ts +0 -6
- package/src/clients/docs/class-content-parser.ts +0 -308
- package/src/clients/docs/class-name-resolver.ts +0 -99
- package/src/clients/docs/documentation-scanner.ts +0 -255
- package/src/clients/docs/index.ts +0 -16
- package/src/clients/docs/referenced-types-extractor.ts +0 -92
- package/src/clients/docs-client.ts +0 -393
- package/src/clients/isml-client.ts +0 -353
- package/src/clients/log-client.ts +0 -19
- package/src/clients/ocapi/code-versions-client.ts +0 -54
- package/src/clients/ocapi/site-preferences-client.ts +0 -106
- package/src/clients/ocapi/system-objects-client.ts +0 -148
- package/src/clients/ocapi-client.ts +0 -53
- package/src/clients/script-debugger/index.ts +0 -5
- package/src/clients/script-debugger/script-debugger-client.ts +0 -754
- package/src/clients/sfra-client.ts +0 -339
- package/src/config/configuration-factory.ts +0 -201
- package/src/config/dw-json-loader.ts +0 -248
- package/src/config/workspace-roots.ts +0 -540
- package/src/constants/index.ts +0 -1
- package/src/core/handlers/abstract-client-handler.ts +0 -85
- package/src/core/handlers/agent-instructions-handler.ts +0 -48
- package/src/core/handlers/base-handler.ts +0 -172
- package/src/core/handlers/cartridge-handler.ts +0 -38
- package/src/core/handlers/client-factory.ts +0 -140
- package/src/core/handlers/code-version-handler.ts +0 -43
- package/src/core/handlers/docs-handler.ts +0 -19
- package/src/core/handlers/isml-handler.ts +0 -19
- package/src/core/handlers/job-log-handler.ts +0 -39
- package/src/core/handlers/log-handler.ts +0 -39
- package/src/core/handlers/script-debugger-handler.ts +0 -46
- package/src/core/handlers/sfra-handler.ts +0 -23
- package/src/core/handlers/simple-client-handler.ts +0 -78
- package/src/core/handlers/system-object-handler.ts +0 -43
- package/src/core/handlers/validation-helpers.ts +0 -206
- package/src/core/instruction-advisor.ts +0 -122
- package/src/core/server.ts +0 -374
- package/src/core/tool-definitions.ts +0 -30
- package/src/core/tool-schemas/agent-instruction-tools.ts +0 -72
- package/src/core/tool-schemas/cartridge-tools.ts +0 -29
- package/src/core/tool-schemas/code-version-tools.ts +0 -28
- package/src/core/tool-schemas/documentation-tools.ts +0 -104
- package/src/core/tool-schemas/index.ts +0 -27
- package/src/core/tool-schemas/isml-tools.ts +0 -89
- package/src/core/tool-schemas/log-tools.ts +0 -196
- package/src/core/tool-schemas/script-debugger-tools.ts +0 -83
- package/src/core/tool-schemas/sfra-tools.ts +0 -65
- package/src/core/tool-schemas/shared-schemas.ts +0 -158
- package/src/core/tool-schemas/system-object-tools.ts +0 -127
- package/src/index.ts +0 -20
- package/src/main.ts +0 -161
- package/src/services/file-system-service.ts +0 -117
- package/src/services/index.ts +0 -11
- package/src/services/path-service.ts +0 -124
- package/src/tool-configs/agent-instructions-tool-config.ts +0 -83
- package/src/tool-configs/cartridge-tool-config.ts +0 -41
- package/src/tool-configs/code-version-tool-config.ts +0 -37
- package/src/tool-configs/docs-tool-config.ts +0 -103
- package/src/tool-configs/isml-tool-config.ts +0 -87
- package/src/tool-configs/job-log-tool-config.ts +0 -119
- package/src/tool-configs/log-tool-config.ts +0 -110
- package/src/tool-configs/script-debugger-tool-config.ts +0 -69
- package/src/tool-configs/sfra-tool-config.ts +0 -74
- package/src/tool-configs/system-object-tool-config.ts +0 -142
- package/src/types/types.ts +0 -125
- package/src/utils/cache.ts +0 -291
- package/src/utils/category-utils.ts +0 -70
- package/src/utils/log-tool-constants.ts +0 -95
- package/src/utils/logger.ts +0 -260
- package/src/utils/markdown-utils.ts +0 -280
- package/src/utils/ocapi-url-builder.ts +0 -48
- package/src/utils/path-resolver.ts +0 -69
- package/src/utils/path-validation.ts +0 -113
- package/src/utils/query-builder.ts +0 -84
- package/src/utils/utils.ts +0 -139
- package/src/utils/validator.ts +0 -162
- package/tests/__mocks__/docs-client.ts +0 -8
- package/tests/__mocks__/src/clients/base/http-client.js +0 -43
- package/tests/__mocks__/webdav.js +0 -14
- package/tests/base-handler.test.ts +0 -527
- package/tests/base-http-client.test.ts +0 -311
- package/tests/cache.test.ts +0 -453
- package/tests/cartridge-handler.test.ts +0 -290
- package/tests/class-content-parser.test.ts +0 -629
- package/tests/class-name-resolver.test.ts +0 -365
- package/tests/client-factory.test.ts +0 -280
- package/tests/code-version-handler.test.ts +0 -291
- package/tests/code-versions-client.test.ts +0 -156
- package/tests/config.test.ts +0 -285
- package/tests/configuration-factory.test.ts +0 -233
- package/tests/docs-handler.test.ts +0 -359
- package/tests/documentation-scanner.test.ts +0 -755
- package/tests/file-system-service.test.ts +0 -111
- package/tests/isml-client.test.ts +0 -463
- package/tests/isml-handler.test.ts +0 -375
- package/tests/job-log-handler.test.ts +0 -283
- package/tests/log-client.test.ts +0 -768
- package/tests/log-handler.test.ts +0 -365
- package/tests/log-processor.test.ts +0 -243
- package/tests/log-validation.test.ts +0 -149
- package/tests/logger.test.ts +0 -303
- package/tests/mcp/AGENTS.md +0 -162
- package/tests/mcp/README.md +0 -237
- package/tests/mcp/node/activate-code-version-advanced.full-mode.programmatic.test.js +0 -669
- package/tests/mcp/node/code-versions.full-mode.programmatic.test.js +0 -605
- package/tests/mcp/node/evaluate-script.full-mode.programmatic.test.js +0 -387
- package/tests/mcp/node/generate-cartridge-structure.docs-only.programmatic.test.js +0 -644
- package/tests/mcp/node/get-available-sfra-documents.programmatic.test.js +0 -274
- package/tests/mcp/node/get-isml-categories.programmatic.test.js +0 -278
- package/tests/mcp/node/get-isml-element.programmatic.test.js +0 -278
- package/tests/mcp/node/get-isml-elements-by-category.programmatic.test.js +0 -363
- package/tests/mcp/node/get-job-execution-summary.full-mode.programmatic.test.js +0 -432
- package/tests/mcp/node/get-job-log-entries.full-mode.programmatic.test.js +0 -488
- package/tests/mcp/node/get-latest-debug.full-mode.programmatic.test.js +0 -338
- package/tests/mcp/node/get-latest-error.full-mode.programmatic.test.js +0 -255
- package/tests/mcp/node/get-latest-info.full-mode.programmatic.test.js +0 -347
- package/tests/mcp/node/get-latest-job-log-files.full-mode.programmatic.test.js +0 -460
- package/tests/mcp/node/get-latest-warn.full-mode.programmatic.test.js +0 -454
- package/tests/mcp/node/get-log-file-contents.full-mode.programmatic.test.js +0 -381
- package/tests/mcp/node/get-sfcc-class-documentation.docs-only.programmatic.test.js +0 -371
- package/tests/mcp/node/get-sfcc-class-info.docs-only.programmatic.test.js +0 -1032
- package/tests/mcp/node/get-sfra-categories.docs-only.programmatic.test.js +0 -369
- package/tests/mcp/node/get-sfra-document.programmatic.test.js +0 -473
- package/tests/mcp/node/get-sfra-documents-by-category.docs-only.programmatic.test.js +0 -510
- package/tests/mcp/node/get-system-object-definition.full-mode.programmatic.test.js +0 -389
- package/tests/mcp/node/get-system-object-definitions.docs-only.programmatic.test.js +0 -300
- package/tests/mcp/node/get-system-object-definitions.full-mode.programmatic.test.js +0 -387
- package/tests/mcp/node/list-isml-elements.programmatic.test.js +0 -311
- package/tests/mcp/node/list-log-files.full-mode.programmatic.test.js +0 -150
- package/tests/mcp/node/list-sfcc-classes.docs-only.programmatic.test.js +0 -612
- package/tests/mcp/node/search-custom-object-attribute-definitions.full-mode.programmatic.test.js +0 -875
- package/tests/mcp/node/search-isml-elements.programmatic.test.js +0 -325
- package/tests/mcp/node/search-job-logs-by-name.full-mode.programmatic.test.js +0 -330
- package/tests/mcp/node/search-job-logs.full-mode.programmatic.test.js +0 -526
- package/tests/mcp/node/search-logs.full-mode.programmatic.test.js +0 -478
- package/tests/mcp/node/search-sfcc-classes.docs-only.programmatic.test.js +0 -334
- package/tests/mcp/node/search-sfcc-methods.docs-only.programmatic.test.js +0 -487
- package/tests/mcp/node/search-sfra-documentation.docs-only.programmatic.test.js +0 -563
- package/tests/mcp/node/search-site-preferences.full-mode.programmatic.test.js +0 -556
- package/tests/mcp/node/search-system-object-attribute-definitions.full-mode.programmatic.test.js +0 -744
- package/tests/mcp/node/search-system-object-attribute-groups.full-mode.programmatic.test.js +0 -657
- package/tests/mcp/node/summarize-logs.full-mode.programmatic.test.js +0 -357
- package/tests/mcp/node/tools.docs-only.programmatic.test.js +0 -515
- package/tests/mcp/node/tools.full-mode.programmatic.test.js +0 -154
- package/tests/mcp/test-fixtures/dw.json +0 -10
- package/tests/mcp/yaml/activate-code-version.docs-only.test.mcp.yml +0 -318
- package/tests/mcp/yaml/activate-code-version.full-mode.test.mcp.yml +0 -507
- package/tests/mcp/yaml/evaluate-script.full-mode.test.mcp.yml +0 -281
- package/tests/mcp/yaml/get-available-sfra-documents.docs-only.test.mcp.yml +0 -684
- package/tests/mcp/yaml/get-available-sfra-documents.full-mode.test.mcp.yml +0 -684
- package/tests/mcp/yaml/get-code-versions.docs-only.test.mcp.yml +0 -196
- package/tests/mcp/yaml/get-code-versions.full-mode.test.mcp.yml +0 -273
- package/tests/mcp/yaml/get-isml-categories.docs-only.test.mcp.yml +0 -330
- package/tests/mcp/yaml/get-isml-element.docs-only.test.mcp.yml +0 -294
- package/tests/mcp/yaml/get-isml-elements-by-category.docs-only.test.mcp.yml +0 -334
- package/tests/mcp/yaml/get-job-execution-summary.full-mode.test.mcp.yml +0 -148
- package/tests/mcp/yaml/get-job-log-entries.full-mode.test.mcp.yml +0 -284
- package/tests/mcp/yaml/get-latest-debug.full-mode.test.mcp.yml +0 -191
- package/tests/mcp/yaml/get-latest-error.full-mode.test.mcp.yml +0 -195
- package/tests/mcp/yaml/get-latest-info.full-mode.test.mcp.yml +0 -242
- package/tests/mcp/yaml/get-latest-job-log-files.full-mode.test.mcp.yml +0 -189
- package/tests/mcp/yaml/get-latest-warn.full-mode.test.mcp.yml +0 -182
- package/tests/mcp/yaml/get-log-file-contents.full-mode.test.mcp.yml +0 -256
- package/tests/mcp/yaml/get-sfcc-class-documentation.docs-only.test.mcp.yml +0 -2416
- package/tests/mcp/yaml/get-sfcc-class-documentation.full-mode.test.mcp.yml +0 -2416
- package/tests/mcp/yaml/get-sfcc-class-info.docs-only.test.mcp.yml +0 -1225
- package/tests/mcp/yaml/get-sfcc-class-info.full-mode.test.mcp.yml +0 -1225
- package/tests/mcp/yaml/get-sfra-categories.docs-only.test.mcp.yml +0 -452
- package/tests/mcp/yaml/get-sfra-categories.full-mode.test.mcp.yml +0 -452
- package/tests/mcp/yaml/get-sfra-document.docs-only.test.mcp.yml +0 -525
- package/tests/mcp/yaml/get-sfra-document.full-mode.test.mcp.yml +0 -525
- package/tests/mcp/yaml/get-sfra-documents-by-category.docs-only.test.mcp.yml +0 -507
- package/tests/mcp/yaml/get-sfra-documents-by-category.full-mode.test.mcp.yml +0 -507
- package/tests/mcp/yaml/get-system-object-definition.docs-only.test.mcp.yml +0 -208
- package/tests/mcp/yaml/get-system-object-definition.full-mode.test.mcp.yml +0 -191
- package/tests/mcp/yaml/get-system-object-definitions.docs-only.test.mcp.yml +0 -257
- package/tests/mcp/yaml/get-system-object-definitions.full-mode.test.mcp.yml +0 -517
- package/tests/mcp/yaml/get_latest_error.test.mcp.yml +0 -472
- package/tests/mcp/yaml/list-isml-elements.docs-only.test.mcp.yml +0 -212
- package/tests/mcp/yaml/list-log-files.full-mode.test.mcp.yml +0 -89
- package/tests/mcp/yaml/list-sfcc-classes.docs-only.test.mcp.yml +0 -511
- package/tests/mcp/yaml/list-sfcc-classes.full-mode.test.mcp.yml +0 -511
- package/tests/mcp/yaml/search-custom-object-attribute-definitions.docs-only.test.mcp.yml +0 -82
- package/tests/mcp/yaml/search-custom-object-attribute-definitions.test.mcp.yml +0 -387
- package/tests/mcp/yaml/search-isml-elements.docs-only.test.mcp.yml +0 -312
- package/tests/mcp/yaml/search-job-logs-by-name.full-mode.test.mcp.yml +0 -169
- package/tests/mcp/yaml/search-job-logs.full-mode.test.mcp.yml +0 -174
- package/tests/mcp/yaml/search-logs.full-mode.test.mcp.yml +0 -207
- package/tests/mcp/yaml/search-sfcc-classes.docs-only.test.mcp.yml +0 -1157
- package/tests/mcp/yaml/search-sfcc-classes.full-mode.test.mcp.yml +0 -1157
- package/tests/mcp/yaml/search-sfcc-methods.docs-only.test.mcp.yml +0 -723
- package/tests/mcp/yaml/search-sfcc-methods.full-mode.test.mcp.yml +0 -723
- package/tests/mcp/yaml/search-sfra-documentation.docs-only.test.mcp.yml +0 -427
- package/tests/mcp/yaml/search-sfra-documentation.full-mode.test.mcp.yml +0 -427
- package/tests/mcp/yaml/search-site-preferences.docs-only.test.mcp.yml +0 -295
- package/tests/mcp/yaml/search-site-preferences.full-mode.test.mcp.yml +0 -574
- package/tests/mcp/yaml/search-system-object-attribute-definitions.docs-only.test.mcp.yml +0 -168
- package/tests/mcp/yaml/search-system-object-attribute-definitions.full-mode.test.mcp.yml +0 -500
- package/tests/mcp/yaml/search-system-object-attribute-groups.docs-only.test.mcp.yml +0 -278
- package/tests/mcp/yaml/search-system-object-attribute-groups.full-mode.test.mcp.yml +0 -612
- package/tests/mcp/yaml/summarize-logs.full-mode.test.mcp.yml +0 -173
- package/tests/mcp/yaml/tools.docs-only.test.mcp.yml +0 -535
- package/tests/mcp/yaml/tools.full-mode.test.mcp.yml +0 -378
- package/tests/oauth-token.test.ts +0 -725
- package/tests/ocapi-auth-client.test.ts +0 -276
- package/tests/ocapi-client.test.ts +0 -242
- package/tests/path-service.test.ts +0 -96
- package/tests/query-builder.test.ts +0 -281
- package/tests/referenced-types-extractor.test.ts +0 -814
- package/tests/script-debugger-client.test.ts +0 -430
- package/tests/servers/sfcc-mock-server/README.md +0 -208
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/code-versions.json +0 -247
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/custom-object-attributes-customapi.json +0 -128
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/custom-object-attributes-globalsettings.json +0 -92
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/custom-object-attributes-versionhistory.json +0 -256
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/site-preferences-ccv.json +0 -275
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/site-preferences-fastforward.json +0 -123
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/site-preferences-sfra.json +0 -224
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/site-preferences-storefront.json +0 -447
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/site-preferences-system.json +0 -171
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attribute-groups-campaign.json +0 -13
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attribute-groups-category.json +0 -50
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attribute-groups-order.json +0 -32
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attribute-groups-product.json +0 -224
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attribute-groups-sitepreferences.json +0 -62
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attributes-customeraddress.json +0 -109
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attributes-product-expanded.json +0 -183
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attributes-product.json +0 -139
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-category.json +0 -26
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-customer.json +0 -26
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-customeraddress.json +0 -26
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-order.json +0 -26
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-product.json +0 -26
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definitions-old.json +0 -354
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definitions.json +0 -172
- package/tests/servers/sfcc-mock-server/package-lock.json +0 -879
- package/tests/servers/sfcc-mock-server/package.json +0 -39
- package/tests/servers/sfcc-mock-server/scripts/setup-logs.js +0 -224
- package/tests/servers/sfcc-mock-server/server.js +0 -280
- package/tests/servers/sfcc-mock-server/src/app.js +0 -182
- package/tests/servers/sfcc-mock-server/src/config/server-config.js +0 -124
- package/tests/servers/sfcc-mock-server/src/middleware/auth.js +0 -101
- package/tests/servers/sfcc-mock-server/src/middleware/cors.js +0 -39
- package/tests/servers/sfcc-mock-server/src/middleware/logging.js +0 -124
- package/tests/servers/sfcc-mock-server/src/routes/cartridge-webdav.js +0 -258
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/code-versions-handler.js +0 -184
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/debugger-handler.js +0 -396
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/oauth-handler.js +0 -36
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/ocapi-error-utils.js +0 -221
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/ocapi-utils.js +0 -440
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/site-preferences-handler.js +0 -332
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/system-objects-handler.js +0 -572
- package/tests/servers/sfcc-mock-server/src/routes/ocapi.js +0 -58
- package/tests/servers/sfcc-mock-server/src/routes/storefront.js +0 -86
- package/tests/servers/sfcc-mock-server/src/routes/webdav.js +0 -240
- package/tests/servers/sfcc-mock-server/src/utils/mock-data-loader.js +0 -84
- package/tests/servers/sfcc-mock-server/src/utils/webdav-xml.js +0 -121
- package/tests/servers/sfcc-mock-server-manager.ts +0 -280
- package/tests/sfcc-mock-server.test.ts +0 -423
- package/tests/site-preferences-client.test.ts +0 -358
- package/tests/system-objects-client.test.ts +0 -310
- package/tests/utils.test.ts +0 -477
- package/tests/validation-helpers.test.ts +0 -325
- package/tests/validator.test.ts +0 -416
- package/tests/workspace-roots.test.ts +0 -227
- package/tsconfig.json +0 -20
- package/tsconfig.test.json +0 -20
package/docs/isml/iscache.md
DELETED
|
@@ -1,802 +0,0 @@
|
|
|
1
|
-
# ISML iscache Element
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
The `<iscache>` element controls page caching to dramatically improve storefront performance. By caching pages, the server bypasses dynamic page generation and delivers pre-rendered content almost instantaneously. This element allows you to specify cache expiration strategies, personalization requirements, and conditional caching based on business rules.
|
|
6
|
-
|
|
7
|
-
**Performance Impact:** Cached pages are treated like static content, eliminating controller execution and template processing for subsequent requests.
|
|
8
|
-
|
|
9
|
-
## Syntax
|
|
10
|
-
|
|
11
|
-
```isml
|
|
12
|
-
<iscache
|
|
13
|
-
status = "on" // optional (default: "on")
|
|
14
|
-
type = "relative" | "daily" // optional (required if no varyby)
|
|
15
|
-
hour = integer_duration_hr // optional
|
|
16
|
-
minute = integer_duration_min // optional
|
|
17
|
-
varyby = "price_promotion" // optional (required if no type)
|
|
18
|
-
if = boolean_expression // optional
|
|
19
|
-
/>
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
## Attributes
|
|
23
|
-
|
|
24
|
-
### status
|
|
25
|
-
|
|
26
|
-
**Type:** String
|
|
27
|
-
**Allowed Values:** `"on"` (default), `"off"` (deprecated)
|
|
28
|
-
**Optional:** Yes
|
|
29
|
-
|
|
30
|
-
Controls whether page caching is enabled or disabled.
|
|
31
|
-
|
|
32
|
-
⚠️ **DEPRECATED:** `status="off"` is deprecated. To disable caching, simply omit the `<iscache>` element or use the `if` attribute for conditional disabling.
|
|
33
|
-
|
|
34
|
-
**Important:**
|
|
35
|
-
- Just including `<iscache/>` implicitly enables caching (no need to set `status="on"`)
|
|
36
|
-
- If `status="off"` is set anywhere (template or includes), caching cannot be re-enabled
|
|
37
|
-
- Using `status="off"` writes deprecation warnings to logs
|
|
38
|
-
- Disabling caching hurts performance—use the `if` attribute instead for conditional control
|
|
39
|
-
|
|
40
|
-
```isml
|
|
41
|
-
<!-- Modern: Caching enabled (recommended) -->
|
|
42
|
-
<iscache type="relative" hour="1"/>
|
|
43
|
-
|
|
44
|
-
<!-- Deprecated: Don't use status="off" -->
|
|
45
|
-
<iscache status="off"/> <!-- DEPRECATED -->
|
|
46
|
-
|
|
47
|
-
<!-- Instead: Use if attribute for conditional caching -->
|
|
48
|
-
<iscache type="relative" hour="1" if="${!pdict.isPersonalized}"/>
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
### type
|
|
52
|
-
|
|
53
|
-
**Type:** String
|
|
54
|
-
**Allowed Values:** `"relative"`, `"daily"`
|
|
55
|
-
**Required:** Yes (unless `varyby` is specified)
|
|
56
|
-
|
|
57
|
-
Specifies the caching strategy—either relative to current time or at a specific daily time.
|
|
58
|
-
|
|
59
|
-
**`"relative"`**: Cache expires after a specified duration from the time the page was cached.
|
|
60
|
-
- Use `hour` and `minute` to specify duration
|
|
61
|
-
- Example: Cache for 2 hours and 30 minutes
|
|
62
|
-
|
|
63
|
-
**`"daily"`**: Cache expires at a specific time each day (GMT timezone, 24-hour format).
|
|
64
|
-
- Use `hour` and `minute` to specify time (0:00 - 23:59)
|
|
65
|
-
- Example: Expire at 6:30 AM GMT daily
|
|
66
|
-
|
|
67
|
-
```isml
|
|
68
|
-
<!-- Relative: Cache for 2 hours -->
|
|
69
|
-
<iscache type="relative" hour="2"/>
|
|
70
|
-
|
|
71
|
-
<!-- Daily: Expire at 6:30 AM GMT every day -->
|
|
72
|
-
<iscache type="daily" hour="6" minute="30"/>
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
### hour
|
|
76
|
-
|
|
77
|
-
**Type:** Integer or Integer Expression
|
|
78
|
-
**Allowed Values:**
|
|
79
|
-
- `type="daily"`: 0–23 (24-hour format)
|
|
80
|
-
- `type="relative"`: 0–unlimited
|
|
81
|
-
**Default:** 0 (if `type` specified), next hour (if only `varyby` specified)
|
|
82
|
-
|
|
83
|
-
For `type="daily"`: The hour of day (GMT) when cache expires.
|
|
84
|
-
For `type="relative"`: Number of hours from current time when cache expires.
|
|
85
|
-
|
|
86
|
-
```isml
|
|
87
|
-
<!-- Daily: Expire at 14:00 (2:00 PM) GMT -->
|
|
88
|
-
<iscache type="daily" hour="14"/>
|
|
89
|
-
|
|
90
|
-
<!-- Relative: Cache for 3 hours -->
|
|
91
|
-
<iscache type="relative" hour="3"/>
|
|
92
|
-
|
|
93
|
-
<!-- Expression: Dynamic hour value -->
|
|
94
|
-
<iscache type="relative" hour="${pdict.cacheHours}"/>
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
### minute
|
|
98
|
-
|
|
99
|
-
**Type:** Integer or Integer Expression
|
|
100
|
-
**Allowed Values:**
|
|
101
|
-
- `type="daily"`: 0–59
|
|
102
|
-
- `type="relative"`: 0–unlimited
|
|
103
|
-
**Default:** 0 (if `type` specified), random 0–15 minutes (if only `varyby` specified)
|
|
104
|
-
|
|
105
|
-
For `type="daily"`: The minute of the hour when cache expires.
|
|
106
|
-
For `type="relative"`: Number of minutes from current time when cache expires.
|
|
107
|
-
|
|
108
|
-
```isml
|
|
109
|
-
<!-- Daily: Expire at 6:30 AM GMT -->
|
|
110
|
-
<iscache type="daily" hour="6" minute="30"/>
|
|
111
|
-
|
|
112
|
-
<!-- Relative: Cache for 90 minutes -->
|
|
113
|
-
<iscache type="relative" minute="90"/>
|
|
114
|
-
|
|
115
|
-
<!-- Relative: Cache for 2 hours 30 minutes -->
|
|
116
|
-
<iscache type="relative" hour="2" minute="30"/>
|
|
117
|
-
|
|
118
|
-
<!-- Expression: Dynamic minute value -->
|
|
119
|
-
<iscache type="relative" minute="${pdict.cacheMinutes}"/>
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
### varyby
|
|
123
|
-
|
|
124
|
-
**Type:** String
|
|
125
|
-
**Allowed Values:** `"price_promotion"`
|
|
126
|
-
**Required:** Yes (unless `type` is specified)
|
|
127
|
-
|
|
128
|
-
Marks a page as personalized, instructing Commerce Cloud to cache different variations based on:
|
|
129
|
-
- Complete set of active promotions
|
|
130
|
-
- Complete set of active product sorting rules
|
|
131
|
-
- Complete set of applicable price books
|
|
132
|
-
- Complete set of active A/B test groups
|
|
133
|
-
|
|
134
|
-
**How it works:**
|
|
135
|
-
- Web adapter stores different page variations in cache
|
|
136
|
-
- Correct version delivered to shopper based on their promotion/price/sorting/AB test context
|
|
137
|
-
- Multiple shoppers with same context receive same cached page
|
|
138
|
-
|
|
139
|
-
⚠️ **Performance Warning:** Only use `varyby` when pages actually vary by these parameters. Unnecessary use causes cache fragmentation (multiple identical copies stored), degrading performance.
|
|
140
|
-
|
|
141
|
-
```isml
|
|
142
|
-
<!-- Personalized search results (vary by price/promotion) -->
|
|
143
|
-
<iscache type="relative" minute="30" varyby="price_promotion"/>
|
|
144
|
-
|
|
145
|
-
<!-- Category page with promotional pricing -->
|
|
146
|
-
<iscache type="relative" hour="2" varyby="price_promotion"/>
|
|
147
|
-
|
|
148
|
-
<!-- Only varyby (random expiration next hour) -->
|
|
149
|
-
<iscache varyby="price_promotion"/>
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
**Page Personalization Rule:** If any `<iscache>` element on a page has `varyby` set, the **entire page** is treated as personalized (even if other `<iscache>` elements don't have `varyby`).
|
|
153
|
-
|
|
154
|
-
### if
|
|
155
|
-
|
|
156
|
-
**Type:** Boolean Expression
|
|
157
|
-
**Optional:** Yes
|
|
158
|
-
|
|
159
|
-
Conditionally disables caching based on an expression. When the expression evaluates to `false`, page caching is disabled.
|
|
160
|
-
|
|
161
|
-
⚠️ **Performance Warning:** Disabling caching significantly impacts performance. Use sparingly and only on pages with minimal persistent object interaction.
|
|
162
|
-
|
|
163
|
-
**Use Cases:**
|
|
164
|
-
- Einstein Predictive Sort (personalized sorting)
|
|
165
|
-
- Individual shopper personalization
|
|
166
|
-
- Dynamic content that can't use `varyby`
|
|
167
|
-
|
|
168
|
-
**Recommendation:** If possible, use `varyby="price_promotion"` instead of the `if` attribute for better performance.
|
|
169
|
-
|
|
170
|
-
```isml
|
|
171
|
-
<!-- Disable caching for personalized sort -->
|
|
172
|
-
<iscache hour="2" varyby="price_promotion" if="${!searchModel.isPersonalizedSort()}"/>
|
|
173
|
-
|
|
174
|
-
<!-- Cache only for non-logged-in users -->
|
|
175
|
-
<iscache type="relative" hour="1" if="${!customer.authenticated}"/>
|
|
176
|
-
|
|
177
|
-
<!-- Cache unless basket has items -->
|
|
178
|
-
<iscache type="relative" minute="30" if="${empty(pdict.Basket.productLineItems)}"/>
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
**Expression Requirements:**
|
|
182
|
-
- Must evaluate to boolean (`true` or `false`)
|
|
183
|
-
- Passing a non-boolean value throws an error
|
|
184
|
-
- Passing a value instead of expression throws an error
|
|
185
|
-
|
|
186
|
-
## Purpose and Behavior
|
|
187
|
-
|
|
188
|
-
### Performance Benefits
|
|
189
|
-
|
|
190
|
-
**Without Cache:**
|
|
191
|
-
1. Request arrives
|
|
192
|
-
2. Controller executes
|
|
193
|
-
3. ISML templates processed
|
|
194
|
-
4. Dynamic page generated
|
|
195
|
-
5. Response sent
|
|
196
|
-
|
|
197
|
-
**With Cache:**
|
|
198
|
-
1. Request arrives
|
|
199
|
-
2. Cached page delivered immediately (controller and templates bypassed)
|
|
200
|
-
|
|
201
|
-
**Result:** Near-instantaneous page delivery, significantly reduced server load.
|
|
202
|
-
|
|
203
|
-
### First Request Flow
|
|
204
|
-
|
|
205
|
-
1. **Initial Request:** Page not in cache
|
|
206
|
-
2. **Dynamic Generation:** Server executes controller and processes templates
|
|
207
|
-
3. **Cache Storage:** Generated page stored in cache with expiration settings
|
|
208
|
-
4. **Subsequent Requests:** Cached page delivered until expiration
|
|
209
|
-
|
|
210
|
-
### Cache Expiration
|
|
211
|
-
|
|
212
|
-
When cached page expires:
|
|
213
|
-
- Next request triggers dynamic generation
|
|
214
|
-
- Newly generated page replaces old cache entry
|
|
215
|
-
- Cache cycle continues
|
|
216
|
-
|
|
217
|
-
## Common Use Cases
|
|
218
|
-
|
|
219
|
-
### Homepage (Daily Expiration)
|
|
220
|
-
|
|
221
|
-
```isml
|
|
222
|
-
<!-- homepage.isml -->
|
|
223
|
-
<iscache type="daily" hour="0" minute="0"/>
|
|
224
|
-
|
|
225
|
-
<!DOCTYPE html>
|
|
226
|
-
<html>
|
|
227
|
-
<head>
|
|
228
|
-
<title>Welcome to Our Store</title>
|
|
229
|
-
</head>
|
|
230
|
-
<body>
|
|
231
|
-
<h1>Featured Products</h1>
|
|
232
|
-
<!-- Static or rarely changing content -->
|
|
233
|
-
</body>
|
|
234
|
-
</html>
|
|
235
|
-
```
|
|
236
|
-
|
|
237
|
-
**Rationale:** Homepage changes once daily (new promotions, featured products), expires at midnight.
|
|
238
|
-
|
|
239
|
-
### Product Listing Page (Relative Expiration)
|
|
240
|
-
|
|
241
|
-
```isml
|
|
242
|
-
<!-- search/productListing.isml -->
|
|
243
|
-
<iscache type="relative" hour="1"/>
|
|
244
|
-
|
|
245
|
-
<div class="product-listing">
|
|
246
|
-
<h2>Search Results</h2>
|
|
247
|
-
<isloop items="${pdict.products}" var="product">
|
|
248
|
-
<div class="product-tile">
|
|
249
|
-
<h3>${product.name}</h3>
|
|
250
|
-
<span>${product.price}</span>
|
|
251
|
-
</div>
|
|
252
|
-
</isloop>
|
|
253
|
-
</div>
|
|
254
|
-
```
|
|
255
|
-
|
|
256
|
-
**Rationale:** Product availability and pricing can change; cache for 1 hour to balance freshness and performance.
|
|
257
|
-
|
|
258
|
-
### Search Results with Personalization
|
|
259
|
-
|
|
260
|
-
```isml
|
|
261
|
-
<!-- search/searchResults.isml -->
|
|
262
|
-
<iscache type="relative" minute="30" varyby="price_promotion"/>
|
|
263
|
-
|
|
264
|
-
<div class="search-results">
|
|
265
|
-
<isloop items="${pdict.searchResults}" var="result">
|
|
266
|
-
<div class="result-item">
|
|
267
|
-
<h4>${result.productName}</h4>
|
|
268
|
-
<span class="price">${result.price}</span>
|
|
269
|
-
<span class="promo">${result.promotionText}</span>
|
|
270
|
-
</div>
|
|
271
|
-
</isloop>
|
|
272
|
-
</div>
|
|
273
|
-
```
|
|
274
|
-
|
|
275
|
-
**Rationale:** Prices and promotions vary by customer segment; use `varyby` to cache variations.
|
|
276
|
-
|
|
277
|
-
### Category Landing Page
|
|
278
|
-
|
|
279
|
-
```isml
|
|
280
|
-
<!-- category/categoryLanding.isml -->
|
|
281
|
-
<iscache type="relative" hour="2" varyby="price_promotion"/>
|
|
282
|
-
|
|
283
|
-
<h1>${pdict.category.displayName}</h1>
|
|
284
|
-
<p>${pdict.category.description}</p>
|
|
285
|
-
|
|
286
|
-
<!-- Category navigation and products -->
|
|
287
|
-
```
|
|
288
|
-
|
|
289
|
-
**Rationale:** Categories show promotional content and varied pricing; cache for 2 hours with personalization.
|
|
290
|
-
|
|
291
|
-
### Product Detail Page (Non-Personalized)
|
|
292
|
-
|
|
293
|
-
```isml
|
|
294
|
-
<!-- product/productDetails.isml -->
|
|
295
|
-
<iscache type="relative" hour="1"/>
|
|
296
|
-
|
|
297
|
-
<div class="product-detail">
|
|
298
|
-
<h1>${pdict.Product.name}</h1>
|
|
299
|
-
<p>${pdict.Product.longDescription}</p>
|
|
300
|
-
<span class="price">${pdict.Product.price}</span>
|
|
301
|
-
|
|
302
|
-
<!-- Product details -->
|
|
303
|
-
</div>
|
|
304
|
-
```
|
|
305
|
-
|
|
306
|
-
**Rationale:** Product details are mostly static; cache for 1 hour to ensure price/availability freshness.
|
|
307
|
-
|
|
308
|
-
### Content Page (Long Cache)
|
|
309
|
-
|
|
310
|
-
```isml
|
|
311
|
-
<!-- content/aboutUs.isml -->
|
|
312
|
-
<iscache type="daily" hour="3"/>
|
|
313
|
-
|
|
314
|
-
<div class="content-page">
|
|
315
|
-
<h1>About Us</h1>
|
|
316
|
-
<p>Our company story...</p>
|
|
317
|
-
</div>
|
|
318
|
-
```
|
|
319
|
-
|
|
320
|
-
**Rationale:** Static content changes rarely; cache until 3:00 AM GMT daily.
|
|
321
|
-
|
|
322
|
-
### Einstein Predictive Sort
|
|
323
|
-
|
|
324
|
-
```isml
|
|
325
|
-
<!-- search/searchResults.isml -->
|
|
326
|
-
<iscache hour="2" varyby="price_promotion" if="${!searchModel.isPersonalizedSort()}"/>
|
|
327
|
-
|
|
328
|
-
<div class="search-results">
|
|
329
|
-
<!-- Search results with optional personalized sorting -->
|
|
330
|
-
</div>
|
|
331
|
-
```
|
|
332
|
-
|
|
333
|
-
**Rationale:** Disable caching when Predictive Sort is active (personalized); otherwise cache for 2 hours.
|
|
334
|
-
|
|
335
|
-
### Conditional Caching (Logged-In Users)
|
|
336
|
-
|
|
337
|
-
```isml
|
|
338
|
-
<!-- homepage.isml -->
|
|
339
|
-
<iscache type="relative" hour="1" if="${!customer.authenticated}"/>
|
|
340
|
-
|
|
341
|
-
<div class="homepage">
|
|
342
|
-
<!-- Content that's safe to cache for anonymous users only -->
|
|
343
|
-
</div>
|
|
344
|
-
```
|
|
345
|
-
|
|
346
|
-
**Rationale:** Cache for anonymous users, disable for logged-in users who see personalized content.
|
|
347
|
-
|
|
348
|
-
## Best Practices
|
|
349
|
-
|
|
350
|
-
1. **Place at Template Beginning:**
|
|
351
|
-
```isml
|
|
352
|
-
<!-- Good: Near the top -->
|
|
353
|
-
<iscache type="relative" hour="1"/>
|
|
354
|
-
|
|
355
|
-
<!DOCTYPE html>
|
|
356
|
-
<html>
|
|
357
|
-
<!-- ... -->
|
|
358
|
-
```
|
|
359
|
-
|
|
360
|
-
2. **Never Cache Session-Specific Pages:**
|
|
361
|
-
```isml
|
|
362
|
-
<!-- Bad: Caching basket page (session-specific) -->
|
|
363
|
-
<iscache type="relative" hour="1"/> <!-- DON'T DO THIS -->
|
|
364
|
-
<div class="basket">
|
|
365
|
-
${pdict.Basket.totalGrossPrice}
|
|
366
|
-
</div>
|
|
367
|
-
|
|
368
|
-
<!-- Good: No caching for basket -->
|
|
369
|
-
<div class="basket">
|
|
370
|
-
${pdict.Basket.totalGrossPrice}
|
|
371
|
-
</div>
|
|
372
|
-
```
|
|
373
|
-
|
|
374
|
-
3. **Use varyby Only When Needed:**
|
|
375
|
-
```isml
|
|
376
|
-
<!-- Good: Page actually varies by price/promotion -->
|
|
377
|
-
<iscache type="relative" hour="1" varyby="price_promotion"/>
|
|
378
|
-
|
|
379
|
-
<!-- Bad: Unnecessary varyby (causes cache fragmentation) -->
|
|
380
|
-
<iscache type="relative" hour="1" varyby="price_promotion"/>
|
|
381
|
-
<!-- On a page with no prices or promotions -->
|
|
382
|
-
```
|
|
383
|
-
|
|
384
|
-
4. **Avoid status="off" (Use if Instead):**
|
|
385
|
-
```isml
|
|
386
|
-
<!-- Bad: Deprecated -->
|
|
387
|
-
<iscache status="off"/>
|
|
388
|
-
|
|
389
|
-
<!-- Good: Conditional caching -->
|
|
390
|
-
<iscache type="relative" hour="1" if="${!pdict.requiresFreshData}"/>
|
|
391
|
-
```
|
|
392
|
-
|
|
393
|
-
5. **Choose Appropriate Cache Duration:**
|
|
394
|
-
```isml
|
|
395
|
-
<!-- Static content: Long cache (24 hours or daily) -->
|
|
396
|
-
<iscache type="daily"/>
|
|
397
|
-
|
|
398
|
-
<!-- Dynamic content: Short cache (15-60 minutes) -->
|
|
399
|
-
<iscache type="relative" minute="30"/>
|
|
400
|
-
|
|
401
|
-
<!-- Frequently changing: Very short cache (5-15 minutes) -->
|
|
402
|
-
<iscache type="relative" minute="10"/>
|
|
403
|
-
```
|
|
404
|
-
|
|
405
|
-
6. **Understand Precedence in Multiple Elements:**
|
|
406
|
-
```isml
|
|
407
|
-
<!-- Most restrictive wins -->
|
|
408
|
-
<iscache type="relative" hour="2"/> <!-- 2 hours -->
|
|
409
|
-
<isinclude template="components/header"/> <!-- Contains: hour="1" -->
|
|
410
|
-
|
|
411
|
-
<!-- Result: 1 hour cache (shortest time wins) -->
|
|
412
|
-
```
|
|
413
|
-
|
|
414
|
-
7. **Use Expressions for Dynamic Configuration:**
|
|
415
|
-
```isml
|
|
416
|
-
<!-- Good: Configurable cache time -->
|
|
417
|
-
<iscache type="relative" hour="${pdict.cacheConfig.hours}"/>
|
|
418
|
-
|
|
419
|
-
<!-- Or from site preferences -->
|
|
420
|
-
<isscript>
|
|
421
|
-
var Site = require('dw/system/Site');
|
|
422
|
-
var cacheHours = Site.current.getCustomPreferenceValue('categoryPageCacheHours') || 1;
|
|
423
|
-
</isscript>
|
|
424
|
-
<iscache type="relative" hour="${cacheHours}"/>
|
|
425
|
-
```
|
|
426
|
-
|
|
427
|
-
## Pages That Should NOT Be Cached
|
|
428
|
-
|
|
429
|
-
❌ **Never cache these page types:**
|
|
430
|
-
|
|
431
|
-
1. **Cart/Basket Pages**
|
|
432
|
-
```isml
|
|
433
|
-
<!-- NO caching -->
|
|
434
|
-
<div class="cart">
|
|
435
|
-
${pdict.Basket.totalGrossPrice}
|
|
436
|
-
</div>
|
|
437
|
-
```
|
|
438
|
-
|
|
439
|
-
2. **Checkout Pages**
|
|
440
|
-
```isml
|
|
441
|
-
<!-- NO caching -->
|
|
442
|
-
<div class="checkout">
|
|
443
|
-
<!-- Billing, shipping, payment info -->
|
|
444
|
-
</div>
|
|
445
|
-
```
|
|
446
|
-
|
|
447
|
-
3. **Account Pages**
|
|
448
|
-
```isml
|
|
449
|
-
<!-- NO caching -->
|
|
450
|
-
<div class="account">
|
|
451
|
-
${customer.profile.firstName}
|
|
452
|
-
<!-- Customer-specific information -->
|
|
453
|
-
</div>
|
|
454
|
-
```
|
|
455
|
-
|
|
456
|
-
4. **Order Confirmation**
|
|
457
|
-
```isml
|
|
458
|
-
<!-- NO caching -->
|
|
459
|
-
<div class="order-confirmation">
|
|
460
|
-
Order ${pdict.Order.orderNo}
|
|
461
|
-
</div>
|
|
462
|
-
```
|
|
463
|
-
|
|
464
|
-
5. **Form Submission Results**
|
|
465
|
-
```isml
|
|
466
|
-
<!-- NO caching -->
|
|
467
|
-
<div class="form-result">
|
|
468
|
-
<!-- Dynamic response to user action -->
|
|
469
|
-
</div>
|
|
470
|
-
```
|
|
471
|
-
|
|
472
|
-
## Cache Precedence Rules
|
|
473
|
-
|
|
474
|
-
When multiple `<iscache>` elements exist (in template and includes):
|
|
475
|
-
|
|
476
|
-
### Rule 1: Caching Disabled Wins
|
|
477
|
-
|
|
478
|
-
```isml
|
|
479
|
-
<!-- main.isml -->
|
|
480
|
-
<iscache type="relative" hour="2"/>
|
|
481
|
-
|
|
482
|
-
<!-- include.isml (included in main.isml) -->
|
|
483
|
-
<iscache status="off"/> <!-- or if="${false}" -->
|
|
484
|
-
|
|
485
|
-
<!-- Result: Caching DISABLED (off/false takes precedence) -->
|
|
486
|
-
```
|
|
487
|
-
|
|
488
|
-
### Rule 2: Shortest Cache Time Wins
|
|
489
|
-
|
|
490
|
-
```isml
|
|
491
|
-
<!-- main.isml -->
|
|
492
|
-
<iscache type="relative" hour="3"/>
|
|
493
|
-
|
|
494
|
-
<!-- include1.isml -->
|
|
495
|
-
<iscache type="relative" hour="1"/>
|
|
496
|
-
|
|
497
|
-
<!-- include2.isml -->
|
|
498
|
-
<iscache type="relative" minute="30"/>
|
|
499
|
-
|
|
500
|
-
<!-- Result: 30 minutes (shortest time) -->
|
|
501
|
-
```
|
|
502
|
-
|
|
503
|
-
### Rule 3: Personalized Wins
|
|
504
|
-
|
|
505
|
-
```isml
|
|
506
|
-
<!-- main.isml -->
|
|
507
|
-
<iscache type="relative" hour="2"/>
|
|
508
|
-
|
|
509
|
-
<!-- include.isml -->
|
|
510
|
-
<iscache type="relative" hour="2" varyby="price_promotion"/>
|
|
511
|
-
|
|
512
|
-
<!-- Result: Entire page treated as PERSONALIZED -->
|
|
513
|
-
```
|
|
514
|
-
|
|
515
|
-
## Template Decorator Considerations
|
|
516
|
-
|
|
517
|
-
⚠️ **Critical:** When using decorators (`<isdecorate>`), be careful with session information.
|
|
518
|
-
|
|
519
|
-
```isml
|
|
520
|
-
<!-- decorator.isml (DANGEROUS) -->
|
|
521
|
-
<iscache type="relative" hour="1"/>
|
|
522
|
-
|
|
523
|
-
<html>
|
|
524
|
-
<head>
|
|
525
|
-
<title>${pdict.pageTitle}</title>
|
|
526
|
-
</head>
|
|
527
|
-
<body>
|
|
528
|
-
<!-- Session info in decorator -->
|
|
529
|
-
<div class="user-greeting">
|
|
530
|
-
Welcome, ${customer.profile.firstName}! <!-- DANGEROUS -->
|
|
531
|
-
</div>
|
|
532
|
-
|
|
533
|
-
<isreplace/> <!-- Decorated content here -->
|
|
534
|
-
</body>
|
|
535
|
-
</html>
|
|
536
|
-
|
|
537
|
-
<!-- page.isml (uses decorator) -->
|
|
538
|
-
<isdecorate template="decorator"/>
|
|
539
|
-
<iscache type="relative" hour="2"/> <!-- Can cache decorator's session data! -->
|
|
540
|
-
|
|
541
|
-
<div class="content">
|
|
542
|
-
<!-- Page content -->
|
|
543
|
-
</div>
|
|
544
|
-
```
|
|
545
|
-
|
|
546
|
-
**Problem:** Decorator's session information gets cached and shown to all users.
|
|
547
|
-
|
|
548
|
-
**Solution:** Use remote includes for session-specific content:
|
|
549
|
-
|
|
550
|
-
```isml
|
|
551
|
-
<!-- decorator.isml (SAFE) -->
|
|
552
|
-
<iscache type="relative" hour="1"/>
|
|
553
|
-
|
|
554
|
-
<html>
|
|
555
|
-
<head>
|
|
556
|
-
<title>${pdict.pageTitle}</title>
|
|
557
|
-
</head>
|
|
558
|
-
<body>
|
|
559
|
-
<!-- Remote include for session data (not cached) -->
|
|
560
|
-
<isinclude url="${URLUtils.url('Page-UserGreeting')}"/>
|
|
561
|
-
|
|
562
|
-
<isreplace/>
|
|
563
|
-
</body>
|
|
564
|
-
</html>
|
|
565
|
-
```
|
|
566
|
-
|
|
567
|
-
## Relative Caching Examples
|
|
568
|
-
|
|
569
|
-
```isml
|
|
570
|
-
<!-- All equivalent: 150 minutes (2 hours 30 minutes) -->
|
|
571
|
-
<iscache type="relative" hour="2" minute="30"/>
|
|
572
|
-
<iscache type="relative" hour="1" minute="90"/>
|
|
573
|
-
<iscache type="relative" minute="150"/>
|
|
574
|
-
|
|
575
|
-
<!-- 1 hour -->
|
|
576
|
-
<iscache type="relative" hour="1"/>
|
|
577
|
-
|
|
578
|
-
<!-- 30 minutes -->
|
|
579
|
-
<iscache type="relative" minute="30"/>
|
|
580
|
-
|
|
581
|
-
<!-- 3 hours 45 minutes -->
|
|
582
|
-
<iscache type="relative" hour="3" minute="45"/>
|
|
583
|
-
```
|
|
584
|
-
|
|
585
|
-
## Daily Caching Examples
|
|
586
|
-
|
|
587
|
-
```isml
|
|
588
|
-
<!-- Expire at midnight (0:00 AM GMT) -->
|
|
589
|
-
<iscache type="daily"/>
|
|
590
|
-
<iscache type="daily" hour="0"/>
|
|
591
|
-
<iscache type="daily" hour="0" minute="0"/>
|
|
592
|
-
|
|
593
|
-
<!-- Expire at 6:30 AM GMT -->
|
|
594
|
-
<iscache type="daily" hour="6" minute="30"/>
|
|
595
|
-
|
|
596
|
-
<!-- Expire at 11:30 PM GMT (23:30) -->
|
|
597
|
-
<iscache type="daily" hour="23" minute="30"/>
|
|
598
|
-
|
|
599
|
-
<!-- Expire at noon GMT (12:00 PM) -->
|
|
600
|
-
<iscache type="daily" hour="12"/>
|
|
601
|
-
|
|
602
|
-
<!-- Expire at 3:15 AM GMT -->
|
|
603
|
-
<iscache type="daily" hour="3" minute="15"/>
|
|
604
|
-
```
|
|
605
|
-
|
|
606
|
-
## varyby Examples
|
|
607
|
-
|
|
608
|
-
```isml
|
|
609
|
-
<!-- Random expiration 1 second to 15 minutes after next hour -->
|
|
610
|
-
<iscache varyby="price_promotion"/>
|
|
611
|
-
|
|
612
|
-
<!-- 30-minute cache with personalization -->
|
|
613
|
-
<iscache type="relative" minute="30" varyby="price_promotion"/>
|
|
614
|
-
|
|
615
|
-
<!-- Daily expiration with personalization -->
|
|
616
|
-
<iscache type="daily" hour="3" varyby="price_promotion"/>
|
|
617
|
-
|
|
618
|
-
<!-- 2-hour cache with personalization -->
|
|
619
|
-
<iscache type="relative" hour="2" varyby="price_promotion"/>
|
|
620
|
-
```
|
|
621
|
-
|
|
622
|
-
## if Attribute Examples
|
|
623
|
-
|
|
624
|
-
```isml
|
|
625
|
-
<!-- Cache unless personalized sort -->
|
|
626
|
-
<iscache hour="2" varyby="price_promotion" if="${!searchModel.isPersonalizedSort()}"/>
|
|
627
|
-
|
|
628
|
-
<!-- Cache only for anonymous users -->
|
|
629
|
-
<iscache type="relative" hour="1" if="${!customer.authenticated}"/>
|
|
630
|
-
|
|
631
|
-
<!-- Cache unless basket has items -->
|
|
632
|
-
<iscache type="relative" minute="30" if="${empty(pdict.Basket.productLineItems)}"/>
|
|
633
|
-
|
|
634
|
-
<!-- Cache unless specific condition -->
|
|
635
|
-
<iscache type="relative" hour="2" if="${!pdict.disableCache}"/>
|
|
636
|
-
|
|
637
|
-
<!-- Cache during business hours only -->
|
|
638
|
-
<isscript>
|
|
639
|
-
var now = new Date();
|
|
640
|
-
var hour = now.getHours();
|
|
641
|
-
var isBusinessHours = (hour >= 9 && hour < 17);
|
|
642
|
-
</isscript>
|
|
643
|
-
<iscache type="relative" hour="1" if="${isBusinessHours}"/>
|
|
644
|
-
```
|
|
645
|
-
|
|
646
|
-
## Exception Handling and Cache Limits
|
|
647
|
-
|
|
648
|
-
⚠️ **Important:** When exceptions occur, cache time is limited to **5 minutes** to prevent caching error states:
|
|
649
|
-
|
|
650
|
-
**Exceptions that limit cache:**
|
|
651
|
-
- `<isscript>` blocks finish with exceptions
|
|
652
|
-
- Database exceptions
|
|
653
|
-
- Persistent object operation failures
|
|
654
|
-
|
|
655
|
-
**Excluded:** Exceptions from script expressions within ISML (${...})
|
|
656
|
-
|
|
657
|
-
**Best Practice:** Review logs and fix exceptions to ensure optimal caching performance.
|
|
658
|
-
|
|
659
|
-
```isml
|
|
660
|
-
<iscache type="relative" hour="24"/>
|
|
661
|
-
|
|
662
|
-
<isscript>
|
|
663
|
-
// If this throws exception, cache limited to 5 minutes
|
|
664
|
-
var product = ProductMgr.getProduct('INVALID_ID');
|
|
665
|
-
product.name; // Throws exception if product is null
|
|
666
|
-
</isscript>
|
|
667
|
-
|
|
668
|
-
<!-- Cache time: 5 minutes (not 24 hours) due to exception -->
|
|
669
|
-
```
|
|
670
|
-
|
|
671
|
-
## Performance Guidelines
|
|
672
|
-
|
|
673
|
-
### Cache Everything Possible
|
|
674
|
-
|
|
675
|
-
```isml
|
|
676
|
-
<!-- Good: Cache static/semi-static pages -->
|
|
677
|
-
<iscache type="relative" hour="1"/>
|
|
678
|
-
```
|
|
679
|
-
|
|
680
|
-
### Leave Only Small Dynamic Snippets
|
|
681
|
-
|
|
682
|
-
```isml
|
|
683
|
-
<!-- Cached page with small dynamic section -->
|
|
684
|
-
<iscache type="relative" hour="2"/>
|
|
685
|
-
|
|
686
|
-
<div class="page-content">
|
|
687
|
-
<!-- Cached content -->
|
|
688
|
-
|
|
689
|
-
<!-- Small dynamic snippet (remote include, not cached) -->
|
|
690
|
-
<isinclude url="${URLUtils.url('Account-MiniCart')}"/>
|
|
691
|
-
</div>
|
|
692
|
-
```
|
|
693
|
-
|
|
694
|
-
### Minimize Logic in Cached Pages
|
|
695
|
-
|
|
696
|
-
```isml
|
|
697
|
-
<!-- Bad: Heavy logic in cached template -->
|
|
698
|
-
<iscache type="relative" hour="1"/>
|
|
699
|
-
|
|
700
|
-
<isscript>
|
|
701
|
-
// Expensive database operations
|
|
702
|
-
var products = CustomObjectMgr.queryCustomObjects(...);
|
|
703
|
-
// Complex calculations
|
|
704
|
-
</isscript>
|
|
705
|
-
|
|
706
|
-
<!-- Good: Prepare data in controller -->
|
|
707
|
-
<iscache type="relative" hour="1"/>
|
|
708
|
-
|
|
709
|
-
<isloop items="${pdict.products}" var="product">
|
|
710
|
-
${product.name}
|
|
711
|
-
</isloop>
|
|
712
|
-
```
|
|
713
|
-
|
|
714
|
-
## Debugging and Testing
|
|
715
|
-
|
|
716
|
-
### Verify Caching is Active
|
|
717
|
-
|
|
718
|
-
```bash
|
|
719
|
-
# Check response headers
|
|
720
|
-
curl -I https://yoursite.com/page
|
|
721
|
-
|
|
722
|
-
# Look for:
|
|
723
|
-
# X-IS-Cache-Key: [cache key]
|
|
724
|
-
# X-IS-Cache-Store: [cache store name]
|
|
725
|
-
```
|
|
726
|
-
|
|
727
|
-
### Test Cache Expiration
|
|
728
|
-
|
|
729
|
-
1. Load page first time (cache miss)
|
|
730
|
-
2. Load page again (cache hit)
|
|
731
|
-
3. Wait for expiration time
|
|
732
|
-
4. Load page again (cache miss, regenerated)
|
|
733
|
-
|
|
734
|
-
### Monitor Cache Performance
|
|
735
|
-
|
|
736
|
-
Check Business Manager:
|
|
737
|
-
- Operations > Site Cache > Cache Statistics
|
|
738
|
-
- Monitor hit rates, miss rates
|
|
739
|
-
- Identify cache fragmentation
|
|
740
|
-
|
|
741
|
-
## Related Elements
|
|
742
|
-
|
|
743
|
-
- `<isdecorate>` - Template decorators (be careful with session data)
|
|
744
|
-
- `<isinclude>` - Local includes (affected by page cache)
|
|
745
|
-
- `<isinclude url>` - Remote includes (not cached)
|
|
746
|
-
- `<isscript>` - Script blocks (exceptions limit cache to 5 minutes)
|
|
747
|
-
|
|
748
|
-
## Response API Alternative
|
|
749
|
-
|
|
750
|
-
Instead of `<iscache>` in templates, use Response API in controllers:
|
|
751
|
-
|
|
752
|
-
```javascript
|
|
753
|
-
// Controller
|
|
754
|
-
var Response = require('dw/system/Response');
|
|
755
|
-
|
|
756
|
-
// Relative expiration
|
|
757
|
-
Response.setExpires(new Date(Date.now() + 3600000)); // 1 hour
|
|
758
|
-
|
|
759
|
-
// Vary by price/promotion
|
|
760
|
-
Response.setVaryBy('price_promotion');
|
|
761
|
-
```
|
|
762
|
-
|
|
763
|
-
## Notes
|
|
764
|
-
|
|
765
|
-
- `<iscache>` can appear anywhere in template (recommended: near beginning)
|
|
766
|
-
- Multiple elements: most restrictive wins
|
|
767
|
-
- Caching disabled anywhere: entire page not cached
|
|
768
|
-
- Personalized anywhere (`varyby`): entire page personalized
|
|
769
|
-
- Session information must not be cached
|
|
770
|
-
- Decorator session data: use remote includes only
|
|
771
|
-
- Exceptions limit cache to 5 minutes
|
|
772
|
-
- Default (no element): page not cached
|
|
773
|
-
- Just including element enables caching (no `status="on"` needed)
|
|
774
|
-
- GMT timezone for daily caching
|
|
775
|
-
- Random 0-15 minute default with `varyby` only
|
|
776
|
-
|
|
777
|
-
## Migration Notes
|
|
778
|
-
|
|
779
|
-
### Updating Deprecated status="off"
|
|
780
|
-
|
|
781
|
-
```isml
|
|
782
|
-
<!-- Old (deprecated) -->
|
|
783
|
-
<iscache status="off"/>
|
|
784
|
-
|
|
785
|
-
<!-- New: Just omit element -->
|
|
786
|
-
<!-- (no iscache element) -->
|
|
787
|
-
|
|
788
|
-
<!-- Or: Use if attribute for conditional -->
|
|
789
|
-
<iscache type="relative" hour="1" if="${!pdict.disableCache}"/>
|
|
790
|
-
```
|
|
791
|
-
|
|
792
|
-
### SiteGenesis to SFRA
|
|
793
|
-
|
|
794
|
-
```isml
|
|
795
|
-
<!-- SiteGenesis -->
|
|
796
|
-
<iscache type="relative" hour="1" varyby="price_promotion"/>
|
|
797
|
-
|
|
798
|
-
<!-- SFRA (same syntax) -->
|
|
799
|
-
<iscache type="relative" hour="1" varyby="price_promotion"/>
|
|
800
|
-
```
|
|
801
|
-
|
|
802
|
-
Syntax remains the same; review all cached pages to ensure no session data is cached.
|