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
|
@@ -1,370 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sfcc-isml-development
|
|
3
|
-
description: SFRA-first guide for developing ISML templates in Salesforce B2C Commerce (Bootstrap 4 conventions). Use this when creating, modifying, or troubleshooting SFRA templates, decorators, components, forms, includes, and caching.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# ISML Development (SFRA + Bootstrap 4)
|
|
7
|
-
|
|
8
|
-
This skill is **SFRA-only**. It intentionally avoids SiteGenesis patterns.
|
|
9
|
-
|
|
10
|
-
SFRA storefront markup is built around **Bootstrap 4** (grid, forms, alerts, utilities). Keep your ISML consistent with existing SFRA markup and CSS conventions.
|
|
11
|
-
|
|
12
|
-
## When to Use
|
|
13
|
-
|
|
14
|
-
- You’re editing `templates/default/**` in an SFRA cartridge.
|
|
15
|
-
- You need to apply/extend SFRA layout (`common/layout/page` / `common/layout/checkout`).
|
|
16
|
-
- You’re building reusable components via `<isinclude>` and Bootstrap 4 markup.
|
|
17
|
-
- You’re debugging output encoding, caching, or remote include behaviour.
|
|
18
|
-
|
|
19
|
-
## When NOT to Use
|
|
20
|
-
|
|
21
|
-
- For business logic, data fetching, persistence, or complex transformations (belongs in controllers/models/scripts).
|
|
22
|
-
- For redesigning UI with a different framework (SFRA baseline expects Bootstrap 4).
|
|
23
|
-
|
|
24
|
-
## Quick Checklist
|
|
25
|
-
|
|
26
|
-
```text
|
|
27
|
-
[ ] No business logic in ISML (no data fetches, no persistence)
|
|
28
|
-
[ ] <isscript> used only for SFRA asset registration (CSS/JS)
|
|
29
|
-
[ ] Output encoding is NOT disabled unless justified and safe
|
|
30
|
-
[ ] <iscontent>/<isredirect>/<iscache> placement constraints respected
|
|
31
|
-
[ ] Remote includes used sparingly with security middleware
|
|
32
|
-
[ ] Template receives all data via pdict (controller owns data)
|
|
33
|
-
[ ] Markup uses Bootstrap 4 classes (grid, forms, alerts)
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
## Where Templates Live (SFRA)
|
|
37
|
-
|
|
38
|
-
```
|
|
39
|
-
/my-cartridge/cartridge/templates/
|
|
40
|
-
/default # Default templates (SFRA)
|
|
41
|
-
/product/detail.isml
|
|
42
|
-
/util/modules.isml # Optional: <ismodule> tag definitions
|
|
43
|
-
/fr_FR # Locale overrides (use sparingly)
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
## SFRA Golden Rule: Templates Are Presentation-Only
|
|
47
|
-
|
|
48
|
-
**NEVER use `<isscript>` for business logic.** The only exception is asset management:
|
|
49
|
-
|
|
50
|
-
```html
|
|
51
|
-
<!-- ✅ Only acceptable use of isscript -->
|
|
52
|
-
<isscript>
|
|
53
|
-
var assets = require('*/cartridge/scripts/assets.js');
|
|
54
|
-
assets.addCss('/css/product.css');
|
|
55
|
-
assets.addJs('/js/product.js');
|
|
56
|
-
</isscript>
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
All data comes from controllers via `pdict`:
|
|
60
|
-
|
|
61
|
-
```html
|
|
62
|
-
<!-- ✅ Correct: Data from controller -->
|
|
63
|
-
<div class="price h5 mb-0">${pdict.product.price.sales.formatted}</div>
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
## Bootstrap 4 Conventions (SFRA UI Baseline)
|
|
67
|
-
|
|
68
|
-
Use these classes/patterns by default:
|
|
69
|
-
|
|
70
|
-
| Goal | Bootstrap 4 pattern |
|
|
71
|
-
|------|----------------------|
|
|
72
|
-
| Layout | `container` → `row` → `col-*` |
|
|
73
|
-
| Spacing | `mt-*`, `mb-*`, `py-*`, `px-*` |
|
|
74
|
-
| Buttons | `btn btn-primary`, `btn btn-outline-primary` |
|
|
75
|
-
| Alerts | `alert alert-danger`, `alert alert-success` |
|
|
76
|
-
| Forms | `form-group`, `form-control`, `is-invalid`, `invalid-feedback` |
|
|
77
|
-
| Responsive show/hide | `d-none d-md-block`, `d-md-none` |
|
|
78
|
-
|
|
79
|
-
Avoid mixing Bootstrap 5-only classes (e.g. `g-*`, `row-cols-*`, `btn-close`, `badge bg-*`) into SFRA baseline templates.
|
|
80
|
-
|
|
81
|
-
## Essential Tags
|
|
82
|
-
|
|
83
|
-
### Conditional Logic
|
|
84
|
-
|
|
85
|
-
```html
|
|
86
|
-
<isif condition="${pdict.product.available}">
|
|
87
|
-
<span class="badge badge-success">${Resource.msg('label.instock','product',null)}</span>
|
|
88
|
-
<iselseif condition="${pdict.product.preorderable}">
|
|
89
|
-
<span class="badge badge-info">${Resource.msg('label.preorder','product',null)}</span>
|
|
90
|
-
<iselse>
|
|
91
|
-
<span class="badge badge-secondary">${Resource.msg('label.outofstock','product',null)}</span>
|
|
92
|
-
</isif>
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### Loops
|
|
96
|
-
|
|
97
|
-
```html
|
|
98
|
-
<isloop items="${products}" var="product" status="loopstate">
|
|
99
|
-
<div class="col-6 col-sm-4 col-lg-3 mb-3">
|
|
100
|
-
<div class="card h-100">
|
|
101
|
-
<div class="card-body">
|
|
102
|
-
<div class="small text-muted">#${loopstate.count}</div>
|
|
103
|
-
<div class="font-weight-bold">${product.name}</div>
|
|
104
|
-
</div>
|
|
105
|
-
<isif condition="${loopstate.first}">
|
|
106
|
-
<div class="card-footer bg-transparent">
|
|
107
|
-
<span class="badge badge-warning">${Resource.msg('label.featured','common',null)}</span>
|
|
108
|
-
</div>
|
|
109
|
-
</isif>
|
|
110
|
-
</div>
|
|
111
|
-
</div>
|
|
112
|
-
</isloop>
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
Loop status: `count` (1-based), `index` (0-based), `first`, `last`, `odd`, `even`
|
|
116
|
-
|
|
117
|
-
### Variables
|
|
118
|
-
|
|
119
|
-
```html
|
|
120
|
-
<isset name="productName" value="${product.name}" scope="page"/>
|
|
121
|
-
<span>${productName}</span>
|
|
122
|
-
<isremove name="productName" scope="page"/>
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
Scopes (required): `page`, `request`, `session`, `pdict`
|
|
126
|
-
|
|
127
|
-
### Output
|
|
128
|
-
|
|
129
|
-
```html
|
|
130
|
-
<!-- HTML encoded (default) -->
|
|
131
|
-
<isprint value="${product.name}"/>
|
|
132
|
-
|
|
133
|
-
<!-- Unencoded (use carefully) -->
|
|
134
|
-
<isprint value="${htmlContent}" encoding="off"/>
|
|
135
|
-
|
|
136
|
-
<!-- Formatted -->
|
|
137
|
-
<isprint value="${price}" style="CURRENCY"/>
|
|
138
|
-
<isprint value="${order.creationDate}" style="DATE_SHORT"/>
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
### Includes
|
|
142
|
-
|
|
143
|
-
```html
|
|
144
|
-
<!-- Local include (shared pdict) -->
|
|
145
|
-
<isinclude template="product/components/price"/>
|
|
146
|
-
|
|
147
|
-
<!-- Remote include (isolated, own cache) -->
|
|
148
|
-
<isinclude url="${URLUtils.url('Product-GetPrice', 'pid', product.ID)}"/>
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
Prefer local includes for components. Only use remote includes when you need an **independent cache policy** or **request isolation**; see the remote include reference.
|
|
152
|
-
|
|
153
|
-
## Decorator Pattern
|
|
154
|
-
|
|
155
|
-
**Decorator template** (`common/layout/page.isml`):
|
|
156
|
-
```html
|
|
157
|
-
<!DOCTYPE html>
|
|
158
|
-
<html>
|
|
159
|
-
<head><title>${pdict.pageTitle}</title></head>
|
|
160
|
-
<body>
|
|
161
|
-
<isinclude template="components/header"/>
|
|
162
|
-
<main>
|
|
163
|
-
<isreplace/> <!-- Content inserted here -->
|
|
164
|
-
</main>
|
|
165
|
-
<isinclude template="components/footer"/>
|
|
166
|
-
</body>
|
|
167
|
-
</html>
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
**Using decorator:**
|
|
171
|
-
```html
|
|
172
|
-
<isdecorate template="common/layout/page">
|
|
173
|
-
<div class="content">
|
|
174
|
-
<h1>${pdict.welcomeMessage}</h1>
|
|
175
|
-
</div>
|
|
176
|
-
</isdecorate>
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
SFRA provides two primary decorators:
|
|
180
|
-
- `common/layout/page` - Standard storefront pages
|
|
181
|
-
- `common/layout/checkout` - Checkout process pages
|
|
182
|
-
|
|
183
|
-
Use `<isdecorate>` on almost all storefront templates; keep full `<html>/<head>/<body>` only in layout templates.
|
|
184
|
-
|
|
185
|
-
## Tag Location Constraints
|
|
186
|
-
|
|
187
|
-
| Tag | Constraint |
|
|
188
|
-
|-----|------------|
|
|
189
|
-
| `<iscontent>` | Must be before DOCTYPE |
|
|
190
|
-
| `<isredirect>` | Must be before DOCTYPE |
|
|
191
|
-
| `<iscache>` | Place at beginning |
|
|
192
|
-
| `<isreplace/>` | Only inside decorator templates |
|
|
193
|
-
| `<isbreak>/<iscontinue>/<isnext>` | Only inside `<isloop>` |
|
|
194
|
-
|
|
195
|
-
## Caching
|
|
196
|
-
|
|
197
|
-
```html
|
|
198
|
-
<!-- Cache for 24 hours -->
|
|
199
|
-
<iscache type="relative" hour="24"/>
|
|
200
|
-
|
|
201
|
-
<!-- Daily cache (expires at midnight) -->
|
|
202
|
-
<iscache type="daily" hour="0" minute="0"/>
|
|
203
|
-
|
|
204
|
-
<!-- Vary by price/promotion -->
|
|
205
|
-
<iscache type="relative" hour="1" varyby="price_promotion"/>
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
Place `<iscache>` at the beginning of the template.
|
|
209
|
-
|
|
210
|
-
Prefer **controller caching middleware** (SFRA `*/cartridge/scripts/middleware/cache`) for page-level caching decisions; use `<iscache>` selectively for fragments.
|
|
211
|
-
|
|
212
|
-
## Content Type
|
|
213
|
-
|
|
214
|
-
```html
|
|
215
|
-
<!-- Must be first in template -->
|
|
216
|
-
<iscontent type="text/html" charset="UTF-8"/>
|
|
217
|
-
|
|
218
|
-
<!-- For JSON -->
|
|
219
|
-
<iscontent type="application/json" charset="UTF-8"/>
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
## Custom Modules
|
|
223
|
-
|
|
224
|
-
**Define in `util/modules.isml`:**
|
|
225
|
-
```html
|
|
226
|
-
<ismodule template="components/productcard"
|
|
227
|
-
name="productcard"
|
|
228
|
-
attribute="product"
|
|
229
|
-
attribute="showPrice"/>
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
**Use anywhere:**
|
|
233
|
-
```html
|
|
234
|
-
<isinclude template="util/modules"/>
|
|
235
|
-
<isproductcard product="${product}" showPrice="${true}"/>
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
In SFRA, most reuse is done via `<isinclude template="...">`. Use `<ismodule>` custom tags only when it measurably improves readability/consistency.
|
|
239
|
-
|
|
240
|
-
## Security: XSS Prevention
|
|
241
|
-
|
|
242
|
-
**Always rely on default encoding.** `<isprint>` automatically HTML-encodes:
|
|
243
|
-
|
|
244
|
-
```html
|
|
245
|
-
<!-- ✅ Secure (default) -->
|
|
246
|
-
<isprint value="${pdict.searchPhrase}" />
|
|
247
|
-
|
|
248
|
-
<!-- ❌ Vulnerable -->
|
|
249
|
-
<isprint value="${pdict.searchPhrase}" encoding="off" />
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
For JavaScript context, use `SecureEncoder`:
|
|
253
|
-
|
|
254
|
-
```html
|
|
255
|
-
<script>
|
|
256
|
-
var term = "${require('dw/util/SecureEncoder').forJavaScript(pdict.searchPhrase)}";
|
|
257
|
-
</script>
|
|
258
|
-
```
|
|
259
|
-
|
|
260
|
-
For HTML attributes, prefer `SecureEncoder.forHTMLAttribute(...)`. Avoid `encoding="off"` unless the value is fully controlled and intentionally contains HTML.
|
|
261
|
-
|
|
262
|
-
## Built-in Utilities
|
|
263
|
-
|
|
264
|
-
Pre-imported, use directly:
|
|
265
|
-
|
|
266
|
-
```html
|
|
267
|
-
<!-- URLUtils -->
|
|
268
|
-
<a href="${URLUtils.url('Product-Show', 'pid', product.ID)}">View</a>
|
|
269
|
-
<img src="${URLUtils.staticURL('/images/logo.png')}" alt="Logo"/>
|
|
270
|
-
|
|
271
|
-
<!-- Resource (localization) -->
|
|
272
|
-
${Resource.msg('button.addtocart', 'product', null)}
|
|
273
|
-
${Resource.msgf('cart.items', 'cart', null, cartCount)}
|
|
274
|
-
|
|
275
|
-
<!-- StringUtils -->
|
|
276
|
-
${StringUtils.truncate(description, 100, '...')}
|
|
277
|
-
```
|
|
278
|
-
|
|
279
|
-
## Expressions
|
|
280
|
-
|
|
281
|
-
```html
|
|
282
|
-
<!-- Property access -->
|
|
283
|
-
${pdict.product.name}
|
|
284
|
-
${pdict.product.price.sales.value}
|
|
285
|
-
|
|
286
|
-
<!-- Method calls -->
|
|
287
|
-
${product.getAvailabilityModel().isInStock()}
|
|
288
|
-
|
|
289
|
-
<!-- Operators -->
|
|
290
|
-
${price > 100 ? 'expensive' : 'affordable'}
|
|
291
|
-
${firstName + ' ' + lastName}
|
|
292
|
-
```
|
|
293
|
-
|
|
294
|
-
## Comments
|
|
295
|
-
|
|
296
|
-
```html
|
|
297
|
-
<!-- HTML comment (visible in source) -->
|
|
298
|
-
|
|
299
|
-
<iscomment>
|
|
300
|
-
ISML comment - stripped from output.
|
|
301
|
-
Use for sensitive documentation.
|
|
302
|
-
</iscomment>
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
## Best Practices
|
|
306
|
-
|
|
307
|
-
1. Use Bootstrap 4 components/utilities for UI consistency
|
|
308
|
-
2. Use `<isdecorate>` with SFRA layouts (`common/layout/page`, `common/layout/checkout`)
|
|
309
|
-
3. Keep templates “dumb”: controllers/models prepare view models; templates render
|
|
310
|
-
4. Use `<isinclude template>` for component composition; keep components small
|
|
311
|
-
5. Default encoding prevents XSS; use `SecureEncoder` for JS/attribute contexts
|
|
312
|
-
6. Minimize remote includes; when used, require `server.middleware.include` + explicit security + cache policy
|
|
313
|
-
7. Prefer controller caching middleware; use `<iscache>` thoughtfully
|
|
314
|
-
|
|
315
|
-
## Common SFRA Form Pattern (Bootstrap 4)
|
|
316
|
-
|
|
317
|
-
```html
|
|
318
|
-
<form action="${URLUtils.url('Account-Login')}" method="post" class="login">
|
|
319
|
-
<input type="hidden" name="${pdict.csrf.tokenName}" value="${pdict.csrf.token}"/>
|
|
320
|
-
|
|
321
|
-
<div class="form-group">
|
|
322
|
-
<label class="form-control-label" for="login-email">
|
|
323
|
-
${Resource.msg('label.login.email','login',null)}
|
|
324
|
-
</label>
|
|
325
|
-
<input
|
|
326
|
-
id="login-email"
|
|
327
|
-
type="email"
|
|
328
|
-
class="form-control <isif condition="${pdict.loginForm.username.invalid}">is-invalid</isif>"
|
|
329
|
-
name="${pdict.loginForm.username.htmlName}"
|
|
330
|
-
value="${pdict.loginForm.username.value}"
|
|
331
|
-
autocomplete="email"
|
|
332
|
-
required>
|
|
333
|
-
<isif condition="${pdict.loginForm.username.invalid}">
|
|
334
|
-
<div class="invalid-feedback">
|
|
335
|
-
<isprint value="${pdict.loginForm.username.error}"/>
|
|
336
|
-
</div>
|
|
337
|
-
</isif>
|
|
338
|
-
</div>
|
|
339
|
-
|
|
340
|
-
<button type="submit" class="btn btn-primary btn-block">
|
|
341
|
-
${Resource.msg('button.login','login',null)}
|
|
342
|
-
</button>
|
|
343
|
-
</form>
|
|
344
|
-
```
|
|
345
|
-
|
|
346
|
-
## MCP ISML Tools
|
|
347
|
-
|
|
348
|
-
```javascript
|
|
349
|
-
search_isml_elements("loop") // Find by intent
|
|
350
|
-
get_isml_element("isprint") // Full documentation
|
|
351
|
-
list_isml_elements() // All elements by category
|
|
352
|
-
```
|
|
353
|
-
|
|
354
|
-
## Related Skills
|
|
355
|
-
|
|
356
|
-
- **[sfcc-localization](../sfcc-localization/SKILL.md)** - Essential companion skill for localizing template text. Covers resource bundles, `Resource.msg()`, parameterized messages, locale fallback, and internationalization best practices. **Always use resource bundles instead of hardcoded text in templates.**
|
|
357
|
-
|
|
358
|
-
## Detailed References
|
|
359
|
-
|
|
360
|
-
- [Remote Includes](references/REMOTE-INCLUDES.md) - Local vs remote, caching, security
|
|
361
|
-
- [Utilities & Expressions](references/UTILITIES-EXPRESSIONS.md) - Built-in objects, expression syntax
|
|
362
|
-
- [SFRA Base Templates (Index)](references/sfra-base-templates-architecture.md) - Jumping-off point
|
|
363
|
-
- [SFRA Layouts](references/SFRA-LAYOUTS.md) - Decorators, hooks, `<isreplace/>`
|
|
364
|
-
- [SFRA Structure & Components](references/SFRA-STRUCTURE-COMPONENTS.md) - Where templates live, composition patterns
|
|
365
|
-
- [SFRA Pages: Catalog/Search](references/SFRA-PAGES-CATALOG.md) - Homepage/PDP/search/category patterns
|
|
366
|
-
- [SFRA Pages: Cart/Account/Auth](references/SFRA-PAGES-CART-ACCOUNT-AUTH.md) - Cart/account/login patterns
|
|
367
|
-
|
|
368
|
-
## External Reference
|
|
369
|
-
|
|
370
|
-
- Legacy long-form doc (for deeper examples): https://raw.githubusercontent.com/taurgis/sfcc-dev-mcp/refs/heads/main/docs/best-practices/isml_templates.md
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
# ISML Remote Includes Reference
|
|
2
|
-
|
|
3
|
-
Comprehensive guide for local vs remote includes, caching strategies, and security.
|
|
4
|
-
|
|
5
|
-
## Local vs Remote Includes
|
|
6
|
-
|
|
7
|
-
| Attribute | Local Include | Remote Include |
|
|
8
|
-
|-----------|---------------|----------------|
|
|
9
|
-
| Syntax | `<isinclude template="...">` | `<isinclude url="...">` |
|
|
10
|
-
| Processing | Single request on Application Server | Parent + secondary request via Web Adapter |
|
|
11
|
-
| Data Scope | Full access to parent `pdict` & variables | Isolated – only URL query params available |
|
|
12
|
-
| Cache Policy | Inherits parent (lowest TTL wins) | Independent TTL per fragment |
|
|
13
|
-
| Typical Use | Reusable markup, partials | Mini-cart, personalized slots, dynamic widgets |
|
|
14
|
-
| Overhead | Minimal | Extra HTTP round trip |
|
|
15
|
-
| Security | Inherits parent auth state | New unauthenticated request |
|
|
16
|
-
| Failure Mode | Template error breaks page | Fragment timeout can delay assembly |
|
|
17
|
-
|
|
18
|
-
## When to Use Remote Includes
|
|
19
|
-
|
|
20
|
-
Use a **local include** unless ALL are true:
|
|
21
|
-
1. Fragment volatility differs meaningfully from page shell
|
|
22
|
-
2. Output can be parameterized via simple query params
|
|
23
|
-
3. Performance gain from separate caching outweighs added request
|
|
24
|
-
4. Security implications are understood and mitigated
|
|
25
|
-
|
|
26
|
-
## Implementing Remote Includes
|
|
27
|
-
|
|
28
|
-
### Template Example
|
|
29
|
-
|
|
30
|
-
Mini-cart header icon (uncached) while page shell cached for hours:
|
|
31
|
-
|
|
32
|
-
```html
|
|
33
|
-
<div class="header-cart" data-component="mini-cart">
|
|
34
|
-
<isinclude url="${URLUtils.url('Cart-MiniCart')}" />
|
|
35
|
-
</div>
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
### Controller Pattern
|
|
39
|
-
|
|
40
|
-
```javascript
|
|
41
|
-
var server = require('server');
|
|
42
|
-
var cache = require('*/cartridge/scripts/middleware/cache');
|
|
43
|
-
|
|
44
|
-
server.get('MiniCart',
|
|
45
|
-
server.middleware.include, // Gatekeeper: only valid inside remote include
|
|
46
|
-
cache.applyShortPromotionSensitiveCache, // Or cache.disableCaching()
|
|
47
|
-
function (req, res, next) {
|
|
48
|
-
// Build isolated model – no parent pdict access
|
|
49
|
-
res.render('components/header/miniCart');
|
|
50
|
-
next();
|
|
51
|
-
}
|
|
52
|
-
);
|
|
53
|
-
|
|
54
|
-
module.exports = server.exports();
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## Passing Data
|
|
58
|
-
|
|
59
|
-
All context must be URL params:
|
|
60
|
-
|
|
61
|
-
```html
|
|
62
|
-
<isinclude url="${URLUtils.url('Page-Include', 'cid', 'footer-content-asset')}" />
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
**Warning:** Each unique full URL becomes a distinct cache entry (cache fragmentation risk).
|
|
66
|
-
|
|
67
|
-
## Caching Strategy Patterns
|
|
68
|
-
|
|
69
|
-
| Scenario | Page Shell TTL | Remote Include TTL | Rationale |
|
|
70
|
-
|----------|----------------|--------------------|-----------|
|
|
71
|
-
| Marketing landing + live inventory | 12h | 5m | Keep inventory fresh |
|
|
72
|
-
| Category grid + personalized banner | 4h | 15m | Personalized offers rotate |
|
|
73
|
-
| PDP + mini-cart | 2h | 0 (uncached) | Basket state = current session |
|
|
74
|
-
|
|
75
|
-
Keep total remote includes per page conservative (<20 recommended).
|
|
76
|
-
|
|
77
|
-
## Performance Anti-Patterns
|
|
78
|
-
|
|
79
|
-
| Anti-Pattern | Why Harmful | Better Alternative |
|
|
80
|
-
|--------------|-------------|-------------------|
|
|
81
|
-
| Remote include per product tile | N extra HTTP requests | Single parent with local includes |
|
|
82
|
-
| Position/index params that vary | Creates unique cache keys | Omit non-functional params |
|
|
83
|
-
| Deep nesting (include chain) | Compounding latency | Flatten architecture |
|
|
84
|
-
|
|
85
|
-
## Security Requirements
|
|
86
|
-
|
|
87
|
-
Remote include endpoints are effectively **public** unless you add authentication middleware.
|
|
88
|
-
|
|
89
|
-
**NEVER** expose PII or account state in an unprotected include.
|
|
90
|
-
|
|
91
|
-
```javascript
|
|
92
|
-
server.get('SensitiveFragment',
|
|
93
|
-
server.middleware.include,
|
|
94
|
-
userLoggedIn.validateLoggedIn, // if user-specific
|
|
95
|
-
function (req, res, next) { ... }
|
|
96
|
-
);
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
## Checklist
|
|
100
|
-
|
|
101
|
-
```text
|
|
102
|
-
[ ] Justified different cache TTL
|
|
103
|
-
[ ] URL params minimal & non-sensitive
|
|
104
|
-
[ ] server.middleware.include first
|
|
105
|
-
[ ] Additional auth middleware if user data
|
|
106
|
-
[ ] Explicit cache middleware (or disabled)
|
|
107
|
-
[ ] Fragment count on page < 20
|
|
108
|
-
[ ] No nested chains beyond depth 2
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
## When NOT to Use Remote Includes
|
|
112
|
-
|
|
113
|
-
- Pure presentational partials (icons, button groups)
|
|
114
|
-
- Iterative children of a paginated list
|
|
115
|
-
- Form bodies requiring parent validation context
|
|
116
|
-
- Anything requiring parent `pdict` without trivial serialization
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
# SFRA Layout Templates (Decorators)
|
|
2
|
-
|
|
3
|
-
SFRA storefront pages typically render content via:
|
|
4
|
-
|
|
5
|
-
```html
|
|
6
|
-
<isdecorate template="common/layout/page">
|
|
7
|
-
<!-- page content -->
|
|
8
|
-
</isdecorate>
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
Keep full `<html>/<head>/<body>` markup in layout templates only.
|
|
12
|
-
|
|
13
|
-
## Core Layouts
|
|
14
|
-
|
|
15
|
-
SFRA commonly uses these base layout templates:
|
|
16
|
-
|
|
17
|
-
- `common/layout/page.isml` — primary layout for most storefront pages
|
|
18
|
-
- `common/layout/checkout.isml` — checkout layout (reduced header/navigation)
|
|
19
|
-
- `common/layout/pdStorePage.isml` — Page Designer store pages (campaign banner support)
|
|
20
|
-
|
|
21
|
-
These layouts typically:
|
|
22
|
-
|
|
23
|
-
- Include shared head markup via `common/htmlHead`
|
|
24
|
-
- Register shared scripts via `common/scripts`
|
|
25
|
-
- Include header/footer components
|
|
26
|
-
- Provide a single `<isreplace/>` insertion point inside `<main>`
|
|
27
|
-
- Call template hooks:
|
|
28
|
-
- `dw.system.HookMgr.callHook('app.template.beforeHeader', 'beforeHeader', pdict)`
|
|
29
|
-
- `dw.system.HookMgr.callHook('app.template.afterFooter', 'afterFooter', pdict)`
|
|
30
|
-
|
|
31
|
-
## `<isreplace/>` Rules
|
|
32
|
-
|
|
33
|
-
- Layout templates contain `<isreplace/>`.
|
|
34
|
-
- Decorated templates contain markup that will be injected at `<isreplace/>`.
|
|
35
|
-
- Prefer **one** `<isreplace/>` per layout.
|
|
36
|
-
|
|
37
|
-
## Bootstrap 4 Notes
|
|
38
|
-
|
|
39
|
-
SFRA baseline markup uses **Bootstrap 4**:
|
|
40
|
-
|
|
41
|
-
- Grid: `container` → `row` → `col-*`
|
|
42
|
-
- Forms: `form-group`, `form-control`, `is-invalid`, `invalid-feedback`
|
|
43
|
-
- Alerts: `alert alert-*`
|
|
44
|
-
- Utilities: `d-none d-md-block`, spacing utilities `mt-*` etc.
|
|
45
|
-
|
|
46
|
-
Avoid Bootstrap 5-only classes unless your project has explicitly upgraded.
|
|
47
|
-
|
|
48
|
-
## Caching Reminder
|
|
49
|
-
|
|
50
|
-
Prefer controller-based caching middleware for page caching; use `<iscache>` selectively for fragments.
|
package/ai-instructions/skills/sfcc-isml-development/references/SFRA-PAGES-CART-ACCOUNT-AUTH.md
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
# SFRA Page Patterns (Cart, Account, Auth)
|
|
2
|
-
|
|
3
|
-
These patterns are common in SFRA for stateful and account-related pages.
|
|
4
|
-
|
|
5
|
-
## Cart
|
|
6
|
-
|
|
7
|
-
Typical traits:
|
|
8
|
-
|
|
9
|
-
- Decorated with `common/layout/page`
|
|
10
|
-
- Uses Bootstrap alerts for errors
|
|
11
|
-
- Renders line items via includes by product type
|
|
12
|
-
- Renders totals + promo/coupon UX in a right-side column on desktop
|
|
13
|
-
|
|
14
|
-
Common includes:
|
|
15
|
-
|
|
16
|
-
- `cart/productCard/cartProductCard`
|
|
17
|
-
- `cart/productCard/cartBundleCard`
|
|
18
|
-
- `cart/cartTotals`
|
|
19
|
-
- `cart/cartPromoCode`
|
|
20
|
-
- `cart/checkoutButtons`
|
|
21
|
-
|
|
22
|
-
Keep cart-specific fragments local unless you have a strong cache boundary reason.
|
|
23
|
-
|
|
24
|
-
## Account (Dashboard + Subpages)
|
|
25
|
-
|
|
26
|
-
Typical traits:
|
|
27
|
-
|
|
28
|
-
- Decorated with `common/layout/page`
|
|
29
|
-
- Left-side navigation include: `account/accountNav`
|
|
30
|
-
- Card layout for subpages and content areas
|
|
31
|
-
|
|
32
|
-
Avoid putting “which subpage is active” logic in ISML beyond simple conditionals. Prefer controller flags (`pdict.profile`, `pdict.orderHistory`, etc.).
|
|
33
|
-
|
|
34
|
-
## Login / Registration
|
|
35
|
-
|
|
36
|
-
Typical traits:
|
|
37
|
-
|
|
38
|
-
- Decorated with `common/layout/page`
|
|
39
|
-
- CSRF hidden fields required
|
|
40
|
-
- Bootstrap 4 validation patterns:
|
|
41
|
-
- input adds `is-invalid` when field invalid
|
|
42
|
-
- error text rendered in `invalid-feedback`
|
|
43
|
-
- Uses `autocomplete` attributes for UX and accessibility
|
|
44
|
-
|
|
45
|
-
Reminder: do not output raw form attributes with `encoding="off"` unless the source is trusted.
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
# SFRA Page Patterns (Catalog/Search)
|
|
2
|
-
|
|
3
|
-
These are common SFRA patterns for pages that list or describe products/categories.
|
|
4
|
-
|
|
5
|
-
## Homepage
|
|
6
|
-
|
|
7
|
-
Typical traits:
|
|
8
|
-
|
|
9
|
-
- Decorated with `common/layout/page`
|
|
10
|
-
- Uses content slots (`<isslot>`) for BM-driven content
|
|
11
|
-
- Uses Bootstrap grid containers for layout
|
|
12
|
-
|
|
13
|
-
Example skeleton:
|
|
14
|
-
|
|
15
|
-
```html
|
|
16
|
-
<isdecorate template="common/layout/page">
|
|
17
|
-
<isscript>
|
|
18
|
-
var assets = require('*/cartridge/scripts/assets.js');
|
|
19
|
-
assets.addCss('/css/homePage.css');
|
|
20
|
-
assets.addJs('/js/productTile.js');
|
|
21
|
-
</isscript>
|
|
22
|
-
|
|
23
|
-
<div class="home-main homepage">
|
|
24
|
-
<isslot id="home-main-m" description="Main home page slot." context="global" />
|
|
25
|
-
</div>
|
|
26
|
-
</isdecorate>
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
## Product Detail Page (PDP)
|
|
30
|
-
|
|
31
|
-
Typical traits:
|
|
32
|
-
|
|
33
|
-
- Decorated with `common/layout/page`
|
|
34
|
-
- Creates a page-scoped `product` convenience variable
|
|
35
|
-
- Uses responsive patterns (`d-md-none`, etc.)
|
|
36
|
-
|
|
37
|
-
Example skeleton:
|
|
38
|
-
|
|
39
|
-
```html
|
|
40
|
-
<isdecorate template="common/layout/page">
|
|
41
|
-
<isscript>
|
|
42
|
-
var assets = require('*/cartridge/scripts/assets.js');
|
|
43
|
-
assets.addCss('/css/product/detail.css');
|
|
44
|
-
assets.addJs('/js/productDetail.js');
|
|
45
|
-
</isscript>
|
|
46
|
-
|
|
47
|
-
<isset name="product" value="${pdict.product}" scope="page" />
|
|
48
|
-
|
|
49
|
-
<div class="container product-detail" data-pid="${product.id}">
|
|
50
|
-
<div class="row">
|
|
51
|
-
<div class="col-12">
|
|
52
|
-
<h1 class="product-name">${product.productName}</h1>
|
|
53
|
-
<isinclude template="product/components/pricing/main"/>
|
|
54
|
-
</div>
|
|
55
|
-
</div>
|
|
56
|
-
</div>
|
|
57
|
-
</isdecorate>
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
## Search Results
|
|
61
|
-
|
|
62
|
-
Typical traits:
|
|
63
|
-
|
|
64
|
-
- Decorated with `common/layout/page`
|
|
65
|
-
- `refinement-bar` sidebar + grid content area
|
|
66
|
-
- Product tiles rendered via local include(s)
|
|
67
|
-
|
|
68
|
-
Key include components you’ll typically see:
|
|
69
|
-
|
|
70
|
-
- `search/refinements`
|
|
71
|
-
- `search/searchResultsCount`
|
|
72
|
-
- `search/sortOrderMenu`
|
|
73
|
-
- `search/searchResultsPagination`
|
|
74
|
-
- `product/productTile`
|
|
75
|
-
|
|
76
|
-
## Category Landing
|
|
77
|
-
|
|
78
|
-
Typical traits:
|
|
79
|
-
|
|
80
|
-
- Decorated with `common/layout/page`
|
|
81
|
-
- Breadcrumbs via `components/breadcrumbs/pageBreadcrumbs`
|
|
82
|
-
- Optional custom template selection via `pdict.category.template`
|
|
83
|
-
- Content slots for BM-managed category content
|
|
84
|
-
|
|
85
|
-
If you need a “hero image” style, prefer safe attribute construction and encoded values. Avoid mixing ISML tags into the middle of an HTML tag in a way that produces invalid markup.
|