{"_id":"56f2d3284a8dae0e009ab2c1","user":"5668fa9755e4b32100935d41","__v":6,"parentDoc":null,"project":"5668fab608f90021008e882f","version":{"_id":"5668fab608f90021008e8832","__v":19,"project":"5668fab608f90021008e882f","createdAt":"2015-12-10T04:08:22.769Z","releaseDate":"2015-12-10T04:08:22.769Z","categories":["5668fab708f90021008e8833","569740f124490c3700170a64","569742b58560a60d00e2c25d","569742bd0b09a41900b2446c","569742cd69393517000c82b3","569742f459a6692d003fad8f","569743020b09a41900b2446d","5697430b69393517000c82b5","56a17776470ae00d00c30642","56a2c48a831e2a0d0069b1ad","56b535757bccae0d00e9a1cd","56e1ff6aa49fdc0e005746b5","57e1c88115bf6522002a5e4e","57fa65275ba65a17008b988f","57fbeea34002550e004c032e","58474584889b6c2d00fb86e9","58475dcc64157f0f002f1907","587e7b5158666c2700965d4e","58a349fc30852819007ba083"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"1.18.0","version":"1.18"},"category":{"_id":"569743020b09a41900b2446d","__v":3,"pages":["56975be30b09a41900b24494","56a15cfd470ae00d00c3061f","56e356004dc30f0e0051b3ed"],"project":"5668fab608f90021008e882f","version":"5668fab608f90021008e8832","sync":{"url":"","isSync":false},"reference":true,"createdAt":"2016-01-14T06:41:06.893Z","from_sync":false,"order":2,"slug":"javascript-sdk","title":"JavaScript SDK"},"updates":[],"next":{"pages":[],"description":""},"createdAt":"2016-03-23T17:32:24.379Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":true,"order":10,"body":"`$p(\"setRequestFields\"): ([String]) -> undefined`\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Technical documentation\",\n  \"body\": \"This is technical documentation for the setRequestFields function. For broader context, see our documentation on [Editing Fields/Hiding Item](doc:checking-data-fields).\"\n}\n[/block]\nYou may send us any relevant data for your items, but you might not want those fields returned for rendering a recommendation on your side. In that case, you can use the SDK function $p(\"setRequestFields\", FIELD_ARRAY):\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"//Request fields name, title, and url for returned recommendations\\n$p(\\\"setRequestFields\\\",[\\\"name\\\",\\\"title\\\",\\\"url\\\"])\",\n      \"language\": \"javascript\"\n    }\n  ]\n}\n[/block]\nInvoking this function before fetching the recommendation will make sure that recommendations only have these fields for returned metadata.\n\nIn order to make sure that we return only items that have all the request fields you specified, you can run the following before fetching recommendations. Here, AON = all or nothing.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"$p(\\\"setRequestFieldsAON\\\",true)\",\n      \"language\": \"javascript\"\n    }\n  ]\n}\n[/block]\nIf there is a subset of request fields that you want us to always return, but it is not the full set of request fields, then you can separately set the mandatory request fields. Note that the set of mandatory request fields you set *must* be a subset of the set of request fields, otherwise we will not return anything.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"//Mandatory request fields  title, and url for returned recommendations\\n$p(\\\"setMandatoryRequestFields\\\",[\\\"title\\\",\\\"url\\\"])\",\n      \"language\": \"javascript\"\n    }\n  ]\n}\n[/block]\nOnly items with the mandatory fields are returned. The remaining (non-mandatory) request fields are returned for the items that have them.\n\nNote that if you run `setRequestFieldsAON` that takes precedence over `setMandatoryRequestFields`.","excerpt":"","slug":"psetrequestfields-field_array","type":"fn","title":"$p(\"setRequestFields\")"}

$p("setRequestFields")


`$p("setRequestFields"): ([String]) -> undefined` [block:callout] { "type": "info", "title": "Technical documentation", "body": "This is technical documentation for the setRequestFields function. For broader context, see our documentation on [Editing Fields/Hiding Item](doc:checking-data-fields)." } [/block] You may send us any relevant data for your items, but you might not want those fields returned for rendering a recommendation on your side. In that case, you can use the SDK function $p("setRequestFields", FIELD_ARRAY): [block:code] { "codes": [ { "code": "//Request fields name, title, and url for returned recommendations\n$p(\"setRequestFields\",[\"name\",\"title\",\"url\"])", "language": "javascript" } ] } [/block] Invoking this function before fetching the recommendation will make sure that recommendations only have these fields for returned metadata. In order to make sure that we return only items that have all the request fields you specified, you can run the following before fetching recommendations. Here, AON = all or nothing. [block:code] { "codes": [ { "code": "$p(\"setRequestFieldsAON\",true)", "language": "javascript" } ] } [/block] If there is a subset of request fields that you want us to always return, but it is not the full set of request fields, then you can separately set the mandatory request fields. Note that the set of mandatory request fields you set *must* be a subset of the set of request fields, otherwise we will not return anything. [block:code] { "codes": [ { "code": "//Mandatory request fields title, and url for returned recommendations\n$p(\"setMandatoryRequestFields\",[\"title\",\"url\"])", "language": "javascript" } ] } [/block] Only items with the mandatory fields are returned. The remaining (non-mandatory) request fields are returned for the items that have them. Note that if you run `setRequestFieldsAON` that takes precedence over `setMandatoryRequestFields`.