<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.opentaps.org/docs/index.php?action=history&amp;feed=atom&amp;title=Digital_Products</id>
	<title>Digital Products - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://docs.opentaps.org/docs/index.php?action=history&amp;feed=atom&amp;title=Digital_Products"/>
	<link rel="alternate" type="text/html" href="https://docs.opentaps.org/docs/index.php?title=Digital_Products&amp;action=history"/>
	<updated>2026-04-30T05:21:13Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.32.1</generator>
	<entry>
		<id>https://docs.opentaps.org/docs/index.php?title=Digital_Products&amp;diff=6539&amp;oldid=prev</id>
		<title>Claudefeistel2: /* TECHNICAL NOTE */</title>
		<link rel="alternate" type="text/html" href="https://docs.opentaps.org/docs/index.php?title=Digital_Products&amp;diff=6539&amp;oldid=prev"/>
		<updated>2010-08-10T18:29:55Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;TECHNICAL NOTE&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 18:29, 10 August 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l16&quot; &gt;Line 16:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 16:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Fulfillment is done by the service fufillDigitalItems which is called from within checkItemDigitalFulfillment.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Fulfillment is done by the service fufillDigitalItems which is called from within checkItemDigitalFulfillment.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Digital_Products_without_Inventory]] &amp;lt;&amp;lt; Manual Pages &amp;gt;&amp;gt; [[Removing_Products_and_Categories]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Introduction_to_Catalog_Manager_Concepts_and_Terminology]] &amp;lt;&amp;lt; Section Pages &amp;gt;&amp;gt; [[More_About_Working_with_Categories_and_Catalogs]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Claudefeistel2</name></author>
		
	</entry>
	<entry>
		<id>https://docs.opentaps.org/docs/index.php?title=Digital_Products&amp;diff=3273&amp;oldid=prev</id>
		<title>Sichen: Protected &quot;Digital Products&quot;: Sysop page [edit=sysop:move=sysop]</title>
		<link rel="alternate" type="text/html" href="https://docs.opentaps.org/docs/index.php?title=Digital_Products&amp;diff=3273&amp;oldid=prev"/>
		<updated>2008-08-05T19:28:34Z</updated>

		<summary type="html">&lt;p&gt;Protected &amp;quot;&lt;a href=&quot;/docs/index.php?title=Digital_Products&quot; title=&quot;Digital Products&quot;&gt;Digital Products&lt;/a&gt;&amp;quot;: Sysop page [edit=sysop:move=sysop]&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 19:28, 5 August 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Sichen</name></author>
		
	</entry>
	<entry>
		<id>https://docs.opentaps.org/docs/index.php?title=Digital_Products&amp;diff=3272&amp;oldid=prev</id>
		<title>Sichen: New page: Digital products are products such as downloadable music or books for which there is no physical fulfillment.  Once they are ordered and paid for, they are immediately fulfilled.  To set u...</title>
		<link rel="alternate" type="text/html" href="https://docs.opentaps.org/docs/index.php?title=Digital_Products&amp;diff=3272&amp;oldid=prev"/>
		<updated>2008-08-05T19:28:34Z</updated>

		<summary type="html">&lt;p&gt;New page: Digital products are products such as downloadable music or books for which there is no physical fulfillment.  Once they are ordered and paid for, they are immediately fulfilled.  To set u...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Digital products are products such as downloadable music or books for which there is no physical fulfillment.  Once they are ordered and paid for, they are immediately fulfilled.&lt;br /&gt;
&lt;br /&gt;
To set up digital products, you can either use the existing “DIGITAL GOOD” product type or create your own ProductType (in seed data XML file) for which isPhysical=”N” and isDigital=”Y”.  Then, products are created as “digital” by assigning them to this product type in the Catalog Manager.  &lt;br /&gt;
&lt;br /&gt;
Even though digital products do not have physical shipment, they still must be “fulfilled” or delivered to the user.  This could be done by creating a service which should be executed each time the digital product is ordered and which performs the steps for fulfilling it.  Then, the service needs to be associated with the digital product.  This is done by setting up a Content entity with a serviceName field for the fulfillment service and associating it with the Product under the [Catalog] &amp;gt; product &amp;gt; [Content] tab.  Associate it as “Fulfillment External Sync” for synchronous or “Fulfillment External Async” for asynchronous fulfillment.  Synchronous fulfillment will happen as the order is being placed.  Asynchronoous fulfillment will be scheduled as a batch job to run later.  If the fulfillment fails once, the job scheduler will generally schedule it again.  Generally, asynchronous fulfillment is better.&lt;br /&gt;
&lt;br /&gt;
Be very careful: it is possible to have the same fulfillment service associated with a Product several times.  This could cause the product to be fulfilled several times.&lt;br /&gt;
&lt;br /&gt;
Email fulfillment is currently not supported.&lt;br /&gt;
&lt;br /&gt;
When an order item is approved (typically by authorizing the credit card and approving the whole order), the system will check for order items which are digital products.  If so, it will call fulfillDigitalItem, which will look for a service for fulfilling the digital product.  All digital items on an order will be automatically invoiced and then marked COMPLETE.&lt;br /&gt;
&lt;br /&gt;
====TECHNICAL NOTE====&lt;br /&gt;
&lt;br /&gt;
This is all done with the checkItemDigitalFulfillment service, which fires off as a SECA when order item is marked ITEM_APPROVED, as defined in applications/order/servicedef/secas.xml&lt;br /&gt;
&lt;br /&gt;
Fulfillment is done by the service fufillDigitalItems which is called from within checkItemDigitalFulfillment.&lt;/div&gt;</summary>
		<author><name>Sichen</name></author>
		
	</entry>
</feed>