<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://izara.io/wiki/index.php?action=history&amp;feed=atom&amp;title=Service_-_Sell_Offer_System_Terms</id>
	<title>Service - Sell Offer System Terms - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://izara.io/wiki/index.php?action=history&amp;feed=atom&amp;title=Service_-_Sell_Offer_System_Terms"/>
	<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=Service_-_Sell_Offer_System_Terms&amp;action=history"/>
	<updated>2026-05-05T15:28:04Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://izara.io/wiki/index.php?title=Service_-_Sell_Offer_System_Terms&amp;diff=3502&amp;oldid=prev</id>
		<title>Sven the Barbarian: Created page with &quot;= Overview =  Sell Offer System Terms can be applied to SellOffers to set buyer requirements linked to system level properties such as what role the buyer has.  = Examples =  * Only allowing buyers with verifierUser role to purchase * Blocking buyers who have a number of issues decided against them over a period of time * Excluding buyers with verified address in specific locations, regardless of delivery address  = Notes =  * Anyone can create a sellOfferSystemTerm * se...&quot;</title>
		<link rel="alternate" type="text/html" href="https://izara.io/wiki/index.php?title=Service_-_Sell_Offer_System_Terms&amp;diff=3502&amp;oldid=prev"/>
		<updated>2025-08-12T13:13:45Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;= Overview =  Sell Offer System Terms can be applied to SellOffers to set buyer requirements linked to system level properties such as what role the buyer has.  = Examples =  * Only allowing buyers with verifierUser role to purchase * Blocking buyers who have a number of issues decided against them over a period of time * Excluding buyers with verified address in specific locations, regardless of delivery address  = Notes =  * Anyone can create a sellOfferSystemTerm * se...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Overview =&lt;br /&gt;
&lt;br /&gt;
Sell Offer System Terms can be applied to SellOffers to set buyer requirements linked to system level properties such as what role the buyer has.&lt;br /&gt;
&lt;br /&gt;
= Examples =&lt;br /&gt;
&lt;br /&gt;
* Only allowing buyers with verifierUser role to purchase&lt;br /&gt;
* Blocking buyers who have a number of issues decided against them over a period of time&lt;br /&gt;
* Excluding buyers with verified address in specific locations, regardless of delivery address&lt;br /&gt;
&lt;br /&gt;
= Notes =&lt;br /&gt;
&lt;br /&gt;
* Anyone can create a sellOfferSystemTerm&lt;br /&gt;
* sellOfferSystemTerms are immutable, new settings make new sellOfferSystemTerm&lt;br /&gt;
* hash settings to create sellOfferSystemTermId, so no duplicates&lt;br /&gt;
* anyone can link an existing sellOfferSystemTerm to their sellOffer&lt;br /&gt;
&lt;br /&gt;
= Repository =&lt;br /&gt;
&lt;br /&gt;
https://bitbucket.org/izara-market-services/izara-market-products-sell-offer-system-terms&lt;br /&gt;
&lt;br /&gt;
= Object Schemas =&lt;br /&gt;
; Additional Information: [[Per Service Schemas]]&lt;br /&gt;
&lt;br /&gt;
== objType ==&lt;br /&gt;
&lt;br /&gt;
=== sellOfferSystemTerm ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	objectType: &amp;quot;sellOfferSystemTerm&amp;quot;,&lt;br /&gt;
	canDelete: false,&lt;br /&gt;
	storageResources: {&lt;br /&gt;
		myGraph: {&lt;br /&gt;
			storageType: &amp;quot;graph&amp;quot;,&lt;br /&gt;
			graphServerTag: &amp;quot;GraphHandler&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
    },&lt;br /&gt;
    fieldNames: {&lt;br /&gt;
		sellOfferSystemTermId: {&lt;br /&gt;
			type: &amp;quot;string&amp;quot;,&lt;br /&gt;
			hashOnCreate: [&amp;quot;systemTermType&amp;quot;, &amp;quot;systemTypeSettings&amp;quot;],&lt;br /&gt;
			canUpdate: false,&lt;br /&gt;
			storageResourceTags: ['myGraph']&lt;br /&gt;
		}&lt;br /&gt;
		systemTermType: {&lt;br /&gt;
			type: &amp;quot;string&amp;quot;, // list? systemRole|issuesDecided|verifiedAddressNotLocationId|...&lt;br /&gt;
			canUpdate: false,&lt;br /&gt;
			storageResourceTags: ['myGraph']&lt;br /&gt;
		}&lt;br /&gt;
		systemTypeSettings:{&lt;br /&gt;
			type: &amp;quot;object&amp;quot;,&lt;br /&gt;
			canUpdate: false,&lt;br /&gt;
			storageResourceTags: ['myGraph']&lt;br /&gt;
		}&lt;br /&gt;
    },&lt;br /&gt;
    identifiers: [&lt;br /&gt;
		{&lt;br /&gt;
			type: &amp;quot;identifier&amp;quot;,&lt;br /&gt;
			fieldName: &amp;quot;sellOfferSystemTermId&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== userPassSellOfferSystemTerm ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	objectType: &amp;quot;userPassSellOfferSystemTerm&amp;quot;,&lt;br /&gt;
	canDelete: false,&lt;br /&gt;
	storageResources: {&lt;br /&gt;
		dynamoDB: {&lt;br /&gt;
			storageType: &amp;quot;dynamoDB&amp;quot;,&lt;br /&gt;
			tableName: &amp;quot;userPassSellOfferSystemTerm&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
    },&lt;br /&gt;
    fieldNames: {&lt;br /&gt;
		userId: {&lt;br /&gt;
			type: &amp;quot;string&amp;quot;,&lt;br /&gt;
			canUpdate: false,&lt;br /&gt;
			storageResourceTags: ['dynamoDB']&lt;br /&gt;
		}&lt;br /&gt;
		sellOfferSystemTermId: {&lt;br /&gt;
			type: &amp;quot;string&amp;quot;,&lt;br /&gt;
			canUpdate: false,&lt;br /&gt;
			storageResourceTags: ['dynamoDB']&lt;br /&gt;
		}&lt;br /&gt;
		userPass: {&lt;br /&gt;
			type: &amp;quot;boolean&amp;quot;,&lt;br /&gt;
			canUpdate: true,&lt;br /&gt;
			storageResourceTags: ['dynamoDB']&lt;br /&gt;
		}&lt;br /&gt;
    },&lt;br /&gt;
    identifiers: [&lt;br /&gt;
		{&lt;br /&gt;
			type: &amp;quot;partitionKey&amp;quot;,&lt;br /&gt;
			fieldName: &amp;quot;userId&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
		{&lt;br /&gt;
			type: &amp;quot;sortKey&amp;quot;,&lt;br /&gt;
			fieldName: &amp;quot;sellOfferSystemTermId&amp;quot;&lt;br /&gt;
		},&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* used to cache check if user passes a sellOfferSystemTerm&lt;br /&gt;
* stores only one sellOfferSystemTerm, so one sellOffer may need to check many to confirm a user can complete purchase&lt;br /&gt;
* storedCache, so if any detail in a user changes stale result may return (user could manually processes again)&lt;br /&gt;
&lt;br /&gt;
== Object Relationships ==&lt;br /&gt;
&lt;br /&gt;
=== hasSellOfferSystemTerm ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;hasSellOfferSystemTerm&amp;quot;: {&lt;br /&gt;
		canChangeToRelTypes: [&lt;br /&gt;
			{&lt;br /&gt;
				serviceTag:&amp;quot;sellOfferSystemTerm&amp;quot;,&lt;br /&gt;
				relationshipTag: &amp;quot;disabledSellOfferSystemTerm&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
		],&lt;br /&gt;
		storageResources: {&lt;br /&gt;
			myGraph: {&lt;br /&gt;
				storageType: &amp;quot;graph&amp;quot;,&lt;br /&gt;
				graphServerTag: &amp;quot;GraphHandler&amp;quot;			&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		links: [&lt;br /&gt;
			{&lt;br /&gt;
				storageResourceTags: [&amp;quot;myGraph&amp;quot;],&lt;br /&gt;
				from: {&lt;br /&gt;
					objType: {&lt;br /&gt;
						serviceTag: &amp;quot;sellOfferManager&amp;quot;,&lt;br /&gt;
						objectType: &amp;quot;sellOffer&amp;quot;&lt;br /&gt;
					},&lt;br /&gt;
					linkType: &amp;quot;many&amp;quot;,&lt;br /&gt;
				},&lt;br /&gt;
				to: {&lt;br /&gt;
					objType: {&lt;br /&gt;
						serviceTag: &amp;quot;sellOfferSystemTerm&amp;quot;,&lt;br /&gt;
						objectType: &amp;quot;sellOfferSystemTerm&amp;quot;&lt;br /&gt;
					},&lt;br /&gt;
					linkType: &amp;quot;many&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		]&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== disabledSellOfferSystemTerm ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	&amp;quot;disabledSellOfferSystemTerm&amp;quot;: {&lt;br /&gt;
		canChangeToRelTypes: [&lt;br /&gt;
			{&lt;br /&gt;
				serviceTag:&amp;quot;sellOfferSystemTerm&amp;quot;,&lt;br /&gt;
				relationshipTag: &amp;quot;hasSellOfferSystemTerm&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
		],&lt;br /&gt;
		storageResources: {&lt;br /&gt;
			myGraph: {&lt;br /&gt;
				storageType: &amp;quot;graph&amp;quot;,&lt;br /&gt;
				graphServerTag: &amp;quot;GraphHandler&amp;quot;			&lt;br /&gt;
			}&lt;br /&gt;
		},&lt;br /&gt;
		links: [&lt;br /&gt;
			{&lt;br /&gt;
				storageResourceTags: [&amp;quot;myGraph&amp;quot;],&lt;br /&gt;
				from: {&lt;br /&gt;
					objType: {&lt;br /&gt;
						serviceTag: &amp;quot;sellOfferManager&amp;quot;,&lt;br /&gt;
						objectType: &amp;quot;sellOffer&amp;quot;&lt;br /&gt;
					},&lt;br /&gt;
					linkType: &amp;quot;many&amp;quot;,&lt;br /&gt;
				},&lt;br /&gt;
				to: {&lt;br /&gt;
					objType: {&lt;br /&gt;
						serviceTag: &amp;quot;sellOfferSystemTerm&amp;quot;,&lt;br /&gt;
						objectType: &amp;quot;sellOfferSystemTerm&amp;quot;&lt;br /&gt;
					},&lt;br /&gt;
					linkType: &amp;quot;many&amp;quot;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		]&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Connects a sellOffer to a sellOfferSystemTerm&lt;br /&gt;
&lt;br /&gt;
= Flows =&lt;br /&gt;
&lt;br /&gt;
== checkSellOfferSystemTerms ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{ &lt;br /&gt;
	flowTag: &amp;quot;checkSellOfferSystemTerms&amp;quot;,&lt;br /&gt;
	handleObj: &amp;quot;one&amp;quot;,&lt;br /&gt;
	statusType: &amp;quot;storedCache&amp;quot;,&lt;br /&gt;
	objType:{&lt;br /&gt;
		serviceTag: &amp;quot;sellOfferSystemTerm&amp;quot;,&lt;br /&gt;
		objectType: &amp;quot;sellOfferSystemTerm&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	event:[&amp;quot;ownTopic&amp;quot;],&lt;br /&gt;
	outputTopic: true,&lt;br /&gt;
    stepProperties:{&lt;br /&gt;
		&amp;quot;uuid1&amp;quot;:{&lt;br /&gt;
			objectField:{ &lt;br /&gt;
				objType:{&lt;br /&gt;
					serviceTag: &amp;quot;user&amp;quot;,&lt;br /&gt;
					objectType: &amp;quot;user&amp;quot; &lt;br /&gt;
				},&lt;br /&gt;
				fieldName:&amp;quot;userId&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;uuid2&amp;quot;:{&lt;br /&gt;
			objectField:{ &lt;br /&gt;
				objType:{&lt;br /&gt;
					serviceTag: &amp;quot;sellOfferSystemTerm&amp;quot;,&lt;br /&gt;
					objectType: &amp;quot;sellOfferSystemTerm&amp;quot; &lt;br /&gt;
				},&lt;br /&gt;
				fieldName:&amp;quot;sellOfferSystemTermId&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
		},&lt;br /&gt;
		&amp;quot;uuid3&amp;quot;:{&lt;br /&gt;
			objectField:{ &lt;br /&gt;
				objType:{&lt;br /&gt;
					serviceTag: &amp;quot;sellOfferSystemTerm&amp;quot;,&lt;br /&gt;
					objectType: &amp;quot;sellOfferSystemTerm&amp;quot; &lt;br /&gt;
				},&lt;br /&gt;
				fieldName:&amp;quot;userPass&amp;quot;&lt;br /&gt;
			},&lt;br /&gt;
		},&lt;br /&gt;
    },&lt;br /&gt;
	flowSteps:{&lt;br /&gt;
		In:{&lt;br /&gt;
			properties:[&amp;quot;uuid1&amp;quot;, &amp;quot;uuid2&amp;quot;],&lt;br /&gt;
		},&lt;br /&gt;
		Out:{&lt;br /&gt;
			properties:[&amp;quot;uuid1&amp;quot;, &amp;quot;uuid2&amp;quot;, &amp;quot;uuid3&amp;quot;],&lt;br /&gt;
		},&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* checks if a user passes a specific sellOfferSystemTerm&lt;br /&gt;
&lt;br /&gt;
= Working documents =&lt;br /&gt;
&lt;br /&gt;
[[:Category:Working_documents - Sell Offer System Terms|Sell Offer System Terms]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Backend services| Sell Offer System Terms]]&lt;/div&gt;</summary>
		<author><name>Sven the Barbarian</name></author>
	</entry>
</feed>