#
tokens: 34303/50000 2/825 files (page 39/43)
lines: off (toggle) GitHub
raw markdown copy
This is page 39 of 43. Use http://codebase.md/taurgis/sfcc-dev-mcp?page={x} to view the full context.

# Directory Structure

```
├── .DS_Store
├── .github
│   ├── dependabot.yml
│   ├── instructions
│   │   ├── mcp-node-tests.instructions.md
│   │   └── mcp-yml-tests.instructions.md
│   ├── ISSUE_TEMPLATE
│   │   ├── bug_report.yml
│   │   ├── config.yml
│   │   ├── documentation.yml
│   │   ├── feature_request.yml
│   │   └── question.yml
│   ├── PULL_REQUEST_TEMPLATE
│   │   ├── bug_fix.md
│   │   ├── documentation.md
│   │   └── new_tool.md
│   ├── pull_request_template.md
│   └── workflows
│       ├── ci.yml
│       ├── deploy-pages.yml
│       ├── publish.yml
│       └── update-docs.yml
├── .gitignore
├── .husky
│   └── pre-commit
├── aegis.config.docs-only.json
├── aegis.config.json
├── aegis.config.with-dw.json
├── AGENTS.md
├── ai-instructions
│   ├── claude-desktop
│   │   └── claude_custom_instructions.md
│   ├── cursor
│   │   └── .cursor
│   │       └── rules
│   │           ├── debugging-workflows.mdc
│   │           ├── hooks-development.mdc
│   │           ├── isml-templates.mdc
│   │           ├── job-framework.mdc
│   │           ├── performance-optimization.mdc
│   │           ├── scapi-endpoints.mdc
│   │           ├── security-patterns.mdc
│   │           ├── sfcc-development.mdc
│   │           ├── sfra-controllers.mdc
│   │           ├── sfra-models.mdc
│   │           ├── system-objects.mdc
│   │           └── testing-patterns.mdc
│   └── github-copilot
│       └── copilot-instructions.md
├── CHANGELOG.md
├── CONTRIBUTING.md
├── docs
│   ├── best-practices
│   │   ├── cartridge_creation.md
│   │   ├── isml_templates.md
│   │   ├── job_framework.md
│   │   ├── localserviceregistry.md
│   │   ├── ocapi_hooks.md
│   │   ├── performance.md
│   │   ├── scapi_custom_endpoint.md
│   │   ├── scapi_hooks.md
│   │   ├── security.md
│   │   ├── sfra_client_side_js.md
│   │   ├── sfra_controllers.md
│   │   ├── sfra_models.md
│   │   └── sfra_scss.md
│   ├── dw_campaign
│   │   ├── ABTest.md
│   │   ├── ABTestMgr.md
│   │   ├── ABTestSegment.md
│   │   ├── AmountDiscount.md
│   │   ├── ApproachingDiscount.md
│   │   ├── BonusChoiceDiscount.md
│   │   ├── BonusDiscount.md
│   │   ├── Campaign.md
│   │   ├── CampaignMgr.md
│   │   ├── CampaignStatusCodes.md
│   │   ├── Coupon.md
│   │   ├── CouponMgr.md
│   │   ├── CouponRedemption.md
│   │   ├── CouponStatusCodes.md
│   │   ├── Discount.md
│   │   ├── DiscountPlan.md
│   │   ├── FixedPriceDiscount.md
│   │   ├── FixedPriceShippingDiscount.md
│   │   ├── FreeDiscount.md
│   │   ├── FreeShippingDiscount.md
│   │   ├── PercentageDiscount.md
│   │   ├── PercentageOptionDiscount.md
│   │   ├── PriceBookPriceDiscount.md
│   │   ├── Promotion.md
│   │   ├── PromotionMgr.md
│   │   ├── PromotionPlan.md
│   │   ├── SlotContent.md
│   │   ├── SourceCodeGroup.md
│   │   ├── SourceCodeInfo.md
│   │   ├── SourceCodeStatusCodes.md
│   │   └── TotalFixedPriceDiscount.md
│   ├── dw_catalog
│   │   ├── Catalog.md
│   │   ├── CatalogMgr.md
│   │   ├── Category.md
│   │   ├── CategoryAssignment.md
│   │   ├── CategoryLink.md
│   │   ├── PriceBook.md
│   │   ├── PriceBookMgr.md
│   │   ├── Product.md
│   │   ├── ProductActiveData.md
│   │   ├── ProductAttributeModel.md
│   │   ├── ProductAvailabilityLevels.md
│   │   ├── ProductAvailabilityModel.md
│   │   ├── ProductInventoryList.md
│   │   ├── ProductInventoryMgr.md
│   │   ├── ProductInventoryRecord.md
│   │   ├── ProductLink.md
│   │   ├── ProductMgr.md
│   │   ├── ProductOption.md
│   │   ├── ProductOptionModel.md
│   │   ├── ProductOptionValue.md
│   │   ├── ProductPriceInfo.md
│   │   ├── ProductPriceModel.md
│   │   ├── ProductPriceTable.md
│   │   ├── ProductSearchHit.md
│   │   ├── ProductSearchModel.md
│   │   ├── ProductSearchRefinementDefinition.md
│   │   ├── ProductSearchRefinements.md
│   │   ├── ProductSearchRefinementValue.md
│   │   ├── ProductVariationAttribute.md
│   │   ├── ProductVariationAttributeValue.md
│   │   ├── ProductVariationModel.md
│   │   ├── Recommendation.md
│   │   ├── SearchModel.md
│   │   ├── SearchRefinementDefinition.md
│   │   ├── SearchRefinements.md
│   │   ├── SearchRefinementValue.md
│   │   ├── SortingOption.md
│   │   ├── SortingRule.md
│   │   ├── Store.md
│   │   ├── StoreGroup.md
│   │   ├── StoreInventoryFilter.md
│   │   ├── StoreInventoryFilterValue.md
│   │   ├── StoreMgr.md
│   │   ├── Variant.md
│   │   └── VariationGroup.md
│   ├── dw_content
│   │   ├── Content.md
│   │   ├── ContentMgr.md
│   │   ├── ContentSearchModel.md
│   │   ├── ContentSearchRefinementDefinition.md
│   │   ├── ContentSearchRefinements.md
│   │   ├── ContentSearchRefinementValue.md
│   │   ├── Folder.md
│   │   ├── Library.md
│   │   ├── MarkupText.md
│   │   └── MediaFile.md
│   ├── dw_crypto
│   │   ├── CertificateRef.md
│   │   ├── CertificateUtils.md
│   │   ├── Cipher.md
│   │   ├── Encoding.md
│   │   ├── JWE.md
│   │   ├── JWEHeader.md
│   │   ├── JWS.md
│   │   ├── JWSHeader.md
│   │   ├── KeyRef.md
│   │   ├── Mac.md
│   │   ├── MessageDigest.md
│   │   ├── SecureRandom.md
│   │   ├── Signature.md
│   │   ├── WeakCipher.md
│   │   ├── WeakMac.md
│   │   ├── WeakMessageDigest.md
│   │   ├── WeakSignature.md
│   │   └── X509Certificate.md
│   ├── dw_customer
│   │   ├── AddressBook.md
│   │   ├── AgentUserMgr.md
│   │   ├── AgentUserStatusCodes.md
│   │   ├── AuthenticationStatus.md
│   │   ├── Credentials.md
│   │   ├── Customer.md
│   │   ├── CustomerActiveData.md
│   │   ├── CustomerAddress.md
│   │   ├── CustomerCDPData.md
│   │   ├── CustomerContextMgr.md
│   │   ├── CustomerGroup.md
│   │   ├── CustomerList.md
│   │   ├── CustomerMgr.md
│   │   ├── CustomerPasswordConstraints.md
│   │   ├── CustomerPaymentInstrument.md
│   │   ├── CustomerStatusCodes.md
│   │   ├── EncryptedObject.md
│   │   ├── ExternalProfile.md
│   │   ├── OrderHistory.md
│   │   ├── ProductList.md
│   │   ├── ProductListItem.md
│   │   ├── ProductListItemPurchase.md
│   │   ├── ProductListMgr.md
│   │   ├── ProductListRegistrant.md
│   │   ├── Profile.md
│   │   └── Wallet.md
│   ├── dw_extensions.applepay
│   │   ├── ApplePayHookResult.md
│   │   └── ApplePayHooks.md
│   ├── dw_extensions.facebook
│   │   ├── FacebookFeedHooks.md
│   │   └── FacebookProduct.md
│   ├── dw_extensions.paymentrequest
│   │   ├── PaymentRequestHookResult.md
│   │   └── PaymentRequestHooks.md
│   ├── dw_extensions.payments
│   │   ├── SalesforceBancontactPaymentDetails.md
│   │   ├── SalesforceCardPaymentDetails.md
│   │   ├── SalesforceEpsPaymentDetails.md
│   │   ├── SalesforceIdealPaymentDetails.md
│   │   ├── SalesforceKlarnaPaymentDetails.md
│   │   ├── SalesforcePaymentDetails.md
│   │   ├── SalesforcePaymentIntent.md
│   │   ├── SalesforcePaymentMethod.md
│   │   ├── SalesforcePaymentRequest.md
│   │   ├── SalesforcePaymentsHooks.md
│   │   ├── SalesforcePaymentsMgr.md
│   │   ├── SalesforcePaymentsSiteConfiguration.md
│   │   ├── SalesforcePayPalOrder.md
│   │   ├── SalesforcePayPalOrderAddress.md
│   │   ├── SalesforcePayPalOrderPayer.md
│   │   ├── SalesforcePayPalPaymentDetails.md
│   │   ├── SalesforceSepaDebitPaymentDetails.md
│   │   └── SalesforceVenmoPaymentDetails.md
│   ├── dw_extensions.pinterest
│   │   ├── PinterestAvailability.md
│   │   ├── PinterestFeedHooks.md
│   │   ├── PinterestOrder.md
│   │   ├── PinterestOrderHooks.md
│   │   └── PinterestProduct.md
│   ├── dw_io
│   │   ├── CSVStreamReader.md
│   │   ├── CSVStreamWriter.md
│   │   ├── File.md
│   │   ├── FileReader.md
│   │   ├── FileWriter.md
│   │   ├── InputStream.md
│   │   ├── OutputStream.md
│   │   ├── PrintWriter.md
│   │   ├── RandomAccessFileReader.md
│   │   ├── Reader.md
│   │   ├── StringWriter.md
│   │   ├── Writer.md
│   │   ├── XMLIndentingStreamWriter.md
│   │   ├── XMLStreamConstants.md
│   │   ├── XMLStreamReader.md
│   │   └── XMLStreamWriter.md
│   ├── dw_job
│   │   ├── JobExecution.md
│   │   └── JobStepExecution.md
│   ├── dw_net
│   │   ├── FTPClient.md
│   │   ├── FTPFileInfo.md
│   │   ├── HTTPClient.md
│   │   ├── HTTPRequestPart.md
│   │   ├── Mail.md
│   │   ├── SFTPClient.md
│   │   ├── SFTPFileInfo.md
│   │   ├── WebDAVClient.md
│   │   └── WebDAVFileInfo.md
│   ├── dw_object
│   │   ├── ActiveData.md
│   │   ├── CustomAttributes.md
│   │   ├── CustomObject.md
│   │   ├── CustomObjectMgr.md
│   │   ├── Extensible.md
│   │   ├── ExtensibleObject.md
│   │   ├── Note.md
│   │   ├── ObjectAttributeDefinition.md
│   │   ├── ObjectAttributeGroup.md
│   │   ├── ObjectAttributeValueDefinition.md
│   │   ├── ObjectTypeDefinition.md
│   │   ├── PersistentObject.md
│   │   ├── SimpleExtensible.md
│   │   └── SystemObjectMgr.md
│   ├── dw_order
│   │   ├── AbstractItem.md
│   │   ├── AbstractItemCtnr.md
│   │   ├── Appeasement.md
│   │   ├── AppeasementItem.md
│   │   ├── Basket.md
│   │   ├── BasketMgr.md
│   │   ├── BonusDiscountLineItem.md
│   │   ├── CouponLineItem.md
│   │   ├── CreateAgentBasketLimitExceededException.md
│   │   ├── CreateBasketFromOrderException.md
│   │   ├── CreateCouponLineItemException.md
│   │   ├── CreateOrderException.md
│   │   ├── CreateTemporaryBasketLimitExceededException.md
│   │   ├── GiftCertificate.md
│   │   ├── GiftCertificateLineItem.md
│   │   ├── GiftCertificateMgr.md
│   │   ├── GiftCertificateStatusCodes.md
│   │   ├── Invoice.md
│   │   ├── InvoiceItem.md
│   │   ├── LineItem.md
│   │   ├── LineItemCtnr.md
│   │   ├── Order.md
│   │   ├── OrderAddress.md
│   │   ├── OrderItem.md
│   │   ├── OrderMgr.md
│   │   ├── OrderPaymentInstrument.md
│   │   ├── OrderProcessStatusCodes.md
│   │   ├── PaymentCard.md
│   │   ├── PaymentInstrument.md
│   │   ├── PaymentMethod.md
│   │   ├── PaymentMgr.md
│   │   ├── PaymentProcessor.md
│   │   ├── PaymentStatusCodes.md
│   │   ├── PaymentTransaction.md
│   │   ├── PriceAdjustment.md
│   │   ├── PriceAdjustmentLimitTypes.md
│   │   ├── ProductLineItem.md
│   │   ├── ProductShippingCost.md
│   │   ├── ProductShippingLineItem.md
│   │   ├── ProductShippingModel.md
│   │   ├── Return.md
│   │   ├── ReturnCase.md
│   │   ├── ReturnCaseItem.md
│   │   ├── ReturnItem.md
│   │   ├── Shipment.md
│   │   ├── ShipmentShippingCost.md
│   │   ├── ShipmentShippingModel.md
│   │   ├── ShippingLineItem.md
│   │   ├── ShippingLocation.md
│   │   ├── ShippingMethod.md
│   │   ├── ShippingMgr.md
│   │   ├── ShippingOrder.md
│   │   ├── ShippingOrderItem.md
│   │   ├── SumItem.md
│   │   ├── TaxGroup.md
│   │   ├── TaxItem.md
│   │   ├── TaxMgr.md
│   │   ├── TrackingInfo.md
│   │   └── TrackingRef.md
│   ├── dw_order.hooks
│   │   ├── CalculateHooks.md
│   │   ├── OrderHooks.md
│   │   ├── PaymentHooks.md
│   │   ├── ReturnHooks.md
│   │   └── ShippingOrderHooks.md
│   ├── dw_rpc
│   │   ├── SOAPUtil.md
│   │   ├── Stub.md
│   │   └── WebReference.md
│   ├── dw_suggest
│   │   ├── BrandSuggestions.md
│   │   ├── CategorySuggestions.md
│   │   ├── ContentSuggestions.md
│   │   ├── CustomSuggestions.md
│   │   ├── ProductSuggestions.md
│   │   ├── SearchPhraseSuggestions.md
│   │   ├── SuggestedCategory.md
│   │   ├── SuggestedContent.md
│   │   ├── SuggestedPhrase.md
│   │   ├── SuggestedProduct.md
│   │   ├── SuggestedTerm.md
│   │   ├── SuggestedTerms.md
│   │   ├── Suggestions.md
│   │   └── SuggestModel.md
│   ├── dw_svc
│   │   ├── FTPService.md
│   │   ├── FTPServiceDefinition.md
│   │   ├── HTTPFormService.md
│   │   ├── HTTPFormServiceDefinition.md
│   │   ├── HTTPService.md
│   │   ├── HTTPServiceDefinition.md
│   │   ├── LocalServiceRegistry.md
│   │   ├── Result.md
│   │   ├── Service.md
│   │   ├── ServiceCallback.md
│   │   ├── ServiceConfig.md
│   │   ├── ServiceCredential.md
│   │   ├── ServiceDefinition.md
│   │   ├── ServiceProfile.md
│   │   ├── ServiceRegistry.md
│   │   ├── SOAPService.md
│   │   └── SOAPServiceDefinition.md
│   ├── dw_system
│   │   ├── AgentUserStatusCodes.md
│   │   ├── Cache.md
│   │   ├── CacheMgr.md
│   │   ├── HookMgr.md
│   │   ├── InternalObject.md
│   │   ├── JobProcessMonitor.md
│   │   ├── Log.md
│   │   ├── Logger.md
│   │   ├── LogNDC.md
│   │   ├── OrganizationPreferences.md
│   │   ├── Pipeline.md
│   │   ├── PipelineDictionary.md
│   │   ├── RemoteInclude.md
│   │   ├── Request.md
│   │   ├── RequestHooks.md
│   │   ├── Response.md
│   │   ├── RESTErrorResponse.md
│   │   ├── RESTResponseMgr.md
│   │   ├── RESTSuccessResponse.md
│   │   ├── SearchStatus.md
│   │   ├── Session.md
│   │   ├── Site.md
│   │   ├── SitePreferences.md
│   │   ├── Status.md
│   │   ├── StatusItem.md
│   │   ├── System.md
│   │   └── Transaction.md
│   ├── dw_util
│   │   ├── ArrayList.md
│   │   ├── Assert.md
│   │   ├── BigInteger.md
│   │   ├── Bytes.md
│   │   ├── Calendar.md
│   │   ├── Collection.md
│   │   ├── Currency.md
│   │   ├── DateUtils.md
│   │   ├── Decimal.md
│   │   ├── FilteringCollection.md
│   │   ├── Geolocation.md
│   │   ├── HashMap.md
│   │   ├── HashSet.md
│   │   ├── Iterator.md
│   │   ├── LinkedHashMap.md
│   │   ├── LinkedHashSet.md
│   │   ├── List.md
│   │   ├── Locale.md
│   │   ├── Map.md
│   │   ├── MapEntry.md
│   │   ├── MappingKey.md
│   │   ├── MappingMgr.md
│   │   ├── PropertyComparator.md
│   │   ├── SecureEncoder.md
│   │   ├── SecureFilter.md
│   │   ├── SeekableIterator.md
│   │   ├── Set.md
│   │   ├── SortedMap.md
│   │   ├── SortedSet.md
│   │   ├── StringUtils.md
│   │   ├── Template.md
│   │   └── UUIDUtils.md
│   ├── dw_value
│   │   ├── EnumValue.md
│   │   ├── MimeEncodedText.md
│   │   ├── Money.md
│   │   └── Quantity.md
│   ├── dw_web
│   │   ├── ClickStream.md
│   │   ├── ClickStreamEntry.md
│   │   ├── Cookie.md
│   │   ├── Cookies.md
│   │   ├── CSRFProtection.md
│   │   ├── Form.md
│   │   ├── FormAction.md
│   │   ├── FormElement.md
│   │   ├── FormElementValidationResult.md
│   │   ├── FormField.md
│   │   ├── FormFieldOption.md
│   │   ├── FormFieldOptions.md
│   │   ├── FormGroup.md
│   │   ├── FormList.md
│   │   ├── FormListItem.md
│   │   ├── Forms.md
│   │   ├── HttpParameter.md
│   │   ├── HttpParameterMap.md
│   │   ├── LoopIterator.md
│   │   ├── PageMetaData.md
│   │   ├── PageMetaTag.md
│   │   ├── PagingModel.md
│   │   ├── Resource.md
│   │   ├── URL.md
│   │   ├── URLAction.md
│   │   ├── URLParameter.md
│   │   ├── URLRedirect.md
│   │   ├── URLRedirectMgr.md
│   │   └── URLUtils.md
│   ├── sfra
│   │   ├── account.md
│   │   ├── address.md
│   │   ├── billing.md
│   │   ├── cart.md
│   │   ├── categories.md
│   │   ├── content.md
│   │   ├── locale.md
│   │   ├── order.md
│   │   ├── payment.md
│   │   ├── price-default.md
│   │   ├── price-range.md
│   │   ├── price-tiered.md
│   │   ├── product-bundle.md
│   │   ├── product-full.md
│   │   ├── product-line-items.md
│   │   ├── product-search.md
│   │   ├── product-tile.md
│   │   ├── querystring.md
│   │   ├── render.md
│   │   ├── request.md
│   │   ├── response.md
│   │   ├── server.md
│   │   ├── shipping.md
│   │   ├── store.md
│   │   ├── stores.md
│   │   └── totals.md
│   └── TopLevel
│       ├── APIException.md
│       ├── arguments.md
│       ├── Array.md
│       ├── ArrayBuffer.md
│       ├── BigInt.md
│       ├── Boolean.md
│       ├── ConversionError.md
│       ├── DataView.md
│       ├── Date.md
│       ├── Error.md
│       ├── ES6Iterator.md
│       ├── EvalError.md
│       ├── Fault.md
│       ├── Float32Array.md
│       ├── Float64Array.md
│       ├── Function.md
│       ├── Generator.md
│       ├── global.md
│       ├── Int16Array.md
│       ├── Int32Array.md
│       ├── Int8Array.md
│       ├── InternalError.md
│       ├── IOError.md
│       ├── Iterable.md
│       ├── Iterator.md
│       ├── JSON.md
│       ├── Map.md
│       ├── Math.md
│       ├── Module.md
│       ├── Namespace.md
│       ├── Number.md
│       ├── Object.md
│       ├── QName.md
│       ├── RangeError.md
│       ├── ReferenceError.md
│       ├── RegExp.md
│       ├── Set.md
│       ├── StopIteration.md
│       ├── String.md
│       ├── Symbol.md
│       ├── SyntaxError.md
│       ├── SystemError.md
│       ├── TypeError.md
│       ├── Uint16Array.md
│       ├── Uint32Array.md
│       ├── Uint8Array.md
│       ├── Uint8ClampedArray.md
│       ├── URIError.md
│       ├── WeakMap.md
│       ├── WeakSet.md
│       ├── XML.md
│       ├── XMLList.md
│       └── XMLStreamError.md
├── docs-site
│   ├── .gitignore
│   ├── App.tsx
│   ├── components
│   │   ├── Badge.tsx
│   │   ├── BreadcrumbSchema.tsx
│   │   ├── CodeBlock.tsx
│   │   ├── Collapsible.tsx
│   │   ├── ConfigBuilder.tsx
│   │   ├── ConfigHero.tsx
│   │   ├── ConfigModeTabs.tsx
│   │   ├── icons.tsx
│   │   ├── Layout.tsx
│   │   ├── LightCodeContainer.tsx
│   │   ├── NewcomerCTA.tsx
│   │   ├── NextStepsStrip.tsx
│   │   ├── OnThisPage.tsx
│   │   ├── Search.tsx
│   │   ├── SEO.tsx
│   │   ├── Sidebar.tsx
│   │   ├── StructuredData.tsx
│   │   ├── ToolCard.tsx
│   │   ├── ToolFilters.tsx
│   │   ├── Typography.tsx
│   │   └── VersionBadge.tsx
│   ├── constants.tsx
│   ├── index.html
│   ├── main.tsx
│   ├── metadata.json
│   ├── package-lock.json
│   ├── package.json
│   ├── pages
│   │   ├── AIInterfacesPage.tsx
│   │   ├── ConfigurationPage.tsx
│   │   ├── DevelopmentPage.tsx
│   │   ├── ExamplesPage.tsx
│   │   ├── FeaturesPage.tsx
│   │   ├── HomePage.tsx
│   │   ├── SecurityPage.tsx
│   │   ├── ToolsPage.tsx
│   │   └── TroubleshootingPage.tsx
│   ├── postcss.config.js
│   ├── public
│   │   ├── .well-known
│   │   │   └── security.txt
│   │   ├── 404.html
│   │   ├── android-chrome-192x192.png
│   │   ├── android-chrome-512x512.png
│   │   ├── apple-touch-icon.png
│   │   ├── explain-product-pricing-methods-no-mcp.png
│   │   ├── explain-product-pricing-methods.png
│   │   ├── favicon-16x16.png
│   │   ├── favicon-32x32.png
│   │   ├── favicon.ico
│   │   ├── llms.txt
│   │   ├── robots.txt
│   │   ├── site.webmanifest
│   │   └── sitemap.xml
│   ├── README.md
│   ├── scripts
│   │   ├── generate-search-index.js
│   │   ├── generate-sitemap.js
│   │   └── search-dev.js
│   ├── src
│   │   └── styles
│   │       ├── input.css
│   │       └── prism-theme.css
│   ├── tailwind.config.js
│   ├── tsconfig.json
│   ├── types.ts
│   ├── utils
│   │   ├── search.ts
│   │   └── toolsData.ts
│   └── vite.config.ts
├── eslint.config.js
├── jest.config.js
├── LICENSE
├── package-lock.json
├── package.json
├── README.md
├── scripts
│   └── convert-docs.js
├── SECURITY.md
├── server.json
├── src
│   ├── clients
│   │   ├── base
│   │   │   ├── http-client.ts
│   │   │   ├── oauth-token.ts
│   │   │   └── ocapi-auth-client.ts
│   │   ├── best-practices-client.ts
│   │   ├── cartridge-generation-client.ts
│   │   ├── docs
│   │   │   ├── class-content-parser.ts
│   │   │   ├── class-name-resolver.ts
│   │   │   ├── documentation-scanner.ts
│   │   │   ├── index.ts
│   │   │   └── referenced-types-extractor.ts
│   │   ├── docs-client.ts
│   │   ├── log-client.ts
│   │   ├── logs
│   │   │   ├── index.ts
│   │   │   ├── log-analyzer.ts
│   │   │   ├── log-client.ts
│   │   │   ├── log-constants.ts
│   │   │   ├── log-file-discovery.ts
│   │   │   ├── log-file-reader.ts
│   │   │   ├── log-formatter.ts
│   │   │   ├── log-processor.ts
│   │   │   ├── log-types.ts
│   │   │   └── webdav-client-manager.ts
│   │   ├── ocapi
│   │   │   ├── code-versions-client.ts
│   │   │   ├── site-preferences-client.ts
│   │   │   └── system-objects-client.ts
│   │   ├── ocapi-client.ts
│   │   └── sfra-client.ts
│   ├── config
│   │   ├── configuration-factory.ts
│   │   └── dw-json-loader.ts
│   ├── core
│   │   ├── handlers
│   │   │   ├── abstract-log-tool-handler.ts
│   │   │   ├── base-handler.ts
│   │   │   ├── best-practices-handler.ts
│   │   │   ├── cartridge-handler.ts
│   │   │   ├── client-factory.ts
│   │   │   ├── code-version-handler.ts
│   │   │   ├── docs-handler.ts
│   │   │   ├── job-log-handler.ts
│   │   │   ├── job-log-tool-config.ts
│   │   │   ├── log-handler.ts
│   │   │   ├── log-tool-config.ts
│   │   │   ├── sfra-handler.ts
│   │   │   ├── system-object-handler.ts
│   │   │   └── validation-helpers.ts
│   │   ├── server.ts
│   │   └── tool-definitions.ts
│   ├── index.ts
│   ├── main.ts
│   ├── services
│   │   ├── file-system-service.ts
│   │   ├── index.ts
│   │   └── path-service.ts
│   ├── tool-configs
│   │   ├── best-practices-tool-config.ts
│   │   ├── cartridge-tool-config.ts
│   │   ├── code-version-tool-config.ts
│   │   ├── docs-tool-config.ts
│   │   ├── job-log-tool-config.ts
│   │   ├── log-tool-config.ts
│   │   ├── sfra-tool-config.ts
│   │   └── system-object-tool-config.ts
│   ├── types
│   │   └── types.ts
│   └── utils
│       ├── cache.ts
│       ├── job-log-tool-config.ts
│       ├── job-log-utils.ts
│       ├── log-cache.ts
│       ├── log-tool-config.ts
│       ├── log-tool-constants.ts
│       ├── log-tool-utils.ts
│       ├── logger.ts
│       ├── ocapi-url-builder.ts
│       ├── path-resolver.ts
│       ├── query-builder.ts
│       ├── utils.ts
│       └── validator.ts
├── tests
│   ├── __mocks__
│   │   ├── docs-client.ts
│   │   ├── src
│   │   │   └── clients
│   │   │       └── base
│   │   │           └── http-client.js
│   │   └── webdav.js
│   ├── base-handler.test.ts
│   ├── base-http-client.test.ts
│   ├── best-practices-handler.test.ts
│   ├── cache.test.ts
│   ├── cartridge-handler.test.ts
│   ├── class-content-parser.test.ts
│   ├── class-name-resolver.test.ts
│   ├── client-factory.test.ts
│   ├── code-version-handler.test.ts
│   ├── code-versions-client.test.ts
│   ├── config.test.ts
│   ├── configuration-factory.test.ts
│   ├── docs-handler.test.ts
│   ├── documentation-scanner.test.ts
│   ├── file-system-service.test.ts
│   ├── job-log-handler.test.ts
│   ├── job-log-utils.test.ts
│   ├── log-client.test.ts
│   ├── log-handler.test.ts
│   ├── log-processor.test.ts
│   ├── logger.test.ts
│   ├── mcp
│   │   ├── AGENTS.md
│   │   ├── node
│   │   │   ├── activate-code-version-advanced.full-mode.programmatic.test.js
│   │   │   ├── code-versions.full-mode.programmatic.test.js
│   │   │   ├── generate-cartridge-structure.docs-only.programmatic.test.js
│   │   │   ├── get-available-best-practice-guides.docs-only.programmatic.test.js
│   │   │   ├── get-available-sfra-documents.programmatic.test.js
│   │   │   ├── get-best-practice-guide.docs-only.programmatic.test.js
│   │   │   ├── get-hook-reference.docs-only.programmatic.test.js
│   │   │   ├── get-job-execution-summary.full-mode.programmatic.test.js
│   │   │   ├── get-job-log-entries.full-mode.programmatic.test.js
│   │   │   ├── get-latest-debug.full-mode.programmatic.test.js
│   │   │   ├── get-latest-error.full-mode.programmatic.test.js
│   │   │   ├── get-latest-info.full-mode.programmatic.test.js
│   │   │   ├── get-latest-job-log-files.full-mode.programmatic.test.js
│   │   │   ├── get-latest-warn.full-mode.programmatic.test.js
│   │   │   ├── get-log-file-contents.full-mode.programmatic.test.js
│   │   │   ├── get-sfcc-class-documentation.docs-only.programmatic.test.js
│   │   │   ├── get-sfcc-class-info.docs-only.programmatic.test.js
│   │   │   ├── get-sfra-categories.docs-only.programmatic.test.js
│   │   │   ├── get-sfra-document.programmatic.test.js
│   │   │   ├── get-sfra-documents-by-category.docs-only.programmatic.test.js
│   │   │   ├── get-system-object-definition.full-mode.programmatic.test.js
│   │   │   ├── get-system-object-definitions.docs-only.programmatic.test.js
│   │   │   ├── get-system-object-definitions.full-mode.programmatic.test.js
│   │   │   ├── list-log-files.full-mode.programmatic.test.js
│   │   │   ├── list-sfcc-classes.docs-only.programmatic.test.js
│   │   │   ├── search-best-practices.docs-only.programmatic.test.js
│   │   │   ├── search-custom-object-attribute-definitions.full-mode.programmatic.test.js
│   │   │   ├── search-job-logs-by-name.full-mode.programmatic.test.js
│   │   │   ├── search-job-logs.full-mode.programmatic.test.js
│   │   │   ├── search-logs.full-mode.programmatic.test.js
│   │   │   ├── search-sfcc-classes.docs-only.programmatic.test.js
│   │   │   ├── search-sfcc-methods.docs-only.programmatic.test.js
│   │   │   ├── search-sfra-documentation.docs-only.programmatic.test.js
│   │   │   ├── search-site-preferences.full-mode.programmatic.test.js
│   │   │   ├── search-system-object-attribute-definitions.full-mode.programmatic.test.js
│   │   │   ├── search-system-object-attribute-groups.full-mode.programmatic.test.js
│   │   │   ├── summarize-logs.full-mode.programmatic.test.js
│   │   │   ├── tools.docs-only.programmatic.test.js
│   │   │   └── tools.full-mode.programmatic.test.js
│   │   ├── README.md
│   │   ├── test-fixtures
│   │   │   └── dw.json
│   │   └── yaml
│   │       ├── activate-code-version.docs-only.test.mcp.yml
│   │       ├── activate-code-version.full-mode.test.mcp.yml
│   │       ├── get_latest_error.test.mcp.yml
│   │       ├── get-available-best-practice-guides.docs-only.test.mcp.yml
│   │       ├── get-available-best-practice-guides.full-mode.test.mcp.yml
│   │       ├── get-available-sfra-documents.docs-only.test.mcp.yml
│   │       ├── get-available-sfra-documents.full-mode.test.mcp.yml
│   │       ├── get-best-practice-guide.docs-only.test.mcp.yml
│   │       ├── get-best-practice-guide.full-mode.test.mcp.yml
│   │       ├── get-code-versions.docs-only.test.mcp.yml
│   │       ├── get-code-versions.full-mode.test.mcp.yml
│   │       ├── get-hook-reference.docs-only.test.mcp.yml
│   │       ├── get-hook-reference.full-mode.test.mcp.yml
│   │       ├── get-job-execution-summary.full-mode.test.mcp.yml
│   │       ├── get-job-log-entries.full-mode.test.mcp.yml
│   │       ├── get-latest-debug.full-mode.test.mcp.yml
│   │       ├── get-latest-error.full-mode.test.mcp.yml
│   │       ├── get-latest-info.full-mode.test.mcp.yml
│   │       ├── get-latest-job-log-files.full-mode.test.mcp.yml
│   │       ├── get-latest-warn.full-mode.test.mcp.yml
│   │       ├── get-log-file-contents.full-mode.test.mcp.yml
│   │       ├── get-sfcc-class-documentation.docs-only.test.mcp.yml
│   │       ├── get-sfcc-class-documentation.full-mode.test.mcp.yml
│   │       ├── get-sfcc-class-info.docs-only.test.mcp.yml
│   │       ├── get-sfcc-class-info.full-mode.test.mcp.yml
│   │       ├── get-sfra-categories.docs-only.test.mcp.yml
│   │       ├── get-sfra-categories.full-mode.test.mcp.yml
│   │       ├── get-sfra-document.docs-only.test.mcp.yml
│   │       ├── get-sfra-document.full-mode.test.mcp.yml
│   │       ├── get-sfra-documents-by-category.docs-only.test.mcp.yml
│   │       ├── get-sfra-documents-by-category.full-mode.test.mcp.yml
│   │       ├── get-system-object-definition.docs-only.test.mcp.yml
│   │       ├── get-system-object-definition.full-mode.test.mcp.yml
│   │       ├── get-system-object-definitions.docs-only.test.mcp.yml
│   │       ├── get-system-object-definitions.full-mode.test.mcp.yml
│   │       ├── list-log-files.full-mode.test.mcp.yml
│   │       ├── list-sfcc-classes.docs-only.test.mcp.yml
│   │       ├── list-sfcc-classes.full-mode.test.mcp.yml
│   │       ├── search-best-practices.docs-only.test.mcp.yml
│   │       ├── search-best-practices.full-mode.test.mcp.yml
│   │       ├── search-custom-object-attribute-definitions.docs-only.test.mcp.yml
│   │       ├── search-custom-object-attribute-definitions.test.mcp.yml
│   │       ├── search-job-logs-by-name.full-mode.test.mcp.yml
│   │       ├── search-job-logs.full-mode.test.mcp.yml
│   │       ├── search-logs.full-mode.test.mcp.yml
│   │       ├── search-sfcc-classes.docs-only.test.mcp.yml
│   │       ├── search-sfcc-classes.full-mode.test.mcp.yml
│   │       ├── search-sfcc-methods.docs-only.test.mcp.yml
│   │       ├── search-sfcc-methods.full-mode.test.mcp.yml
│   │       ├── search-sfra-documentation.docs-only.test.mcp.yml
│   │       ├── search-sfra-documentation.full-mode.test.mcp.yml
│   │       ├── search-site-preferences.docs-only.test.mcp.yml
│   │       ├── search-site-preferences.full-mode.test.mcp.yml
│   │       ├── search-system-object-attribute-definitions.docs-only.test.mcp.yml
│   │       ├── search-system-object-attribute-definitions.full-mode.test.mcp.yml
│   │       ├── search-system-object-attribute-groups.docs-only.test.mcp.yml
│   │       ├── search-system-object-attribute-groups.full-mode.test.mcp.yml
│   │       ├── summarize-logs.full-mode.test.mcp.yml
│   │       ├── tools.docs-only.test.mcp.yml
│   │       └── tools.full-mode.test.mcp.yml
│   ├── oauth-token.test.ts
│   ├── ocapi-auth-client.test.ts
│   ├── ocapi-client.test.ts
│   ├── path-service.test.ts
│   ├── query-builder.test.ts
│   ├── referenced-types-extractor.test.ts
│   ├── servers
│   │   ├── sfcc-mock-server
│   │   │   ├── mock-data
│   │   │   │   └── ocapi
│   │   │   │       ├── code-versions.json
│   │   │   │       ├── custom-object-attributes-customapi.json
│   │   │   │       ├── custom-object-attributes-globalsettings.json
│   │   │   │       ├── custom-object-attributes-versionhistory.json
│   │   │   │       ├── site-preferences-ccv.json
│   │   │   │       ├── site-preferences-fastforward.json
│   │   │   │       ├── site-preferences-sfra.json
│   │   │   │       ├── site-preferences-storefront.json
│   │   │   │       ├── site-preferences-system.json
│   │   │   │       ├── system-object-attribute-groups-campaign.json
│   │   │   │       ├── system-object-attribute-groups-category.json
│   │   │   │       ├── system-object-attribute-groups-order.json
│   │   │   │       ├── system-object-attribute-groups-product.json
│   │   │   │       ├── system-object-attribute-groups-sitepreferences.json
│   │   │   │       ├── system-object-attributes-customeraddress.json
│   │   │   │       ├── system-object-attributes-product-expanded.json
│   │   │   │       ├── system-object-attributes-product.json
│   │   │   │       ├── system-object-definition-category.json
│   │   │   │       ├── system-object-definition-customer.json
│   │   │   │       ├── system-object-definition-customeraddress.json
│   │   │   │       ├── system-object-definition-order.json
│   │   │   │       ├── system-object-definition-product.json
│   │   │   │       ├── system-object-definitions-old.json
│   │   │   │       └── system-object-definitions.json
│   │   │   ├── package-lock.json
│   │   │   ├── package.json
│   │   │   ├── README.md
│   │   │   ├── scripts
│   │   │   │   └── setup-logs.js
│   │   │   ├── server.js
│   │   │   └── src
│   │   │       ├── app.js
│   │   │       ├── config
│   │   │       │   └── server-config.js
│   │   │       ├── middleware
│   │   │       │   ├── auth.js
│   │   │       │   ├── cors.js
│   │   │       │   └── logging.js
│   │   │       ├── routes
│   │   │       │   ├── ocapi
│   │   │       │   │   ├── code-versions-handler.js
│   │   │       │   │   ├── oauth-handler.js
│   │   │       │   │   ├── ocapi-error-utils.js
│   │   │       │   │   ├── ocapi-utils.js
│   │   │       │   │   ├── site-preferences-handler.js
│   │   │       │   │   └── system-objects-handler.js
│   │   │       │   ├── ocapi.js
│   │   │       │   └── webdav.js
│   │   │       └── utils
│   │   │           ├── mock-data-loader.js
│   │   │           └── webdav-xml.js
│   │   └── sfcc-mock-server-manager.ts
│   ├── sfcc-mock-server.test.ts
│   ├── site-preferences-client.test.ts
│   ├── system-objects-client.test.ts
│   ├── utils.test.ts
│   ├── validation-helpers.test.ts
│   └── validator.test.ts
├── tsconfig.json
└── tsconfig.test.json
```

# Files

--------------------------------------------------------------------------------
/docs/dw_web/URLUtils.md:
--------------------------------------------------------------------------------

```markdown
## Package: dw.web

# Class URLUtils

## Inheritance Hierarchy

- Object
  - dw.web.URLUtils

## Description

URL utility class. Methods in this class generate URLs used in Commerce Cloud Digital. Site related information in the generated URLs is determined from the current HTTP request. Methods belong to two groups: generating absolute and relative URLs. Absolute URL methods are further subdivided into those creating URLs with specified protocol and those using protocol information from the request. Corresponding to the protocol, the host name from the HTTP/HTTPS host preference is used. If preference is not set, the host name from the current request is included in resulting absolute URL. URLs do not include a session ID anymore. The appendSID argument therefore does not have any effect. When creating a pipeline URL with one of the methods url(), http(), https() or abs() by default the generated URL is a Commerce Cloud Digital URL ("/on/demandware.store/..."). If search friendly URLs are enabled (old or new) the methods generate search friendly URLs. Search friendly URLs are only generated for certain pipeline names. Here a list of these pipeline names: Product-Show with a 'pid' parameter [productID] - search friendly URL for a product Product-ShowInCategory with the 'cgid' parameter [categoryID] and 'pid' parameter [productID] - search friendly URL for a product shown in a specific category Search-Show with a 'cgid' parameter [categoryID] - search friendly URL for a category Search-Show with a 'pid' parameter [productID] - search friendly URL for a product Search-ShowContent with a 'fdid' parameter [folderID] - search friendly URL for a folder (ONLY works with new storefront URLs) Page-Show with a 'cid' parameter [contentID] - search friendly URL for a content page Parameter transform: Some methods allow the specification of image transformation parameters. Image transformation is only performed if the Dynamic Imaging Service (DIS) is available for the Commerce Cloud Digital instance. Otherwise a standard static content URL is returned. The to-be-transformed image needs to be hosted on Digital. Image transformation parameters are specified as JavaScript object literal. They are translated into URL parameters. See Create Image Transformation URLs. Type of transformation Parameters Description Scale an image scaleWidth scaleHeight scaleMode The scaleWidth and scaleHeight parameters are both integers; setting one of these parameters triggers a scaling operation. If both are provided, the one that scales the image less is used to calculate the scale factor. The image is then automatically cropped accord to the second dimension, with a centered position of the cropped area. If the parameter would scale the image larger, only this operation is applied, if the image remains within acceptable pixel dimensions. Note: scaleMode can only be used in combination with scaleHeight and scaleWidth. The scaleMode parameter can be set to cut or fit. The default scaleMode is cut, the behavior of which is explained above. If you specify fit as the scaleMode, the system scales the image into the given box of dimensions while keeping the aspect ratio (possibly resulting in a smaller image in one dimension). Overlay an image imageX imageY imageURI The imageX and imageY parameters are both integers. Valid values for these parameters are 0 or greater. Supported formats are png, jpg, jp2, and gif. The imageURI parameter can be set to the absolute path of the overlaid image. The value of the imageURI parameter must be given in proper URL encoding, and it cannot exceed 400 characters in length. The path may include query string parameters, which supports dynamically generating the overlaid image itself through this service; that is, the overlaid image can itself be a transformed image. If the overlaid image extends over the primary image's boundaries, the overlaid image is cropped so that it fits directly over the primary image. Crop an image cropX cropY cropWidth cropHeight The cropX, cropY, cropWidth, cropHeight parameters are integers. All four parameters must be specified to trigger a cropping operation. Valid values for the cropX and cropY parameters are 0 or greater. If the crop location defined by cropX and cropY is outside the image area, nothing is cropped. Valid values for the cropWidth and cropHeight parameters are 10 or greater. If the cropWidth and cropHeight parameters specify a size that is greater than the original image, the crop area is reduced to the actual image area. If cropWidth and cropHeight are 0 or less, no transformation is applied. Format an image format The format parameter specifies the target format of the image. Supported formats are png, jpg, jp2, and gif. If no target format is specified, no format conversion is performed. The source image file is references with attribute relPath. Source image's format is recognized by the file extension which must be tif, tiff, jpg, jpeg, png, or gif. In the generated URL the file extension of the target format is used in the URL path. This is to make sure the image is loaded from an URL with a matching file extension. The source format is provided as URL parameter. Adjust image compression quality quality The quality parameter specifies a quality setting for jpg and jp2 images, and specifies the compression level for png images. For jpg and jp2 images, you can set values from 1–100 for the highest quality. The default quality is 80. If you're not changing the default quality, you don't need to pass in a value. For png images, the quality setting has no effect on the appearance of the png, since the compression is always lossless. Instead you can use the quality setting to set the zlib compression level and filter-type for PNG images. The tens digit sets the zlib compression level(1-9). The ones digit sets the filter type. If the png setting is not present or set to 0, it uses a default value of 75. If this setting is set to 100, it actually equals the quality setting 90. Adjust Metadata stripping strip The strip parameter specifies if metadata like EXIF and color profiles is stripped from the image during transformation. Valid values for the strip parameter are between true and false. The default is true Change background color bgcolor(color) or bgcolor(color+alpha) The bgcolor parameter specifies the background color for images that support transparency as well as JPEG images when being converted from a format that supports transparency. Optionally, alpha setting for PNG images are also supported. bgcolor expects a 6 digit hexadecimal value of RGB with an optional two hexadecimal characters representing alpha value that determines transparency. FF0000 = Red FF000077 = Red with 50% transparency Alpha values are optional. When the alpha value is omitted, the resulting color is opaque. Alpha values are only valid when the image output format is PNG. Example: The following code var url = URLUtils.imageURL('/somepath/image.png', {scaleWidth: 100, format: 'jpg'}); will produce an image transformation URL like http://<image server host name>/.../on/demandware.static/.../somepath/image.jpg?sw=100&sfrm=png.

## Constants

### CONTEXT_CATALOG

**Type:** String = "ContextCatalog"

ID for a catalog context. See staticURL() method.

### CONTEXT_LIBRARY

**Type:** String = "ContextLibrary"

ID for a library context. See staticURL() method.

### CONTEXT_SITE

**Type:** String = "ContextSite"

ID for a site context (= assigned cartridges). See staticURL() method.

## Properties

## Constructor Summary

## Method Summary

### abs

**Signature:** `static abs(action : URLAction, params : URLParameter...) : URL`

Return an absolute URL with protocol and host from the current request.

### abs

**Signature:** `static abs(appendSID : boolean, action : URLAction, params : URLParameter...) : URL`

Return an absolute URL with protocol and host from current request.

### abs

**Signature:** `static abs(action : String, namesAndParams : String...) : URL`

Return an absolute URL with protocol and host from current request.

### abs

**Signature:** `static abs(appendSID : boolean, action : String, namesAndParams : String...) : URL`

Return an absolute URL with protocol and host from current request.

### absImage

**Signature:** `static absImage(context : String, contextID : String, relPath : String, transform : Object) : URL`

Similar to absStatic( String, String, String ) this method returns a static URL for a resource in the current site.

### absImage

**Signature:** `static absImage(relPath : String, transform : Object) : URL`

Similar to absStatic( String ) this method returns a static URL for a resource in the current site.

### absStatic

**Signature:** `static absStatic(context : String, contextID : String, relPath : String) : URL`

Returns the absolute URL to the static location of the specified context.

### absStatic

**Signature:** `static absStatic(relPath : String) : URL`

The method returns a static URL for a resource in the current site.

### absWebRoot

**Signature:** `static absWebRoot() : URL`

Return an absolute web root URL with protocol and host same as the current request.

### continueURL

**Signature:** `static continueURL() : URL`

Return a URL, which can be used in combination with an Interaction Continue Node, to continue the user interface flow.

### home

**Signature:** `static home() : URL`

Generates a hostname-only url if an alias is set, or an url to the Home-Show pipeline in the default format using the protocol of the incoming request.

### http

**Signature:** `static http(action : URLAction, params : URLParameter...) : URL`

Return an absolute URL with HTTP protocol.

### http

**Signature:** `static http(appendSID : boolean, action : URLAction, params : URLParameter...) : URL`

Return an absolute URL with HTTP protocol.

### http

**Signature:** `static http(action : String, namesAndParams : String...) : URL`

Return an absolute URL with HTTP protocol.

### http

**Signature:** `static http(appendSID : boolean, action : String, namesAndParams : String...) : URL`

Return an absolute URL with HTTP protocol.

### httpContinue

**Signature:** `static httpContinue() : URL`

Return a URL, which can be used in combination with an Interaction Continue Node, to continue the user interface flow.

### httpHome

**Signature:** `static httpHome() : URL`

Generates a hostname-only url if an alias is set, or an url to the Home-Show pipeline in the default format using the HTTP protocol.

### httpImage

**Signature:** `static httpImage(context : String, contextID : String, relPath : String, transform : Object) : URL`

Similar to httpStatic( String, String, String ) this method returns a static URL for a resource in the current site.

### httpImage

**Signature:** `static httpImage(host : String, context : String, contextID : String, relPath : String, transform : Object) : URL`

Similar to httpStatic( String, String, String ) this method returns a static URL for a resource in the current site.

### httpImage

**Signature:** `static httpImage(relPath : String, transform : Object) : URL`

Similar to httpStatic( String ) this method returns a static URL for a resource in the current site.

### httpImage

**Signature:** `static httpImage(host : String, relPath : String, transform : Object) : URL`

Similar to httpStatic( String ) this method returns a static URL for a resource in the current site.

### https

**Signature:** `static https(action : URLAction, params : URLParameter...) : URL`

Return an absolute URL with HTTPS protocol.

### https

**Signature:** `static https(appendSID : boolean, action : URLAction, params : URLParameter...) : URL`

Return an absolute URL with HTTPS protocol.

### https

**Signature:** `static https(action : String, namesAndParams : String...) : URL`

Return an absolute URL with HTTPS protocol.

### https

**Signature:** `static https(appendSID : boolean, action : String, namesAndParams : String...) : URL`

Return an absolute URL with HTTPS protocol.

### httpsContinue

**Signature:** `static httpsContinue() : URL`

Return a URL, which can be used in combination with an Interaction Continue Node, to continue the user interface flow.

### httpsHome

**Signature:** `static httpsHome() : URL`

Generates a hostname-only url if an alias is set, or an url to the Home-Show pipeline in the default format using the HTTPS protocol.

### httpsImage

**Signature:** `static httpsImage(context : String, contextID : String, relPath : String, transform : Object) : URL`

Similar to httpsStatic( String, String, String ) this method returns a static URL for a resource in the current site.

### httpsImage

**Signature:** `static httpsImage(host : String, context : String, contextID : String, relPath : String, transform : Object) : URL`

Similar to httpsStatic( String, String, String ) this method returns a static URL for a resource in the current site.

### httpsImage

**Signature:** `static httpsImage(relPath : String, transform : Object) : URL`

Similar to httpsStatic( String ) this method returns a static URL for a resource in the current site.

### httpsImage

**Signature:** `static httpsImage(host : String, relPath : String, transform : Object) : URL`

Similar to httpsStatic( String ) this method returns a static URL for a resource in the current site.

### httpsStatic

**Signature:** `static httpsStatic(context : String, contextID : String, relPath : String) : URL`

Returns the absolute URL to the static location of the specified context.

### httpsStatic

**Signature:** `static httpsStatic(host : String, context : String, contextID : String, relPath : String) : URL`

Returns the absolute URL to the static location of the specified context.

### httpsStatic

**Signature:** `static httpsStatic(relPath : String) : URL`

The method returns a static URL for a resource in the current site.

### httpsStatic

**Signature:** `static httpsStatic(host : String, relPath : String) : URL`

The method returns a static URL for a resource in the current site.

### httpStatic

**Signature:** `static httpStatic(context : String, contextID : String, relPath : String) : URL`

Returns the absolute URL to the static location of the specified context.

### httpStatic

**Signature:** `static httpStatic(host : String, context : String, contextID : String, relPath : String) : URL`

Returns the absolute URL to the static location of the specified context.

### httpStatic

**Signature:** `static httpStatic(relPath : String) : URL`

The method returns a static URL for a resource in the current site.

### httpStatic

**Signature:** `static httpStatic(host : String, relPath : String) : URL`

The method returns a static URL for a resource in the current site.

### httpsWebRoot

**Signature:** `static httpsWebRoot() : URL`

Return an absolute web root URL with HTTPS protocol and host and domain information from the current request.

### httpWebRoot

**Signature:** `static httpWebRoot() : URL`

Return an absolute web root URL with HTTP protocol and host information from current request.

### imageURL

**Signature:** `static imageURL(context : String, contextID : String, relPath : String, transform : Object) : URL`

Similar to staticURL( String, String, String ) this method returns a static URL for a resource in the current site.

### imageURL

**Signature:** `static imageURL(relPath : String, transform : Object) : URL`

Similar to staticURL( String ) this method returns a static URL for a resource in the current site.

### sessionRedirect

**Signature:** `static sessionRedirect(host : String, url : URL) : URL`

This method is used to create a URL that redirects to a location in the current site with another host name.

### sessionRedirectHttpOnly

**Signature:** `static sessionRedirectHttpOnly(host : String, url : URL) : URL`

This method is used to create a URL that redirects to a location in the current site with another host name.

### staticURL

**Signature:** `static staticURL(context : String, contextID : String, relPath : String) : URL`

Returns the relative URL to the static location of the specified context.

### staticURL

**Signature:** `static staticURL(relPath : String) : URL`

The method returns a static URL for a resource in the current site.

### url

**Signature:** `static url(action : URLAction, params : URLParameter...) : URL`

Return a relative URL.

### url

**Signature:** `static url(appendSID : boolean, action : URLAction, params : URLParameter...) : URL`

Return a relative URL.

### url

**Signature:** `static url(action : String, namesAndParams : String...) : URL`

Return a relative URL.

### url

**Signature:** `static url(appendSID : boolean, action : String, namesAndParams : String...) : URL`

Return a relative URL.

### webRoot

**Signature:** `static webRoot() : URL`

Return a relative web root URL.

## Method Detail

## Method Details

### abs

**Signature:** `static abs(action : URLAction, params : URLParameter...) : URL`

**Description:** Return an absolute URL with protocol and host from the current request.

**Parameters:**

- `action`: URL action
- `params`: URL parameters

**Returns:**

an absolute URL with protocol and host from the current request.

---

### abs

**Signature:** `static abs(appendSID : boolean, action : URLAction, params : URLParameter...) : URL`

**Description:** Return an absolute URL with protocol and host from current request. Note: The use of this method is deprecated, because session URL rewriting is no longer supported. Use the corresponding abs() method without the appendSID parameter instead.

**Deprecated:**

Use abs(URLAction, URLParameter...) instead.

**Parameters:**

- `appendSID`: when true the resulting URL will include session ID.
- `action`: URL action
- `params`: URL parameters

**Returns:**

an absolute URL with protocol and host from current request.

---

### abs

**Signature:** `static abs(action : String, namesAndParams : String...) : URL`

**Description:** Return an absolute URL with protocol and host from current request.

**Parameters:**

- `action`: the pipeline, which should be invoked, e.g.: 'Pipeline-StartNode'
- `namesAndParams`: several strings with name=value pairs, for example: 'pid', 'value1', 'cgid', value2'.

**Returns:**

an absolute URL with protocol and host from current request.

---

### abs

**Signature:** `static abs(appendSID : boolean, action : String, namesAndParams : String...) : URL`

**Description:** Return an absolute URL with protocol and host from current request. Note: The use of this method is deprecated, because session URL rewriting is no longer supported. Use the corresponding method abs() without the appendSID parameter instead.

**Deprecated:**

Use abs(String, String...) instead.

**Parameters:**

- `appendSID`: when true the resulting URL will include session ID.
- `action`: the pipeline, which should be invoked, e.g.: 'Pipeline-StartNode'
- `namesAndParams`: several strings with name=value pairs, e.g.: 'pid', 'value1', 'cgid', value2'.

**Returns:**

an absolute URL with protocol and host from current request.

---

### absImage

**Signature:** `static absImage(context : String, contextID : String, relPath : String, transform : Object) : URL`

**Description:** Similar to absStatic( String, String, String ) this method returns a static URL for a resource in the current site. The method assumes, that the URL refers to an image an supports an additional parameter with optional image transformation parameters. The image transformation parameters must be specified as JavaScript object literal.

**Parameters:**

- `context`: Either CONTEXT_CATALOG, CONTEXT_LIBRARY or CONTEXT_SITE
- `contextID`: Optional context id, currently only used to specify a catalog id
- `relPath`: Relative path within the catalog or library
- `transform`: Object with transformation parameters (see class header)

**Returns:**

URL for the specified location

---

### absImage

**Signature:** `static absImage(relPath : String, transform : Object) : URL`

**Description:** Similar to absStatic( String ) this method returns a static URL for a resource in the current site. The method assumes, that the URL refers to an image an supports an additional parameter with optional image transformation parameters. The image transformation parameters must be specified as JavaScript object literal.

**Parameters:**

- `relPath`: the relative path of the file
- `transform`: Object with transformation parameters (see class header)

**Returns:**

the URL for the specified image resource

---

### absStatic

**Signature:** `static absStatic(context : String, contextID : String, relPath : String) : URL`

**Description:** Returns the absolute URL to the static location of the specified context. The context can be either a specific catalog (URLUtils.CONTEXT_CATALOG), a content library (URLUtils.CONTEXT_LIBRARY) or a site (URLUtils.CONTEXT_SITE). Respectively either a URL to images in a catalog, a library or a site are created. The contextID parameter is optional and only used for context CONTEXT_CATALOG, where is specifies the ID of a specific catalog. If defined, the static URL for the specified catalog is returned. If not defined, the static URL for the current site catalog is returned (or null if no site catalog is defined). For context CONTEXT_SITE and context CONTEXT_LIBRARY, the contextID parameter is ignored and the static URL for the current site / site library is returned. Parameter relPath can be defined to specify the relative path within the context-specific path. The method returns an absolute URL with the same protocol as the current request.

**Parameters:**

- `context`: Either CONTEXT_CATALOG, CONTEXT_LIBRARY or CONTEXT_SITE
- `contextID`: Optional context id, currently only used to specify a catalog id
- `relPath`: Relative path within the catalog or library

**Returns:**

URL for the specified location

---

### absStatic

**Signature:** `static absStatic(relPath : String) : URL`

**Description:** The method returns a static URL for a resource in the current site. Site resources are actually located in the cartridges associated with the site. This resources are typically logos, button images, CSS files and JavaScript files. The method will transform the given relative path to include cache related information, which enables better cache control. The created URL is an absolute URL with same protocol as the current incoming request. Note: This method replaces the original mechanisms of using the webroot() method to construct a URL. The new method is better integrated into the overall cache management.

**Parameters:**

- `relPath`: the relative path of the file

**Returns:**

the URL for the specified location

---

### absWebRoot

**Signature:** `static absWebRoot() : URL`

**Description:** Return an absolute web root URL with protocol and host same as the current request. Note: The use of this method is deprecated. The method absStatic() should be used instead. It provides better cache integration.

**Deprecated:**

Use absStatic(String) or absStatic(String, String, String) instead.

**Returns:**

an absolute web root URL with protocol, host from current request.

---

### continueURL

**Signature:** `static continueURL() : URL`

**Description:** Return a URL, which can be used in combination with an Interaction Continue Node, to continue the user interface flow.

**Returns:**

an absolute URL with protocol and host from current context request.

---

### home

**Signature:** `static home() : URL`

**Description:** Generates a hostname-only url if an alias is set, or an url to the Home-Show pipeline in the default format using the protocol of the incoming request.

**Returns:**

a hostname-only url if an alias is set, or an url to the Home-Show pipeline in the default format using the protocol of the incoming request. Uses the default locale of the site making the request.

---

### http

**Signature:** `static http(action : URLAction, params : URLParameter...) : URL`

**Description:** Return an absolute URL with HTTP protocol. If an HTTP host is configured in the preferences the returned URL will include that host, otherwise, the host from current request is used.

**Parameters:**

- `action`: URL action
- `params`: URL parameters

**Returns:**

an absolute URL with HTTP protocol.

---

### http

**Signature:** `static http(appendSID : boolean, action : URLAction, params : URLParameter...) : URL`

**Description:** Return an absolute URL with HTTP protocol. If an HTTP host is configured in the preferences the returned URL will include that host, otherwise, the host from current request is used. Note: The use of this method is deprecated, because session URL rewriting is no longer supported. Use the corresponding http() method without the appendSID parameter instead.

**Deprecated:**

Use http(URLAction, URLParameter...) instead.

**Parameters:**

- `appendSID`: when true the resulting URL will include session ID.
- `action`: URL action
- `params`: URL parameters

**Returns:**

an absolute URL with HTTP protocol.

---

### http

**Signature:** `static http(action : String, namesAndParams : String...) : URL`

**Description:** Return an absolute URL with HTTP protocol. If an HTTP host is configured in the preferences the returned URL will include that host, otherwise, the host from current request is used.

**Parameters:**

- `action`: the pipeline, which should be invoked, e.g.: 'Pipeline-StartNode'
- `namesAndParams`: several strings with name=value pairs, e.g.: 'pid', 'value1', 'cgid', value2'.

**Returns:**

an absolute URL with HTTP protocol.

---

### http

**Signature:** `static http(appendSID : boolean, action : String, namesAndParams : String...) : URL`

**Description:** Return an absolute URL with HTTP protocol. If an HTTP host is configured in the preferences the returned URL will include that host, otherwise, the host from current request is used. Note: The use of this method is deprecated, because session URL rewriting is no longer supported. Use the corresponding http() method without the appendSID parameter instead.

**Deprecated:**

Use http(String, String...) instead.

**Parameters:**

- `appendSID`: when true the resulting URL will include session ID.
- `action`: the pipeline, which should be invoked, e.g.: 'Pipeline-StartNode'
- `namesAndParams`: several strings with name=value pairs, e.g.: 'pid', 'value1', 'cgid', value2'.

**Returns:**

an absolute URL with HTTP protocol.

---

### httpContinue

**Signature:** `static httpContinue() : URL`

**Description:** Return a URL, which can be used in combination with an Interaction Continue Node, to continue the user interface flow. For security reasons the httpContinue() function returns a HTTPS continue URL if the interaction flow has started with a HTTPS request. Otherwise a HTTP continue URL is returned. If an HTTP/HTTPS host is configured in the preferences the returned URL will include that host, otherwise, the host from current request is used.

**Returns:**

an absolute URL with HTTP protocol.

---

### httpHome

**Signature:** `static httpHome() : URL`

**Description:** Generates a hostname-only url if an alias is set, or an url to the Home-Show pipeline in the default format using the HTTP protocol.

**Returns:**

a hostname-only url if an alias is set, or an url to the Home-Show pipeline in the default format using the HTTP protocol.

---

### httpImage

**Signature:** `static httpImage(context : String, contextID : String, relPath : String, transform : Object) : URL`

**Description:** Similar to httpStatic( String, String, String ) this method returns a static URL for a resource in the current site. The method assumes, that the URL refers to an image an supports an additional parameter with optional image transformation parameters. The image transformation parameters must be specified as JavaScript object literal.

**Parameters:**

- `context`: Either CONTEXT_CATALOG, CONTEXT_LIBRARY or CONTEXT_SITE
- `contextID`: Optional context id, currently only used to specify a catalog id
- `relPath`: Relative path within the catalog or library
- `transform`: Object with transformation parameters (see class header)

**Returns:**

URL for the specified location

---

### httpImage

**Signature:** `static httpImage(host : String, context : String, contextID : String, relPath : String, transform : Object) : URL`

**Description:** Similar to httpStatic( String, String, String ) this method returns a static URL for a resource in the current site. The method assumes, that the URL refers to an image an supports an additional parameter with optional image transformation parameters. The image transformation parameters must be specified as JavaScript object literal. The host parameter is optional. If provided, then this host name will be used in precedence to the host name provided by the current request. The specified host name must be defined in the alias settings for the site, otherwise an exception will be thrown.

**Parameters:**

- `host`: Optional host name, used to set the host explicitly.
- `context`: Either CONTEXT_CATALOG, CONTEXT_LIBRARY or CONTEXT_SITE
- `contextID`: Optional context id, currently only used to specify a catalog id
- `relPath`: Relative path within the catalog or library
- `transform`: Object with transformation parameters

**Returns:**

URL for the specified location

---

### httpImage

**Signature:** `static httpImage(relPath : String, transform : Object) : URL`

**Description:** Similar to httpStatic( String ) this method returns a static URL for a resource in the current site. The method assumes, that the URL refers to an image an supports an additional parameter with optional image transformation parameters. The image transformation parameters must be specified as JavaScript object literal.

**Parameters:**

- `relPath`: the relative path of the file
- `transform`: Object with transformation parameters (see class header)

**Returns:**

the URL for the specified location

---

### httpImage

**Signature:** `static httpImage(host : String, relPath : String, transform : Object) : URL`

**Description:** Similar to httpStatic( String ) this method returns a static URL for a resource in the current site. The method assumes, that the URL refers to an image an supports an additional parameter with optional image transformation parameters. The image transformation parameters must be specified as JavaScript object literal. The host parameter is optional. If provided, then this host name will be used in precedence to the host name provided by the current request. The specified host name must be defined in the alias settings for the site, otherwise an exception will be thrown.

**Parameters:**

- `host`: Optional host name, used to set the host explicitly.
- `relPath`: the relative path of the file
- `transform`: Object with transformation parameters

**Returns:**

the URL for the specified location

---

### https

**Signature:** `static https(action : URLAction, params : URLParameter...) : URL`

**Description:** Return an absolute URL with HTTPS protocol. If an HTTPS host is configured in the preferences the returned URL will include that host, otherwise, the host from current request is used.

**Parameters:**

- `action`: URL action
- `params`: URL parameters

**Returns:**

an absolute URL with HTTPS protocol.

---

### https

**Signature:** `static https(appendSID : boolean, action : URLAction, params : URLParameter...) : URL`

**Description:** Return an absolute URL with HTTPS protocol. If an HTTPS host is configured in the preferences the returned URL will include that host, otherwise, the host from current request is used. Note: The use of this method is deprecated, because session URL rewriting is no longer supported. Use the corresponding https() method without the appendSID parameter instead.

**Deprecated:**

Use the https(URLAction, URLParameter...) method instead.

**Parameters:**

- `appendSID`: when true the resulting URL will include session ID.
- `action`: URL action
- `params`: URL parameters

**Returns:**

an absolute URL with HTTPS protocol.

---

### https

**Signature:** `static https(action : String, namesAndParams : String...) : URL`

**Description:** Return an absolute URL with HTTPS protocol. If an HTTPS host is configured in the preferences the returned URL will include that host, otherwise, the host from current request is used.

**Parameters:**

- `action`: the pipeline, which should be invoked, e.g.: 'Pipeline-StartNode'
- `namesAndParams`: several strings with name=value pairs, e.g.: 'pid', 'value1', 'cgid', value2'.

**Returns:**

an absolute URL with HTTPS protocol.

---

### https

**Signature:** `static https(appendSID : boolean, action : String, namesAndParams : String...) : URL`

**Description:** Return an absolute URL with HTTPS protocol. If an HTTPS host is configured in the preferences the returned URL will include that host, otherwise, the host from current request is used. Note: The use of this method is deprecated, because session URL rewriting is no longer supported. Use the corresponding https() method without the appendSID parameter instead.

**Deprecated:**

Use the https(String, String...) method instead.

**Parameters:**

- `appendSID`: when true the resulting URL will include session ID
- `action`: the pipeline, which should be invoked, e.g.: 'Pipeline-StartNode'
- `namesAndParams`: several strings with name=value pairs, e.g.: 'pid', 'value1', 'cgid', value2'.

**Returns:**

an absolute URL with HTTPS protocol.

---

### httpsContinue

**Signature:** `static httpsContinue() : URL`

**Description:** Return a URL, which can be used in combination with an Interaction Continue Node, to continue the user interface flow. An absolute URL with HTTPS protocol is returned. If an HTTPS host is configured in the preferences the returned URL will include that host, otherwise, the host from current request is used.

**Returns:**

an absolute URL with HTTPS protocol.

---

### httpsHome

**Signature:** `static httpsHome() : URL`

**Description:** Generates a hostname-only url if an alias is set, or an url to the Home-Show pipeline in the default format using the HTTPS protocol.

**Returns:**

a hostname-only url if an alias is set, or an url to the Home-Show pipeline in the default format using the HTTPS protocol..

---

### httpsImage

**Signature:** `static httpsImage(context : String, contextID : String, relPath : String, transform : Object) : URL`

**Description:** Similar to httpsStatic( String, String, String ) this method returns a static URL for a resource in the current site. The method assumes, that the URL refers to an image an supports an additional parameter with optional image transformation parameters. The image transformation parameters must be specified as JavaScript object literal.

**Parameters:**

- `context`: Either CONTEXT_CATALOG, CONTEXT_LIBRARY or CONTEXT_SITE
- `contextID`: Optional context id, currently only used to specify a catalog id
- `relPath`: Relative path within the catalog or library
- `transform`: Object with transformation parameters (see class header)

**Returns:**

URL for the specified location

---

### httpsImage

**Signature:** `static httpsImage(host : String, context : String, contextID : String, relPath : String, transform : Object) : URL`

**Description:** Similar to httpsStatic( String, String, String ) this method returns a static URL for a resource in the current site. The method assumes, that the URL refers to an image an supports an additional parameter with optional image transformation parameters. The image transformation parameters must be specified as JavaScript object literal. The host parameter is optional. If provided, then this host name will be used in precedence to the host name provided by the current request. The specified host name must be defined in the alias settings for the site, otherwise an exception will be thrown.

**Parameters:**

- `host`: Optional host name, used to set the host explicitly.
- `context`: Either CONTEXT_CATALOG, CONTEXT_LIBRARY or CONTEXT_SITE
- `contextID`: Optional context id, currently only used to specify a catalog id
- `relPath`: Relative path within the catalog or library
- `transform`: Object with transformation parameters

**Returns:**

URL for the specified location

---

### httpsImage

**Signature:** `static httpsImage(relPath : String, transform : Object) : URL`

**Description:** Similar to httpsStatic( String ) this method returns a static URL for a resource in the current site. The method assumes, that the URL refers to an image an supports an additional parameter with optional image transformation parameters. The image transformation parameters must be specified as JavaScript object literal.

**Parameters:**

- `relPath`: the relative path of the file
- `transform`: Object with transformation parameters (see class header)

**Returns:**

the URL for the specified location

---

### httpsImage

**Signature:** `static httpsImage(host : String, relPath : String, transform : Object) : URL`

**Description:** Similar to httpsStatic( String ) this method returns a static URL for a resource in the current site. The method assumes, that the URL refers to an image an supports an additional parameter with optional image transformation parameters. The image transformation parameters must be specified as JavaScript object literal. The host parameter is optional. If provided, then this host name will be used in precedence to the host name provided by the current request. The specified host name must be defined in the alias settings for the site, otherwise an exception will be thrown.

**Parameters:**

- `host`: Optional host name, used to set the host explicitly.
- `relPath`: the relative path of the file
- `transform`: Object with transformation parameters

**Returns:**

the URL for the specified location

---

### httpsStatic

**Signature:** `static httpsStatic(context : String, contextID : String, relPath : String) : URL`

**Description:** Returns the absolute URL to the static location of the specified context. The context can be either a specific catalog (URLUtils.CONTEXT_CATALOG), a content library (URLUtils.CONTEXT_LIBRARY) or a site (URLUtils.CONTEXT_SITE). Respectively either a URL to images in a catalog, a library or a site are created. The contextID parameter is optional and only used for context CONTEXT_CATALOG, where is specifies the ID of a specific catalog. If defined, the static URL for the specified catalog is returned. If not defined, the static URL for the current site catalog is returned (or null if no site catalog is defined). For context CONTEXT_SITE and context CONTEXT_LIBRARY, the contextID parameter is ignored and the static URL for the current site / site library is returned. Parameter relPath can be defined to specify the relative path within the context-specific path. The method returns an absolute URL with HTTPS protocol.

**Parameters:**

- `context`: Either CONTEXT_CATALOG, CONTEXT_LIBRARY or CONTEXT_SITE
- `contextID`: Optional context id, currently only used to specify a catalog id
- `relPath`: Relative path within the catalog or library

**Returns:**

URL for the specified location

---

### httpsStatic

**Signature:** `static httpsStatic(host : String, context : String, contextID : String, relPath : String) : URL`

**Description:** Returns the absolute URL to the static location of the specified context. The context can be either a specific catalog (URLUtils.CONTEXT_CATALOG), a content library (URLUtils.CONTEXT_LIBRARY) or a site (URLUtils.CONTEXT_SITE). Respectively either a URL to images in a catalog, a library or a site are created. The host parameter is optional. If provided, then this host name will be used in precedence to the host name provided by the current request. The specified host name must be defined in the alias settings for the site, otherwise an exception will be thrown. The contextID parameter is optional and only used for context CONTEXT_CATALOG, where is specifies the ID of a specific catalog. If defined, the static URL for the specified catalog is returned. If not defined, the static URL for the current site catalog is returned (or null if no site catalog is defined). For context CONTEXT_SITE and context CONTEXT_LIBRARY, the contextID parameter is ignored and the static URL for the current site / site library is returned. Parameter relPath can be defined to specify the relative path within the context-specific path. The method returns an absolute URL with HTTPS protocol.

**Parameters:**

- `host`: Optional host name, used to set the host explicitly.
- `context`: Either CONTEXT_CATALOG, CONTEXT_LIBRARY or CONTEXT_SITE
- `contextID`: Optional context id, currently only used to specify a catalog id
- `relPath`: Relative path within the catalog or library

**Returns:**

URL for the specified location

---

### httpsStatic

**Signature:** `static httpsStatic(relPath : String) : URL`

**Description:** The method returns a static URL for a resource in the current site. Site resources are actually located in the cartridges associated with the site. This resources are typically logos, button images, CSS files and JavaScript files. The method will transform the given relative path to include cache related information, which enables better cache control. The created URL is an absolute URL with HTTPS protocol. Note: This method replaces the original mechanisms of using the webroot() method to construct a URL. The new method is better integrated into the overall cache management.

**Parameters:**

- `relPath`: the relative path of the file

**Returns:**

the URL for the specified location

---

### httpsStatic

**Signature:** `static httpsStatic(host : String, relPath : String) : URL`

**Description:** The method returns a static URL for a resource in the current site. Site resources are actually located in the cartridges associated with the site. This resources are typically logos, button images, CSS files and JavaScript files. The method will transform the given relative path to include cache related information, which enables better cache control. The host parameter is optional. If provided, then this host name will be used in precedence to the host name provided by the current request. The specified host name must be defined in the alias settings for the site, otherwise an exception will be thrown. The created URL is an absolute URL with HTTPS protocol. Note: This method replaces the original mechanisms of using the webroot() method to construct a URL. The new method is better integrated into the overall cache management.

**Parameters:**

- `host`: Optional host name, used to set the host explicitly.
- `relPath`: the relative path of the file

**Returns:**

the URL for the specified location

---

### httpStatic

**Signature:** `static httpStatic(context : String, contextID : String, relPath : String) : URL`

**Description:** Returns the absolute URL to the static location of the specified context. The context can be either a specific catalog (URLUtils.CONTEXT_CATALOG), a content library (URLUtils.CONTEXT_LIBRARY) or a site (URLUtils.CONTEXT_SITE). Respectively either a URL to images in a catalog, a library or a site are created. The contextID parameter is optional and only used for context CONTEXT_CATALOG, where is specifies the ID of a specific catalog. If defined, the static URL for the specified catalog is returned. If not defined, the static URL for the current site catalog is returned (or null if no site catalog is defined). For context CONTEXT_SITE and context CONTEXT_LIBRARY, the contextID parameter is ignored and the static URL for the current site / site library is returned. Parameter relPath can be defined to specify the relative path within the context-specific path. The method returns an absolute URL with HTTP protocol.

**Parameters:**

- `context`: Either CONTEXT_CATALOG, CONTEXT_LIBRARY or CONTEXT_SITE
- `contextID`: Optional context id, currently only used to specify a catalog id
- `relPath`: Relative path within the catalog or library

**Returns:**

URL for the specified location

---

### httpStatic

**Signature:** `static httpStatic(host : String, context : String, contextID : String, relPath : String) : URL`

**Description:** Returns the absolute URL to the static location of the specified context. The context can be either a specific catalog (URLUtils.CONTEXT_CATALOG), a content library (URLUtils.CONTEXT_LIBRARY) or a site (URLUtils.CONTEXT_SITE). Respectively either a URL to images in a catalog, a library or a site are created. The host parameter is optional. If provided, then this host name will be used in precedence to the host name provided by the current request. The specified host name must be defined in the alias settings for the site, otherwise an exception will be thrown. The contextID parameter is optional and only used for context CONTEXT_CATALOG, where is specifies the ID of a specific catalog. If defined, the static URL for the specified catalog is returned. If not defined, the static URL for the current site catalog is returned (or null if no site catalog is defined). For context CONTEXT_SITE and context CONTEXT_LIBRARY, the contextID parameter is ignored and the static URL for the current site / site library is returned. Parameter relPath can be defined to specify the relative path within the context-specific path. The method returns an absolute URL with HTTP protocol.

**Parameters:**

- `host`: Optional host name, used to set the host explicitly.
- `context`: Either CONTEXT_CATALOG, CONTEXT_LIBRARY or CONTEXT_SITE
- `contextID`: Optional context id, currently only used to specify a catalog id
- `relPath`: Relative path within the catalog or library

**Returns:**

URL for the specified location

---

### httpStatic

**Signature:** `static httpStatic(relPath : String) : URL`

**Description:** The method returns a static URL for a resource in the current site. Site resources are actually located in the cartridges associated with the site. This resources are typically logos, button images, CSS files and JavaScript files. The method will transform the given relative path to include cache related information, which enables better cache control. The created URL is an absolute URL with HTTP protocol. Note: This method replaces the original mechanisms of using the webroot() method to construct a URL. The new method is better integrated into the overall cache management.

**Parameters:**

- `relPath`: the relative path of the file

**Returns:**

the URL for the specified location

---

### httpStatic

**Signature:** `static httpStatic(host : String, relPath : String) : URL`

**Description:** The method returns a static URL for a resource in the current site. Site resources are actually located in the cartridges associated with the site. This resources are typically logos, button images, CSS files and JavaScript files. The method will transform the given relative path to include cache related information, which enables better cache control. The host parameter is optional. If provided, then this host name will be used in precedence to the host name provided by the current request. The specified host name must be defined in the alias settings for the site, otherwise an exception will be thrown. The created URL is an absolute URL with HTTP protocol. Note: This method replaces the original mechanisms of using the webroot() method to construct a URL. The new method is better integrated into the overall cache management.

**Parameters:**

- `host`: Optional host name, used to set the host explicitly.
- `relPath`: the relative path of the file

**Returns:**

the URL for the specified location

---

### httpsWebRoot

**Signature:** `static httpsWebRoot() : URL`

**Description:** Return an absolute web root URL with HTTPS protocol and host and domain information from the current request. If an HTTP host is configured in the preferences the returned URL will include that host. Note: The use of this method is deprecated. The method httpsStatic() should be used instead. It provides better cache integration.

**Deprecated:**

Use the httpsStatic(String) or httpsStatic(String, String, String) method instead.

**Returns:**

an absolute web root URL with HTTPS protocol and host information from the current request.

---

### httpWebRoot

**Signature:** `static httpWebRoot() : URL`

**Description:** Return an absolute web root URL with HTTP protocol and host information from current request. If an HTTP host is configured in the preferences the returned URL will include that host. Note: The use of this method is deprecated. The method httpStatic() should be used instead. It provides better cache integration.

**Deprecated:**

Use the httpStatic(String) or httpStatic(String, String, String) methods instead.

**Returns:**

an absolute web root URL with HTTP protocol and host information from the current request.

---

### imageURL

**Signature:** `static imageURL(context : String, contextID : String, relPath : String, transform : Object) : URL`

**Description:** Similar to staticURL( String, String, String ) this method returns a static URL for a resource in the current site. The method assumes, that the URL refers to an image an supports an additional parameter with optional image transformation parameters. The image transformation parameters must be specified as JavaScript object literal. The URL returned is always an absolute URL.

**Parameters:**

- `context`: Either CONTEXT_CATALOG, CONTEXT_LIBRARY or CONTEXT_SITE
- `contextID`: Optional context id, currently only used to specify a catalog id
- `relPath`: Relative path within the catalog or library
- `transform`: Object with transformation parameters (see class header)

**Returns:**

URL for the specified location

---

### imageURL

**Signature:** `static imageURL(relPath : String, transform : Object) : URL`

**Description:** Similar to staticURL( String ) this method returns a static URL for a resource in the current site. The method assumes, that the URL refers to an image an supports an additional parameter with optional image transformation parameters. The image transformation parameters must be specified as JavaScript object literal. The URL returned is always an absolute URL.

**Parameters:**

- `relPath`: the relative path of the file
- `transform`: Object with transformation parameters (see class header)

**Returns:**

the URL for the specified location

---

### sessionRedirect

**Signature:** `static sessionRedirect(host : String, url : URL) : URL`

**Description:** This method is used to create a URL that redirects to a location in the current site with another host name. When the URL is submitted, the system copies all system cookies, such that user, session and basket information are shared across different hosts. The specified host name must be defined in the alias settings for the site, otherwise an exception will be thrown when submitting the redirect URL. If the specified host is the same as the current host, the method will return a "normal" URL because no redirect is required.

**Parameters:**

- `host`: Target host with or without a site-path
- `url`: Target URL on current site (relative or absolute), pass null to redirect to new host only

**Returns:**

an absolute secure URL to the redirect mechanism

---

### sessionRedirectHttpOnly

**Signature:** `static sessionRedirectHttpOnly(host : String, url : URL) : URL`

**Description:** This method is used to create a URL that redirects to a location in the current site with another host name. When the URL is submitted, the system copies all system cookies, such that user, session and basket information are shared across different hosts. The specified host name must be defined in the alias settings for the site, otherwise an exception will be thrown when submitting the redirect URL. If the specified host is the same as the current host, the method will return a "normal" URL because no redirect is required. Note: since this method generates a non-secure (HTTP) link, no HTTPS Cookies are copied, which might lead to sessions being incorrectly being detected as hijacked. It is strongly recommended to use sessionRedirect(String, URL) where possible.

**Parameters:**

- `host`: Target host with or without a site-path
- `url`: Target URL on current site (relative or absolute), pass null to redirect to new host only

**Returns:**

an absolute URL to the redirect mechanism

---

### staticURL

**Signature:** `static staticURL(context : String, contextID : String, relPath : String) : URL`

**Description:** Returns the relative URL to the static location of the specified context. The context can be either a specific catalog (URLUtils.CONTEXT_CATALOG), a content library (URLUtils.CONTEXT_LIBRARY) or a site (URLUtils.CONTEXT_SITE). Respectively either a URL to images in a catalog, a library or a site are created. The contextID parameter is optional and can be used with context either CONTEXT_CATALOG or CONTEXT_LIBRARY, where it specifies the ID of a specific catalog or a shared library respectively. If defined, the static URL for the specified catalog/shared library is returned. If not defined, the static URL for the current site catalog/site library is returned (or null if no site catalog/site library is defined). For context CONTEXT_SITE, the contextID parameter is ignored and the static URL for the current site is returned. Parameter relPath can be defined to specify the relative path within the context-specific path. The method returns an relative URL with the same protocol as the current request.

**Parameters:**

- `context`: Either CONTEXT_CATALOG, CONTEXT_LIBRARY or CONTEXT_SITE
- `contextID`: Optional context id, currently only used to specify a catalog id or a shared library id
- `relPath`: Relative path within the catalog or library or site

**Returns:**

URL for the specified location

---

### staticURL

**Signature:** `static staticURL(relPath : String) : URL`

**Description:** The method returns a static URL for a resource in the current site. Site resources are actually located in the cartridges associated with the site. This resources are typically logos, button images, CSS files and JavaScript files. The method will transform the given relative path to include cache related information, which enables better cache control. The created URL is a relative URL. Note: This method replaces the original mechanisms of using the webroot() method to construct a URL. The new method is better integrated into the overall cache management.

**Parameters:**

- `relPath`: the relative path of the file

**Returns:**

the URL for the specified location

---

### url

**Signature:** `static url(action : URLAction, params : URLParameter...) : URL`

**Description:** Return a relative URL.

**Parameters:**

- `action`: URL action
- `params`: URL parameters

**Returns:**

a relative URL.

---

### url

**Signature:** `static url(appendSID : boolean, action : URLAction, params : URLParameter...) : URL`

**Description:** Return a relative URL. Note: The use of this method is deprecated, because session URL rewriting is no longer supported. Use the corresponding url() method without the appendSID parameter instead.

**Deprecated:**

Use url(URLAction, URLParameter...) instead.

**Parameters:**

- `appendSID`: when true the resulting URL will include session ID.
- `action`: URL action
- `params`: URL parameters

**Returns:**

a relative URL.

---

### url

**Signature:** `static url(action : String, namesAndParams : String...) : URL`

**Description:** Return a relative URL.

**Parameters:**

- `action`: the pipeline, which should be invoked, e.g.: 'Pipeline-StartNode'
- `namesAndParams`: several strings with name=value pairs , e.g.: 'pid', 'value1', 'cgid', value2'.

**Returns:**

a relative URL.

---

### url

**Signature:** `static url(appendSID : boolean, action : String, namesAndParams : String...) : URL`

**Description:** Return a relative URL. Note: The use of this method is deprecated, because session URL rewriting is no longer supported. Use the corresponding url() method without the appendSID parameter instead.

**Deprecated:**

Use url(String, String...) instead.

**Parameters:**

- `appendSID`: when true the resulting URL will include session ID.
- `action`: the pipeline, which should be invoked, e.g.: 'Pipeline-StartNode'
- `namesAndParams`: several strings with name=value pairs, e.g.: 'pid', 'value1', 'cgid', value2'.

**Returns:**

a relative URL.

---

### webRoot

**Signature:** `static webRoot() : URL`

**Description:** Return a relative web root URL. A web root URL is used to access all static media context for the site. The actual media file can be referenced by appending a relative path. Note: The use of this method is deprecated. The method staticURL() should be used instead. It provides better cache integration.

**Deprecated:**

Use the staticURL(String) or the staticURL(String, String, String) method instead.

**Returns:**

a relative web root URL.

---
```

--------------------------------------------------------------------------------
/docs/dw_catalog/ProductSearchModel.md:
--------------------------------------------------------------------------------

```markdown
## Package: dw.catalog

# Class ProductSearchModel

## Inheritance Hierarchy

- Object
  - dw.catalog.SearchModel
  - dw.catalog.ProductSearchModel

## Description

The class is the central interface to a product search result and a product search refinement. It also provides utility methods to generate a search URL.

## Constants

### CATEGORYID_PARAMETER

**Type:** String = "cgid"

URL Parameter for the category ID

### INVENTORY_LIST_IDS_PARAMETER

**Type:** String = "ilids"

URL Parameter for the inventory list IDs

### MAXIMUM_INVENTORY_LIST_IDS

**Type:** Number = 10

The maximum number of inventory list IDs that can be passed to setInventoryListIDs(List)

### MAXIMUM_PRODUCT_IDS

**Type:** Number = 30

The maximum number of product IDs that can be passed to setProductIDs(List)

### MAXIMUM_STORE_INVENTORY_FILTER_VALUES

**Type:** Number = 10

The maximum number of store inventory values for a store inventory filter that can be passed to setStoreInventoryFilter(StoreInventoryFilter)

### PRICE_MAX_PARAMETER

**Type:** String = "pmax"

URL Parameter for the maximum price

### PRICE_MIN_PARAMETER

**Type:** String = "pmin"

URL Parameter for the minimum price

### PRODUCTID_PARAMETER

**Type:** String = "pid"

URL Parameter for the product ID

### PROMOTION_PRODUCT_TYPE_ALL

**Type:** String = "all"

constant indicating that all related products should be returned for the next product search by promotion ID

### PROMOTION_PRODUCT_TYPE_BONUS

**Type:** String = "bonus"

constant indicating that only bonus products should be returned for the next product search by promotion ID. This constant should be set using setPromotionProductType(String) when using the search model to find the available list of bonus products for a Choice of Bonus Product (Rule) promotion, along with setPromotionID(String).

### PROMOTION_PRODUCT_TYPE_DISCOUNTED

**Type:** String = "discounted"

constant indicating that only discounted products should be returned for the next product search by promotion ID

### PROMOTION_PRODUCT_TYPE_PARAMETER

**Type:** String = "pmpt"

URL Parameter for the promotion product type

### PROMOTION_PRODUCT_TYPE_QUALIFYING

**Type:** String = "qualifying"

constant indicating that only qualifying products should be returned for the next product search by promotion ID

### PROMOTIONID_PARAMETER

**Type:** String = "pmid"

URL Parameter for the promotion ID

### REFINE_NAME_PARAMETER_PREFIX

**Type:** String = "prefn"

URL Parameter prefix for a refinement name

### REFINE_VALUE_PARAMETER_PREFIX

**Type:** String = "prefv"

URL Parameter prefix for a refinement value

### SORT_BY_PARAMETER_PREFIX

**Type:** String = "psortb"

URL Parameter prefix for a refinement value

### SORT_DIRECTION_PARAMETER_PREFIX

**Type:** String = "psortd"

URL Parameter prefix for a refinement value

### SORTING_OPTION_PARAMETER

**Type:** String = "sopt"

URL Parameter prefix for a sorting option

### SORTING_RULE_PARAMETER

**Type:** String = "srule"

URL Parameter prefix for a sorting rule

## Properties

### category

**Type:** Category (Read Only)

The category object for the category id specified in the query.
 If a category with that id doesn't exist or if the category is offline
 this method returns null.

### categoryID

**Type:** String

The category id that was specified in the search query.

### categorySearch

**Type:** boolean (Read Only)

The method returns true, if this is a pure search for a category. The
 method checks, that a category ID is specified and no search phrase is
 specified.

### deepestCommonCategory

**Type:** Category (Read Only)

The deepest common category of all products in the search result.
 In case of an empty search result the method returns the root category.

### effectiveSortingRule

**Type:** SortingRule (Read Only)

The sorting rule used to order the products in the results of this query,
 or null if no search has been executed yet.

 In contrast to getSortingRule(), this method respects explicit sorting rules and sorting options and rules determined implicitly
 based on the refinement category, keyword sorting rule assignment, etc.

### inventoryIDs

**Type:** List (Read Only)

Returns a list of inventory IDs that were specified in the search query or an empty list if no inventory ID set.

### orderableProductsOnly

**Type:** boolean

Get the flag indicating whether unorderable products should be excluded
 when the next call to getProducts() is made. If this value has not been
 previously set, then the value returned will be based on the value of the
 search preference.

### pageMetaTags

**Type:** Array (Read Only)

All page meta tags, defined for this instance for which content can be generated.

 The meta tag content is generated based on the product listing page meta tag context and rules.
 The rules are obtained from the current category context or inherited from the parent category,
 up to the root category.

### personalizedSort

**Type:** boolean (Read Only)

The method indicates if the search result is ordered by a personalized sorting rule.

### priceMax

**Type:** Number

The maximum price by which the search result is refined.

### priceMin

**Type:** Number

The minimum price by which the search result is refined.

### productID

**Type:** String

The product id that was specified in the search query.

### productIDs

**Type:** List

A list of product IDs that were specified in the search query or an empty list if no product ID set.

### products

**Type:** Iterator (Read Only)

All products in the search result. 
 Note that products that were removed or went offline since the last index
 update are not included in the returned set.

### productSearchHits

**Type:** Iterator (Read Only)

The product search hits in the search result. 
 Note that method does also return search hits representing products that
 were removed or went offline since the last index update, i.e. you must
 implement appropriate checks before accessing the product related to the
 search hit instance (see ProductSearchHit.getProduct())

### promotionID

**Type:** String

The promotion id that was specified in the search query or null if no promotion id set. If multiple
 promotion id's specified the method returns only the first id. See setPromotionIDs(List) and
 getPromotionIDs().

### promotionIDs

**Type:** List

A list of promotion id's that were specified in the search query or an empty list if no promotion id set.

### promotionProductType

**Type:** String

The promotion product type specified in the search query.

### recursiveCategorySearch

**Type:** boolean

Get the flag that determines if the category search will
 be recursive.

### refinedByCategory

**Type:** boolean (Read Only)

The method returns true, if the search is refined by a category.
 The method checks, that a category ID is specified.

### refinedByPrice

**Type:** boolean (Read Only)

Identifies if this search has been refined by price.

### refinedByPromotion

**Type:** boolean (Read Only)

Identifies if this search has been refined by promotion.

### refinedCategorySearch

**Type:** boolean (Read Only)

Identifies if this is a category search and is refined with further
 criteria, like a brand refinement or an attribute refinement.

### refinementCategory

**Type:** Category

The category used to determine possible refinements for the search.
 If an explicit category was set for this purpose using setRefinementCategory(Category), it is returned.
 Otherwise, the deepest common category of all search results will be returned.

### refinements

**Type:** ProductSearchRefinements (Read Only)

The ProductSearchRefinements associated with this search and filtered by session currency.
 If an explicit category was set for this purpose using setRefinementCategory(Category), it will be used to determine the refinements.
 Otherwise, the refinements are determined based on the deepest common category of all products in the search result.
 Hint: If you want to use the same refinements for all searches, consider defining them in one category (usually root) and using setRefinementCategory(Category) to avoid unnecessary calculation of the deepest common category.

### searchableImageUploadURL

**Type:** String (Read Only)

This method returns the URL of the endpoint where the merchants should upload their image for visual search.

### searchPhraseSuggestions

**Type:** SearchPhraseSuggestions (Read Only)

Returns search phrase suggestions for the current search phrase.
 Search phrase suggestions may contain alternative search phrases as well
 as lists of corrected and completed search terms.

### sortingRule

**Type:** SortingRule

The sorting rule explicitly set on this model to be used
 to order the products in the results of this query, or null
 if no rule has been explicitly set.

 This method does not return the sorting rule that will be used implicitly
 based on the context of the search, such as the refinement category.

### storeInventoryFilter

**Type:** StoreInventoryFilter

Returns the StoreInventoryFilter, which was specified for this search.

### suggestedSearchPhrase

**Type:** String (Read Only)

The suggested search phrase with the highest accuracy provided
 for the current search phrase.

### suggestedSearchPhrases

**Type:** List (Read Only)

A list with up to 5 suggested search phrases provided for the
 current search phrase. It is possible that less than 5 suggestions
 or even no suggestions are returned.

### trackingEmptySearchesEnabled

**Type:** boolean (Read Only)

The method indicates if no-hits search should be tracked for predictive intelligence use.

### visualSearch

**Type:** boolean (Read Only)

The method returns true, if this is a visual search. The
 method checks that a image UUID is specified.

## Constructor Summary

ProductSearchModel() Constructs a new ProductSearchModel.

## Method Summary

### addHitTypeRefinement

**Signature:** `addHitTypeRefinement(types : String...) : void`

Set the only search hit types to be included from the search.

### excludeHitType

**Signature:** `excludeHitType(types : String...) : void`

Set the search hit types to be excluded from the search.

### getCategory

**Signature:** `getCategory() : Category`

Returns the category object for the category id specified in the query.

### getCategoryID

**Signature:** `getCategoryID() : String`

Returns the category id that was specified in the search query.

### getDeepestCommonCategory

**Signature:** `getDeepestCommonCategory() : Category`

Returns the deepest common category of all products in the search result.

### getEffectiveSortingRule

**Signature:** `getEffectiveSortingRule() : SortingRule`

Returns the sorting rule used to order the products in the results of this query, or null if no search has been executed yet.

### getInventoryIDs

**Signature:** `getInventoryIDs() : List`

Returns a list of inventory IDs that were specified in the search query or an empty list if no inventory ID set.

### getOrderableProductsOnly

**Signature:** `getOrderableProductsOnly() : boolean`

Get the flag indicating whether unorderable products should be excluded when the next call to getProducts() is made.

### getPageMetaTag

**Signature:** `getPageMetaTag(id : String) : PageMetaTag`

Returns the page meta tag for the specified id.

### getPageMetaTags

**Signature:** `getPageMetaTags() : Array`

Returns all page meta tags, defined for this instance for which content can be generated.

### getPriceMax

**Signature:** `getPriceMax() : Number`

Returns the maximum price by which the search result is refined.

### getPriceMin

**Signature:** `getPriceMin() : Number`

Returns the minimum price by which the search result is refined.

### getProductID

**Signature:** `getProductID() : String`

Returns the product id that was specified in the search query.

### getProductIDs

**Signature:** `getProductIDs() : List`

Returns a list of product IDs that were specified in the search query or an empty list if no product ID set.

### getProducts

**Signature:** `getProducts() : Iterator`

Returns all products in the search result.

### getProductSearchHit

**Signature:** `getProductSearchHit(product : Product) : ProductSearchHit`

Returns the underlying ProductSearchHit for a product, or null if no ProductSearchHit found for this product.

### getProductSearchHits

**Signature:** `getProductSearchHits() : Iterator`

Returns the product search hits in the search result.

### getPromotionID

**Signature:** `getPromotionID() : String`

Returns the promotion id that was specified in the search query or null if no promotion id set.

### getPromotionIDs

**Signature:** `getPromotionIDs() : List`

Returns a list of promotion id's that were specified in the search query or an empty list if no promotion id set.

### getPromotionProductType

**Signature:** `getPromotionProductType() : String`

Returns the promotion product type specified in the search query.

### getRefinementCategory

**Signature:** `getRefinementCategory() : Category`

Returns the category used to determine possible refinements for the search.

### getRefinements

**Signature:** `getRefinements() : ProductSearchRefinements`

Returns the ProductSearchRefinements associated with this search and filtered by session currency.

### getSearchableImageUploadURL

**Signature:** `getSearchableImageUploadURL() : String`

This method returns the URL of the endpoint where the merchants should upload their image for visual search.

### getSearchPhraseSuggestions

**Signature:** `getSearchPhraseSuggestions() : SearchPhraseSuggestions`

Returns search phrase suggestions for the current search phrase.

### getSortingRule

**Signature:** `getSortingRule() : SortingRule`

Returns the sorting rule explicitly set on this model to be used to order the products in the results of this query, or null if no rule has been explicitly set.

### getStoreInventoryFilter

**Signature:** `getStoreInventoryFilter() : StoreInventoryFilter`

Returns the StoreInventoryFilter, which was specified for this search.

### getSuggestedSearchPhrase

**Signature:** `getSuggestedSearchPhrase() : String`

Returns the suggested search phrase with the highest accuracy provided for the current search phrase.

### getSuggestedSearchPhrases

**Signature:** `getSuggestedSearchPhrases() : List`

Returns a list with up to 5 suggested search phrases provided for the current search phrase.

### isCategorySearch

**Signature:** `isCategorySearch() : boolean`

The method returns true, if this is a pure search for a category.

### isPersonalizedSort

**Signature:** `isPersonalizedSort() : boolean`

The method indicates if the search result is ordered by a personalized sorting rule.

### isRecursiveCategorySearch

**Signature:** `isRecursiveCategorySearch() : boolean`

Get the flag that determines if the category search will be recursive.

### isRefinedByCategory

**Signature:** `isRefinedByCategory() : boolean`

The method returns true, if the search is refined by a category.

### isRefinedByPrice

**Signature:** `isRefinedByPrice() : boolean`

Identifies if this search has been refined by price.

### isRefinedByPriceRange

**Signature:** `isRefinedByPriceRange(priceMin : Number, priceMax : Number) : boolean`

Identifies if this search has been refined by the given price range.

### isRefinedByPromotion

**Signature:** `isRefinedByPromotion() : boolean`

Identifies if this search has been refined by promotion.

### isRefinedByPromotion

**Signature:** `isRefinedByPromotion(promotionID : String) : boolean`

Identifies if this search has been refined by a given promotion.

### isRefinedCategorySearch

**Signature:** `isRefinedCategorySearch() : boolean`

Identifies if this is a category search and is refined with further criteria, like a brand refinement or an attribute refinement.

### isTrackingEmptySearchesEnabled

**Signature:** `isTrackingEmptySearchesEnabled() : boolean`

The method indicates if no-hits search should be tracked for predictive intelligence use.

### isVisualSearch

**Signature:** `isVisualSearch() : boolean`

The method returns true, if this is a visual search.

### search

**Signature:** `search() : SearchStatus`

Execute the search based on the configured search term, category and filter conditions (price, attribute, promotion, product type) and return the execution status.

### setCategoryID

**Signature:** `setCategoryID(categoryID : String) : void`

Specifies the category id used for the search query.

### setEnableTrackingEmptySearches

**Signature:** `setEnableTrackingEmptySearches(trackingEmptySearches : boolean) : void`

Set a flag indicating whether no-hits search should be tracked for predictive intelligence use.

### setInventoryListIDs

**Signature:** `setInventoryListIDs(inventoryListIDs : List) : void`

Specifies multiple inventory list IDs used for the search query.

### setOrderableProductsOnly

**Signature:** `setOrderableProductsOnly(orderableOnly : boolean) : void`

Set a flag indicating whether unorderable products should be excluded when the next call to getProducts() is made.

### setPriceMax

**Signature:** `setPriceMax(priceMax : Number) : void`

Sets the maximum price by which the search result is to be refined.

### setPriceMin

**Signature:** `setPriceMin(priceMin : Number) : void`

Sets the minimum price by which the search result is to be refined.

### setProductID

**Signature:** `setProductID(productID : String) : void`

Specifies the product id used for the search query.

### setProductIDs

**Signature:** `setProductIDs(productIDs : List) : void`

Specifies multiple product IDs used for the search query.

### setPromotionID

**Signature:** `setPromotionID(promotionID : String) : void`

Specifies the promotion id used for the search query.

### setPromotionIDs

**Signature:** `setPromotionIDs(promotionIDs : List) : void`

Specifies multiple promotion id's used for the search query.

### setPromotionProductType

**Signature:** `setPromotionProductType(promotionProductType : String) : void`

Specifies the promotion product type used for the search query.

### setRecursiveCategorySearch

**Signature:** `setRecursiveCategorySearch(recurse : boolean) : void`

Set a flag to indicate if the search in category should be recursive.

### setRefinementCategory

**Signature:** `setRefinementCategory(refinementCategory : Category) : void`

Sets an explicit category to be used when determining refinements.

### setSearchableImageID

**Signature:** `setSearchableImageID(imageID : String) : void`

An image ID can be retrieved by uploading an image with a multipart/form-data POST request to 'https://api.cquotient.com/v3/image/search/upload/{siteID}'.

### setSortingCondition

**Signature:** `setSortingCondition(attributeID : String, direction : Number) : void`

Sets or removes a sorting condition for the specified attribute.

### setSortingOption

**Signature:** `setSortingOption(option : SortingOption) : void`

Sets the sorting option to be used to order the products in the results of this query.

### setSortingRule

**Signature:** `setSortingRule(rule : SortingRule) : void`

Sets the sorting rule to be used to order the products in the results of this query.

### setStoreInventoryFilter

**Signature:** `setStoreInventoryFilter(storeInventoryFilter : StoreInventoryFilter) : void`

Filters the search result by one or more inventory list IDs provided by the class StoreInventoryFilter which supports a semantic URL parameter like zip, city, store ...

### urlForCategory

**Signature:** `static urlForCategory(action : String, cgid : String) : URL`

Constructs a URL that you can use to execute a query for a specific Category.

### urlForCategory

**Signature:** `static urlForCategory(url : URL, cgid : String) : URL`

Constructs a URL that you can use to execute a query for a specific Category.

### urlForProduct

**Signature:** `static urlForProduct(action : String, cgid : String, pid : String) : URL`

Constructs a URL that you can use to execute a query for a specific Product.

### urlForProduct

**Signature:** `static urlForProduct(url : URL, cgid : String, pid : String) : URL`

Constructs a URL that you can use to execute a query for a specific Product.

### urlForRefine

**Signature:** `static urlForRefine(action : String, attributeID : String, value : String) : URL`

Constructs a URL that you can use to execute a query for a specific attribute name-value pair.

### urlForRefine

**Signature:** `static urlForRefine(url : URL, attributeID : String, value : String) : URL`

Constructs a URL that you can use to execute a query for a specific attribute name-value pair.

### urlRefineCategory

**Signature:** `urlRefineCategory(action : String, refineCategoryID : String) : URL`

Constructs a URL that you can use to re-execute the query with a category refinement.

### urlRefineCategory

**Signature:** `urlRefineCategory(url : URL, refineCategoryID : String) : URL`

Constructs a URL that you can use to re-execute the query with a category refinement.

### urlRefinePrice

**Signature:** `urlRefinePrice(action : String, min : Number, max : Number) : URL`

Constructs a URL that you can use to re-execute the query with an additional price filter.

### urlRefinePrice

**Signature:** `urlRefinePrice(url : URL, min : Number, max : Number) : URL`

Constructs a URL that you can use to re-execute the query with an additional price filter.

### urlRefinePromotion

**Signature:** `urlRefinePromotion(url : URL, refinePromotionID : String) : URL`

Constructs a URL that you can use to re-execute the query with a promotion refinement.

### urlRefinePromotion

**Signature:** `urlRefinePromotion(action : String, refinePromotionID : String) : URL`

Constructs a URL that you can use to re-execute the query with a promotion refinement.

### urlRelaxCategory

**Signature:** `urlRelaxCategory(action : String) : URL`

Constructs a URL that you can use to re-execute the query without any category refinement.

### urlRelaxCategory

**Signature:** `urlRelaxCategory(url : URL) : URL`

Constructs a URL that you can use to re-execute the query without any category refinement.

### urlRelaxPrice

**Signature:** `urlRelaxPrice(action : String) : URL`

Constructs a URL that you can use to re-execute the query with no price filter.

### urlRelaxPrice

**Signature:** `urlRelaxPrice(url : URL) : URL`

Constructs a URL that you can use to would re-execute the query with no price filter.

### urlRelaxPromotion

**Signature:** `urlRelaxPromotion(url : URL) : URL`

Constructs a URL that you can use to re-execute the query without any promotion refinement.

### urlRelaxPromotion

**Signature:** `urlRelaxPromotion(action : String) : URL`

Constructs a URL that you can use to re-execute the query without any promotion refinement.

### urlSortingOption

**Signature:** `urlSortingOption(action : String, option : SortingOption) : URL`

Constructs a URL that you can use to re-execute the query but sort the results by the given storefront sorting option.

### urlSortingOption

**Signature:** `urlSortingOption(url : URL, option : SortingOption) : URL`

Constructs a URL that you can use to re-execute the query but sort the results by the given storefront sorting option.

### urlSortingRule

**Signature:** `urlSortingRule(action : String, rule : SortingRule) : URL`

Constructs a URL that you can use to re-execute the query but sort the results by the given rule.

### urlSortingRule

**Signature:** `urlSortingRule(url : URL, rule : SortingRule) : URL`

Constructs a URL that you can use to re-execute the query but sort the results by the given rule.

## Constructor Detail

## Method Detail

## Method Details

### addHitTypeRefinement

**Signature:** `addHitTypeRefinement(types : String...) : void`

**Description:** Set the only search hit types to be included from the search. Values accepted are the 'hit type' constants exposed in the ProductSearchHit class. Overwrites any hit type refinements set from prior calls to addHitTypeRefinement(String...) or excludeHitType(String...).

**Parameters:**

- `types`: to be included.

---

### excludeHitType

**Signature:** `excludeHitType(types : String...) : void`

**Description:** Set the search hit types to be excluded from the search. Values accepted are the 'hit type' constants exposed in the ProductSearchHit class. Overwrites any hit type refinements set from prior calls to addHitTypeRefinement(String...) or excludeHitType(String...).

**Parameters:**

- `types`: to be excluded.

---

### getCategory

**Signature:** `getCategory() : Category`

**Description:** Returns the category object for the category id specified in the query. If a category with that id doesn't exist or if the category is offline this method returns null.

**Returns:**

the category object for the category id specified in the query.

---

### getCategoryID

**Signature:** `getCategoryID() : String`

**Description:** Returns the category id that was specified in the search query.

**Returns:**

the category id that was specified in the search query.

---

### getDeepestCommonCategory

**Signature:** `getDeepestCommonCategory() : Category`

**Description:** Returns the deepest common category of all products in the search result. In case of an empty search result the method returns the root category.

**Returns:**

the deepest common category of all products in the search result of this search model or root for an empty search result.

---

### getEffectiveSortingRule

**Signature:** `getEffectiveSortingRule() : SortingRule`

**Description:** Returns the sorting rule used to order the products in the results of this query, or null if no search has been executed yet. In contrast to getSortingRule(), this method respects explicit sorting rules and sorting options and rules determined implicitly based on the refinement category, keyword sorting rule assignment, etc.

**Returns:**

a SortingRule or null.

---

### getInventoryIDs

**Signature:** `getInventoryIDs() : List`

**Description:** Returns a list of inventory IDs that were specified in the search query or an empty list if no inventory ID set.

**Returns:**

the list of inventory IDs that were specified in the search query or an empty list if no inventory ID set.

---

### getOrderableProductsOnly

**Signature:** `getOrderableProductsOnly() : boolean`

**Description:** Get the flag indicating whether unorderable products should be excluded when the next call to getProducts() is made. If this value has not been previously set, then the value returned will be based on the value of the search preference.

**Returns:**

true if unorderable products should be excluded from product search results, false otherwise.

---

### getPageMetaTag

**Signature:** `getPageMetaTag(id : String) : PageMetaTag`

**Description:** Returns the page meta tag for the specified id. The meta tag content is generated based on the product listing page meta tag context and rule. The rule is obtained from the current category context or inherited from the parent category, up to the root category. Null will be returned if the meta tag is undefined on the current instance, or if no rule can be found for the current context, or if the rule resolves to an empty string.

**Parameters:**

- `id`: the ID to get the page meta tag for

**Returns:**

page meta tag containing content generated based on rules

---

### getPageMetaTags

**Signature:** `getPageMetaTags() : Array`

**Description:** Returns all page meta tags, defined for this instance for which content can be generated. The meta tag content is generated based on the product listing page meta tag context and rules. The rules are obtained from the current category context or inherited from the parent category, up to the root category.

**Returns:**

page meta tags defined for this instance, containing content generated based on rules

---

### getPriceMax

**Signature:** `getPriceMax() : Number`

**Description:** Returns the maximum price by which the search result is refined.

**Returns:**

the maximum price by which the search result is refined.

---

### getPriceMin

**Signature:** `getPriceMin() : Number`

**Description:** Returns the minimum price by which the search result is refined.

**Returns:**

the minimum price by which the search result is refined.

---

### getProductID

**Signature:** `getProductID() : String`

**Description:** Returns the product id that was specified in the search query.

**Deprecated:**

Please use getProductIDs() instead

**Returns:**

the product id that was specified in the search.

---

### getProductIDs

**Signature:** `getProductIDs() : List`

**Description:** Returns a list of product IDs that were specified in the search query or an empty list if no product ID set.

**Returns:**

the list of product IDs that were specified in the search query or an empty list if no product ID set.

---

### getProducts

**Signature:** `getProducts() : Iterator`

**Description:** Returns all products in the search result. Note that products that were removed or went offline since the last index update are not included in the returned set.

**Deprecated:**

This method should not be used because loading Products for each result of a product search is extremely expensive performance-wise. Please use getProductSearchHits() to iterate ProductSearchHits instead.

**Returns:**

Products in search result

**See Also:**

getProductSearchHits()

---

### getProductSearchHit

**Signature:** `getProductSearchHit(product : Product) : ProductSearchHit`

**Description:** Returns the underlying ProductSearchHit for a product, or null if no ProductSearchHit found for this product.

**Parameters:**

- `product`: the product to find the underlying ProductSearchHit

**Returns:**

the underlying ProductSearchHit for a product, or null if no ProductSearchHit found for this product.

---

### getProductSearchHits

**Signature:** `getProductSearchHits() : Iterator`

**Description:** Returns the product search hits in the search result. Note that method does also return search hits representing products that were removed or went offline since the last index update, i.e. you must implement appropriate checks before accessing the product related to the search hit instance (see ProductSearchHit.getProduct())

**Returns:**

Products hits in search result

**See Also:**

getProducts()

---

### getPromotionID

**Signature:** `getPromotionID() : String`

**Description:** Returns the promotion id that was specified in the search query or null if no promotion id set. If multiple promotion id's specified the method returns only the first id. See setPromotionIDs(List) and getPromotionIDs().

**Returns:**

the promotion id that was specified in the search query or null if no promotion id set.

---

### getPromotionIDs

**Signature:** `getPromotionIDs() : List`

**Description:** Returns a list of promotion id's that were specified in the search query or an empty list if no promotion id set.

**Returns:**

the list of promotion id's that was specified in the search query or an empty list if no promotion id set.

---

### getPromotionProductType

**Signature:** `getPromotionProductType() : String`

**Description:** Returns the promotion product type specified in the search query.

**Returns:**

the promotion product type that was specified in the search query.

---

### getRefinementCategory

**Signature:** `getRefinementCategory() : Category`

**Description:** Returns the category used to determine possible refinements for the search. If an explicit category was set for this purpose using setRefinementCategory(Category), it is returned. Otherwise, the deepest common category of all search results will be returned.

**Returns:**

the category used to determine refinements.

---

### getRefinements

**Signature:** `getRefinements() : ProductSearchRefinements`

**Description:** Returns the ProductSearchRefinements associated with this search and filtered by session currency. If an explicit category was set for this purpose using setRefinementCategory(Category), it will be used to determine the refinements. Otherwise, the refinements are determined based on the deepest common category of all products in the search result. Hint: If you want to use the same refinements for all searches, consider defining them in one category (usually root) and using setRefinementCategory(Category) to avoid unnecessary calculation of the deepest common category.

**Returns:**

the ProductSearchRefinements associated with this search.

---

### getSearchableImageUploadURL

**Signature:** `getSearchableImageUploadURL() : String`

**Description:** This method returns the URL of the endpoint where the merchants should upload their image for visual search.

**Returns:**

returns the URL where the merchants should upload their image.

**Throws:**

- RuntimeException

---

### getSearchPhraseSuggestions

**Signature:** `getSearchPhraseSuggestions() : SearchPhraseSuggestions`

**Description:** Returns search phrase suggestions for the current search phrase. Search phrase suggestions may contain alternative search phrases as well as lists of corrected and completed search terms.

**Returns:**

search phrase suggestions for the current search phrase

---

### getSortingRule

**Signature:** `getSortingRule() : SortingRule`

**Description:** Returns the sorting rule explicitly set on this model to be used to order the products in the results of this query, or null if no rule has been explicitly set. This method does not return the sorting rule that will be used implicitly based on the context of the search, such as the refinement category.

**Returns:**

a SortingRule or null.

---

### getStoreInventoryFilter

**Signature:** `getStoreInventoryFilter() : StoreInventoryFilter`

**Description:** Returns the StoreInventoryFilter, which was specified for this search.

**Returns:**

the StoreInventoryFilter, which was specified for this search.

---

### getSuggestedSearchPhrase

**Signature:** `getSuggestedSearchPhrase() : String`

**Description:** Returns the suggested search phrase with the highest accuracy provided for the current search phrase.

**Deprecated:**

Please use getSearchPhraseSuggestions() instead

**Returns:**

the suggested search phrase.

---

### getSuggestedSearchPhrases

**Signature:** `getSuggestedSearchPhrases() : List`

**Description:** Returns a list with up to 5 suggested search phrases provided for the current search phrase. It is possible that less than 5 suggestions or even no suggestions are returned.

**Deprecated:**

Please use getSearchPhraseSuggestions() instead

**Returns:**

a list containing the suggested search phrases.

---

### isCategorySearch

**Signature:** `isCategorySearch() : boolean`

**Description:** The method returns true, if this is a pure search for a category. The method checks, that a category ID is specified and no search phrase is specified.

**Returns:**

True if this is a category search

---

### isPersonalizedSort

**Signature:** `isPersonalizedSort() : boolean`

**Description:** The method indicates if the search result is ordered by a personalized sorting rule.

**Returns:**

true if search result is ordered by a personalized sorting rule, otherwise false.

---

### isRecursiveCategorySearch

**Signature:** `isRecursiveCategorySearch() : boolean`

**Description:** Get the flag that determines if the category search will be recursive.

**Returns:**

true if the category search will be recursive, false otherwise

---

### isRefinedByCategory

**Signature:** `isRefinedByCategory() : boolean`

**Description:** The method returns true, if the search is refined by a category. The method checks, that a category ID is specified.

**Returns:**

true, if the search is refined by a category, false otherwise.

---

### isRefinedByPrice

**Signature:** `isRefinedByPrice() : boolean`

**Description:** Identifies if this search has been refined by price.

**Returns:**

True if the search is refined by price, false otherwise.

---

### isRefinedByPriceRange

**Signature:** `isRefinedByPriceRange(priceMin : Number, priceMax : Number) : boolean`

**Description:** Identifies if this search has been refined by the given price range. Either range parameters may be null to represent open ranges.

**Parameters:**

- `priceMin`: The lower bound of the price range.
- `priceMax`: The upper bound of the price range.

**Returns:**

True if the search is refinemd on the given price range, false otherwise.

---

### isRefinedByPromotion

**Signature:** `isRefinedByPromotion() : boolean`

**Description:** Identifies if this search has been refined by promotion.

**Returns:**

True if the search is refined by promotion, false otherwise.

---

### isRefinedByPromotion

**Signature:** `isRefinedByPromotion(promotionID : String) : boolean`

**Description:** Identifies if this search has been refined by a given promotion.

**Parameters:**

- `promotionID`: the ID of the promotion to check

**Returns:**

True if the search is refined by the given promotionID, false otherwise.

---

### isRefinedCategorySearch

**Signature:** `isRefinedCategorySearch() : boolean`

**Description:** Identifies if this is a category search and is refined with further criteria, like a brand refinement or an attribute refinement.

**Returns:**

true if this is a category search and is refined with further criteria, false otherwise.

---

### isTrackingEmptySearchesEnabled

**Signature:** `isTrackingEmptySearchesEnabled() : boolean`

**Description:** The method indicates if no-hits search should be tracked for predictive intelligence use.

**Returns:**

true, if no-hits search should be tracked, otherwise false.

---

### isVisualSearch

**Signature:** `isVisualSearch() : boolean`

**Description:** The method returns true, if this is a visual search. The method checks that a image UUID is specified.

**Returns:**

True if this is a visual search

---

### search

**Signature:** `search() : SearchStatus`

**Description:** Execute the search based on the configured search term, category and filter conditions (price, attribute, promotion, product type) and return the execution status. The execution of an empty ProductSearchModel without any search term or filter criteria will not be supported and the search status SearchStatus.EMPTY_QUERY will be returned. A usage of the internal category id 'root' as category filter is not recommended, could cause performance issues and will be potentially deprecated in a future release. A successful execution will be indicated by SearchStatus.SUCCESSFUL or SearchStatus.LIMITED. For other possible search statuses see SearchStatus. The sorted and grouped search result of a successful execution can be fetched via getProductSearchHits() and the refinement options based on the search result can be obtained via getRefinements() and SearchModel.getRefinementValues(String).

**Returns:**

the searchStatus object with search status code and description of search result.

---

### setCategoryID

**Signature:** `setCategoryID(categoryID : String) : void`

**Description:** Specifies the category id used for the search query.

**Parameters:**

- `categoryID`: the category id for the search query.

---

### setEnableTrackingEmptySearches

**Signature:** `setEnableTrackingEmptySearches(trackingEmptySearches : boolean) : void`

**Description:** Set a flag indicating whether no-hits search should be tracked for predictive intelligence use.

**Parameters:**

- `trackingEmptySearches`: true, no-hits search should be tracked, false, otherwise.

---

### setInventoryListIDs

**Signature:** `setInventoryListIDs(inventoryListIDs : List) : void`

**Description:** Specifies multiple inventory list IDs used for the search query. The method supports up to MAXIMUM_INVENTORY_LIST_IDS inventory IDs. If more than MAXIMUM_INVENTORY_LIST_IDS inventory IDs used the method throws an IllegalArgumentException.

**Parameters:**

- `inventoryListIDs`: the inventory IDs for the search query.

**Throws:**

IllegalArgumentException - if more than MAXIMUM_INVENTORY_LIST_IDS inventory IDs used

---

### setOrderableProductsOnly

**Signature:** `setOrderableProductsOnly(orderableOnly : boolean) : void`

**Description:** Set a flag indicating whether unorderable products should be excluded when the next call to getProducts() is made. This method overrides the default behavior which is controlled by the search preference.

**Parameters:**

- `orderableOnly`: true if unorderable products should be excluded from product search results, false otherwise.

---

### setPriceMax

**Signature:** `setPriceMax(priceMax : Number) : void`

**Description:** Sets the maximum price by which the search result is to be refined.

**Parameters:**

- `priceMax`: sets the maximum price by which the search result is to be refined.

---

### setPriceMin

**Signature:** `setPriceMin(priceMin : Number) : void`

**Description:** Sets the minimum price by which the search result is to be refined.

**Parameters:**

- `priceMin`: the minimum price by which the search result is to be refined.

---

### setProductID

**Signature:** `setProductID(productID : String) : void`

**Description:** Specifies the product id used for the search query.

**Deprecated:**

Please use setProductIDs(List) instead

**Parameters:**

- `productID`: the product id for the search query.

---

### setProductIDs

**Signature:** `setProductIDs(productIDs : List) : void`

**Description:** Specifies multiple product IDs used for the search query. The specified product IDs include, but not limited to, variant product IDs, product master IDs, variation group IDs, product set IDs, or product bundle IDs. For example, this API could be used in high-traffic pages where developers need to be able to filter quickly for only available child products of a specified master product, instead of looping through all variants of a set products and checking their availabilities. The method supports up to MAXIMUM_PRODUCT_IDS product IDs. If more than MAXIMUM_PRODUCT_IDS products IDs are passed, the method throws an IllegalArgumentException.

**Parameters:**

- `productIDs`: the product IDs for the search query.

**Throws:**

IllegalArgumentException - if more than MAXIMUM_PRODUCT_IDS product IDs used

---

### setPromotionID

**Signature:** `setPromotionID(promotionID : String) : void`

**Description:** Specifies the promotion id used for the search query.

**Parameters:**

- `promotionID`: the promotion id for the search query.

---

### setPromotionIDs

**Signature:** `setPromotionIDs(promotionIDs : List) : void`

**Description:** Specifies multiple promotion id's used for the search query. The method supports up to 30 promotion id's. If more than 30 promotion id's used the method throws an IllegalArgumentException.

**Parameters:**

- `promotionIDs`: the promotion ids for the search query.

**Throws:**

IllegalArgumentException - if more than 30 promotion id's used

---

### setPromotionProductType

**Signature:** `setPromotionProductType(promotionProductType : String) : void`

**Description:** Specifies the promotion product type used for the search query. This value is only relevant for searches by promotion ID.

**Parameters:**

- `promotionProductType`: The type of product to filter by when searching by promotion ID. Allowed values are PROMOTION_PRODUCT_TYPE_ALL, PROMOTION_PRODUCT_TYPE_BONUS, PROMOTION_PRODUCT_TYPE_QUALIFYING, and PROMOTION_PRODUCT_TYPE_DISCOUNTED. If null is passed, or an invalid value is passed, the search will use PROMOTION_PRODUCT_TYPE_ALL.

---

### setRecursiveCategorySearch

**Signature:** `setRecursiveCategorySearch(recurse : boolean) : void`

**Description:** Set a flag to indicate if the search in category should be recursive.

**Parameters:**

- `recurse`: recurse the category in the search

---

### setRefinementCategory

**Signature:** `setRefinementCategory(refinementCategory : Category) : void`

**Description:** Sets an explicit category to be used when determining refinements. If this is not done, they will be determined based on the deepest common category of all search results. The explicit category must be in the site's storefront catalog, otherwise the method fails with an IllegalArgumentException.

**Parameters:**

- `refinementCategory`: the category used to determine the applicable refinements.

**Throws:**

IllegalArgumentException - if the refinement category does not reside in the storefront catalog

---

### setSearchableImageID

**Signature:** `setSearchableImageID(imageID : String) : void`

**Description:** An image ID can be retrieved by uploading an image with a multipart/form-data POST request to 'https://api.cquotient.com/v3/image/search/upload/{siteID}'. This method sets product IDs retrieved from the image ID to the ProductSearchModel. If using setProductIDs(List) in addition to this method, the ProductSearchModel will take the intersection of these sets of product IDs. If the image ID provided is invalid or expired, product IDs will not be set onto the product search model.

**Parameters:**

- `imageID`: the image ID for the visual search query.

**Throws:**

RuntimeException - if product IDs for the provided image could not be set.

---

### setSortingCondition

**Signature:** `setSortingCondition(attributeID : String, direction : Number) : void`

**Description:** Sets or removes a sorting condition for the specified attribute. Specify either SORT_DIRECTION_ASCENDING or SORT_DIRECTION_DESCENDING to set a sorting condition. Specify SORT_DIRECTION_NONE to remove a sorting condition from the attribute.

**Deprecated:**

This method is subject to removal. Use setSortingRule(SortingRule) instead.

**Parameters:**

- `attributeID`: the attribute ID
- `direction`: SORT_DIRECTION_ASCENDING, SORT_DIRECTION_DESCENDING or SORT_DIRECTION_NONE

---

### setSortingOption

**Signature:** `setSortingOption(option : SortingOption) : void`

**Description:** Sets the sorting option to be used to order the products in the results of this query. If a sorting rule is also set, the sorting option is ignored.

**Parameters:**

- `option`: the SortingOption to use to sort the products

---

### setSortingRule

**Signature:** `setSortingRule(rule : SortingRule) : void`

**Description:** Sets the sorting rule to be used to order the products in the results of this query. Setting the rule in this way overrides the default behavior of choosing the sorting rule based on the context of the search, such as the refinement category.

**Parameters:**

- `rule`: the SortingRule to use to sort the products

---

### setStoreInventoryFilter

**Signature:** `setStoreInventoryFilter(storeInventoryFilter : StoreInventoryFilter) : void`

**Description:** Filters the search result by one or more inventory list IDs provided by the class StoreInventoryFilter which supports a semantic URL parameter like zip, city, store ... and a list of StoreInventoryFilterValue which maps the semantic inventory list id value like Burlington, Boston, ... to a real inventory list id like 'Burlington -> inventory1', 'Boston -> inventory2'. The search will filter the result by the real inventory list id(s) but will use the semantic URL parameter and semantic inventory list id values for URL generation via all URLRefine and URLRelax methods e.g. for urlRefineCategory(URL, String), urlRelaxPrice(URL), SearchModel.urlRefineAttribute(String, String, String). Example custom URL: city=Burlington|Boston var storeFilter = new dw.catalog.StoreInventoryFilter("city", new dw.util.ArrayList( new dw.catalog.StoreInventoryFilterValue("Burlington","inventory_store_store9"), new dw.catalog.StoreInventoryFilterValue("Boston","inventory_store_store8") )); searchModel.setStoreInventoryFilter(filter)

**Parameters:**

- `storeInventoryFilter`: The StoreInventoryFilter instance to filter the search result by one or more inventory IDs with semantic key and semantic value support.

**Throws:**

IllegalArgumentException - if more than MAXIMUM_STORE_INVENTORY_FILTER_VALUES filter values used

---

### urlForCategory

**Signature:** `static urlForCategory(action : String, cgid : String) : URL`

**Description:** Constructs a URL that you can use to execute a query for a specific Category. The generated URL will be an absolute URL which uses the protocol of the current request.

**Parameters:**

- `action`: pipeline action, e.g. 'Search-Show'.
- `cgid`: the category ID.

**Returns:**

the new URL.

---

### urlForCategory

**Signature:** `static urlForCategory(url : URL, cgid : String) : URL`

**Description:** Constructs a URL that you can use to execute a query for a specific Category. The search specific parameters are appended to the provided URL. The URL is typically generated with one of the URLUtils methods.

**Parameters:**

- `url`: the URL to use to generate the new URL.
- `cgid`: the category ID.

**Returns:**

the new URL.

---

### urlForProduct

**Signature:** `static urlForProduct(action : String, cgid : String, pid : String) : URL`

**Description:** Constructs a URL that you can use to execute a query for a specific Product. The passed action is used to build an initial url. All search specific attributes are appended. The generated URL will be an absolute URL which uses the protocol of the current request.

**Parameters:**

- `action`: pipeline action, e.g. 'Search-Show'.
- `cgid`: the category id or null if product is not in category context.
- `pid`: the product id.

**Returns:**

the new URL.

---

### urlForProduct

**Signature:** `static urlForProduct(url : URL, cgid : String, pid : String) : URL`

**Description:** Constructs a URL that you can use to execute a query for a specific Product. The passed url can be either a full url or just the name for a pipeline. In the later case a relative URL is created.

**Parameters:**

- `url`: the URL to use to generate the new URL.
- `cgid`: the category id or null if product is not in category context.
- `pid`: the product id.

**Returns:**

the new URL.

---

### urlForRefine

**Signature:** `static urlForRefine(action : String, attributeID : String, value : String) : URL`

**Description:** Constructs a URL that you can use to execute a query for a specific attribute name-value pair. The generated URL will be an absolute URL which uses the protocol of the current request.

**Parameters:**

- `action`: pipeline action, e.g. 'Search-Show'.
- `attributeID`: the attribute ID for the refinement.
- `value`: the attribute value for the refinement.

**Returns:**

the new URL.

---

### urlForRefine

**Signature:** `static urlForRefine(url : URL, attributeID : String, value : String) : URL`

**Description:** Constructs a URL that you can use to execute a query for a specific attribute name-value pair. The search specific parameters are appended to the provided URL. The URL is typically generated with one of the URLUtils methods.

**Parameters:**

- `url`: the URL to use to generate the new URL.
- `attributeID`: the attribute ID for the refinement.
- `value`: the attribute value for the refinement.

**Returns:**

the new URL.

---

### urlRefineCategory

**Signature:** `urlRefineCategory(action : String, refineCategoryID : String) : URL`

**Description:** Constructs a URL that you can use to re-execute the query with a category refinement. The generated URL will be an absolute URL which uses the protocol of the current request.

**Parameters:**

- `action`: the pipeline action, e.g. 'Search-Show'
- `refineCategoryID`: the ID of the category.

**Returns:**

the new URL.

---

### urlRefineCategory

**Signature:** `urlRefineCategory(url : URL, refineCategoryID : String) : URL`

**Description:** Constructs a URL that you can use to re-execute the query with a category refinement. The search specific parameters are appended to the provided URL. The URL is typically generated with one of the URLUtils methods.

**Parameters:**

- `url`: the existing URL to use to create the new URL.
- `refineCategoryID`: the ID of the category.

**Returns:**

the new URL.

---

### urlRefinePrice

**Signature:** `urlRefinePrice(action : String, min : Number, max : Number) : URL`

**Description:** Constructs a URL that you can use to re-execute the query with an additional price filter. The generated URL will be an absolute URL which uses the protocol of the current request.

**Parameters:**

- `action`: the pipeline action, e.g. 'Search-Show'.
- `min`: the minimum price.
- `max`: the maximum price.

**Returns:**

the new URL.

---

### urlRefinePrice

**Signature:** `urlRefinePrice(url : URL, min : Number, max : Number) : URL`

**Description:** Constructs a URL that you can use to re-execute the query with an additional price filter. The search specific parameters are appended to the provided URL. The URL is typically generated with one of the URLUtils methods.

**Parameters:**

- `url`: the URL to use to generate the new URL.
- `min`: the minimum price.
- `max`: the maximum price.

**Returns:**

the new URL.

---

### urlRefinePromotion

**Signature:** `urlRefinePromotion(url : URL, refinePromotionID : String) : URL`

**Description:** Constructs a URL that you can use to re-execute the query with a promotion refinement. The search specific parameters are appended to the provided URL. The URL is typically generated with one of the URLUtils methods.

**Parameters:**

- `url`: the existing URL to use to create the new URL.
- `refinePromotionID`: the ID of the promotion.

**Returns:**

the new URL.

---

### urlRefinePromotion

**Signature:** `urlRefinePromotion(action : String, refinePromotionID : String) : URL`

**Description:** Constructs a URL that you can use to re-execute the query with a promotion refinement. The generated URL will be an absolute URL which uses the protocol of the current request.

**Parameters:**

- `action`: the pipeline action, e.g. 'Search-Show'
- `refinePromotionID`: the ID of the promotion.

**Returns:**

the new URL.

---

### urlRelaxCategory

**Signature:** `urlRelaxCategory(action : String) : URL`

**Description:** Constructs a URL that you can use to re-execute the query without any category refinement. The generated URL will be an absolute URL which uses the protocol of the current request.

**Parameters:**

- `action`: the pipeline action, e.g. 'Search-Show'.

**Returns:**

the new URL.

---

### urlRelaxCategory

**Signature:** `urlRelaxCategory(url : URL) : URL`

**Description:** Constructs a URL that you can use to re-execute the query without any category refinement. The search specific parameters are appended to the provided URL. The URL is typically generated with one of the URLUtils methods.

**Parameters:**

- `url`: the existing URL to use to create the new URL.

**Returns:**

the new URL.

---

### urlRelaxPrice

**Signature:** `urlRelaxPrice(action : String) : URL`

**Description:** Constructs a URL that you can use to re-execute the query with no price filter. The generated URL will be an absolute URL which uses the protocol of the current request.

**Parameters:**

- `action`: the pipeline action, e.g. 'Search-Show'

**Returns:**

the new URL.

---

### urlRelaxPrice

**Signature:** `urlRelaxPrice(url : URL) : URL`

**Description:** Constructs a URL that you can use to would re-execute the query with no price filter. The search specific parameters are appended to the provided URL. The URL is typically generated with one of the URLUtils methods.

**Parameters:**

- `url`: the existing URL to use to create the new URL.

**Returns:**

the new URL.

---

### urlRelaxPromotion

**Signature:** `urlRelaxPromotion(url : URL) : URL`

**Description:** Constructs a URL that you can use to re-execute the query without any promotion refinement. The search specific parameters are appended to the provided URL. The URL is typically generated with one of the URLUtils methods.

**Parameters:**

- `url`: the existing URL to use to create the new URL.

**Returns:**

the new URL.

---

### urlRelaxPromotion

**Signature:** `urlRelaxPromotion(action : String) : URL`

**Description:** Constructs a URL that you can use to re-execute the query without any promotion refinement. The generated URL will be an absolute URL which uses the protocol of the current request.

**Parameters:**

- `action`: the pipeline action, e.g. 'Search-Show'.

**Returns:**

the new URL.

---

### urlSortingOption

**Signature:** `urlSortingOption(action : String, option : SortingOption) : URL`

**Description:** Constructs a URL that you can use to re-execute the query but sort the results by the given storefront sorting option. The generated URL will be an absolute URL which uses the protocol of the current request.

**Parameters:**

- `action`: the pipeline action, e.g. 'Search-Show'.
- `option`: sorting option

**Returns:**

the new URL.

---

### urlSortingOption

**Signature:** `urlSortingOption(url : URL, option : SortingOption) : URL`

**Description:** Constructs a URL that you can use to re-execute the query but sort the results by the given storefront sorting option. The search specific parameters are appended to the provided URL. The URL is typically generated with one of the URLUtils methods.

**Parameters:**

- `url`: the existing URL to use to create the new URL.
- `option`: sorting option

**Returns:**

the new URL.

---

### urlSortingRule

**Signature:** `urlSortingRule(action : String, rule : SortingRule) : URL`

**Description:** Constructs a URL that you can use to re-execute the query but sort the results by the given rule. The generated URL will be an absolute URL which uses the protocol of the current request.

**Parameters:**

- `action`: the pipeline action, e.g. 'Search-Show'.
- `rule`: sorting rule

**Returns:**

the new URL.

---

### urlSortingRule

**Signature:** `urlSortingRule(url : URL, rule : SortingRule) : URL`

**Description:** Constructs a URL that you can use to re-execute the query but sort the results by the given rule. The search specific parameters are appended to the provided URL. The URL is typically generated with one of the URLUtils methods.

**Parameters:**

- `url`: the existing URL to use to create the new URL.
- `rule`: sorting rule

**Returns:**

the new URL.

---
```
Page 39/43FirstPrevNextLast