Ok thanks, I guess you had a typo in your revert commit message because I
couldn't find a mention of the original commit number when searching.

Regards
Scott


On 30 August 2016 at 17:58, Jacques Le Roux <jacques.le.r...@les7arts.com>
wrote:

> Hi Scott,
>
> Yes, this has been reverted one week ago: https://issues.apache.org/jira
> /browse/OFBIZ-7966?focusedCommentId=15431090
>
> Jacques
>
>
> Le 29/08/2016 à 23:38, Scott Gray a écrit :
>
>> Hi Jacques,
>>
>> None whatsoever. I was just trying to offer a design that would truly
>> decouple the tracking code functionality from the order component.
>>
>> Has this commit been reverted yet?  I think that might be a good first
>> step.
>>
>> Regards
>> Scott
>>
>> On 29 August 2016 at 08:02, Jacques Le Roux <jacques.le.r...@les7arts.com
>> >
>> wrote:
>>
>> HI Scott,
>>>
>>> This sounds like an actionable plan, any plan to action it?
>>>
>>> Jacques
>>>
>>>
>>>
>>> Le 25/08/2016 à 07:38, Scott Gray a écrit :
>>>
>>> I was thinking that:
>>>> 1. We need a means for the tracking code logic to be able to access the
>>>> cookie data in the request without needing to add any logic to the order
>>>> component
>>>> 2. We need a means for the order tracking code logic to be able to
>>>> create
>>>> TrackingCodeOrder records when the order is created, again without
>>>> adding
>>>> any logic to the order component
>>>>
>>>> This could be achieved by:
>>>> 1. Having a generic event that automatically adds all cookies to the
>>>> session shopping cart as attributes.  This could be done on each request
>>>> or
>>>> as a chained event running just before the createOrder event
>>>> 2. Refactoring order creation to not depend so heavily on events (i.e.
>>>> use
>>>> a service that takes a shopping cart instead)
>>>> 3. Add a service ECA (in the marketing component) to the service from #2
>>>> that allows the TrackingCodeOrder records to be created from the cart
>>>> attributes
>>>>
>>>> Doing the above would remove the need for the order component to know
>>>> anything at all about the tracking code logic.  It would also allow
>>>> developers to make use of #1 and #2 for other custom purposes that
>>>> require
>>>> reading cookies and/or interacting with the shopping cart while creating
>>>> orders.
>>>>
>>>> Regards
>>>> Scott
>>>>
>>>>
>>>> On 24 August 2016 at 20:24, Pierre Smits <pierre.sm...@gmail.com>
>>>> wrote:
>>>>
>>>> Hi Scott,
>>>>
>>>>> Thank you for the feedback. This is something I can work with.
>>>>>
>>>>> What I see now is the following:
>>>>>
>>>>>      1. compile-time dependency from order on marketing regarding the
>>>>> makeTrackingCodeOrders
>>>>>      function
>>>>>      2. run-time dependencies from cmssite, ecommerce and webpos
>>>>> several
>>>>>      other functions in TrackingCodeEvents through controller
>>>>> references
>>>>> in
>>>>>      those components.
>>>>>
>>>>> I rather see the run-time dependency than the compile-time dependency.
>>>>>
>>>>> With respect to solving the errors generated at run-time (and I think
>>>>> this
>>>>> can happen anywhere in any optional component that is depended upon), I
>>>>> see
>>>>> 3 potential solutions:
>>>>>
>>>>>      1. Have an generic solution - somewhere at a lower level-  that
>>>>> first
>>>>>      checks the existence of the referred event/service before
>>>>> executing
>>>>> it
>>>>>      2. Put the dependent event/service code in each optional component
>>>>> (in
>>>>>      the TrackingCode case: order for make..., cmssite, ecommerce,
>>>>> webpos
>>>>> for
>>>>>      the others)
>>>>>      3. Have it the dependency configurable.
>>>>>
>>>>> The first - to me - seems to be very complex. And it adds additional
>>>>> resource consumption. And then we still have to take into consideration
>>>>> that in a multi-tenancy setup some components (and their
>>>>> services/events)
>>>>> are not going to be used by 1 or more tenants.
>>>>>
>>>>> The second also seems undesirable.
>>>>>
>>>>> Best regards,
>>>>>
>>>>>
>>>>> Pierre Smits
>>>>>
>>>>> ORRTIZ.COM <http://www.orrtiz.com>
>>>>> OFBiz based solutions & services
>>>>>
>>>>> OFBiz Extensions Marketplace
>>>>> http://oem.ofbizci.net/oci-2/
>>>>>
>>>>> On Wed, Aug 24, 2016 at 9:59 AM, Scott Gray <
>>>>> scott.g...@hotwaxsystems.com>
>>>>> wrote:
>>>>>
>>>>> Hi Pierre, Jacopo, Jacques,
>>>>>
>>>>>> Sticking specifically to the commit being discussed, the beauty of the
>>>>>> tracking code logic is that it effectively does nothing if you aren't
>>>>>>
>>>>>> using
>>>>>
>>>>> it.  Granted TrackingCodeEvents.makeTrackingCodeOrders() could do with
>>>>>> being improved so that it exits earlier if no cookies are found, but
>>>>>> it
>>>>>> still ultimately does nothing functional if you aren't using it.
>>>>>>
>>>>>> It is true however that there is a build dependency that prevents
>>>>>> users
>>>>>> from simply removing the marketing component.  And I agree that this
>>>>>>
>>>>>> could
>>>>>
>>>>> be an issue for users who want to strip OFBiz right down to just the
>>>>>> components they want to use.
>>>>>>
>>>>>> Your solution of using a configuration and replacing the build
>>>>>> dependency
>>>>>> with a conditional runtime dependency does seem good on the surface.
>>>>>>
>>>>>> But I
>>>>>
>>>>> think it presents issues for a few reasons:
>>>>>> 1. I don't think there should be a two step process to
>>>>>> enabling/disabling
>>>>>> something.  Adding a component and then having to switch it on or
>>>>>>
>>>>>> removing
>>>>>
>>>>> a component and having to switch off its features seems like an
>>>>>>
>>>>>> unnecessary
>>>>>
>>>>> double step to me.
>>>>>> 2. Having the configuration for one component used within another
>>>>>> still
>>>>>> creates a form of dependency between the two
>>>>>> 3. This one kind of reiterates the first two points, but if we're
>>>>>> going
>>>>>>
>>>>>> to
>>>>>
>>>>> deal with this then we should be considering a solution that would work
>>>>>>
>>>>>> as
>>>>>
>>>>> though the component were being added or removed via hot-deploy.  We
>>>>>> shouldn't take shortcuts just because we happen to have both
>>>>>> components
>>>>>>
>>>>>> in
>>>>>
>>>>> the same repository.  It also presents us with an opportunity to
>>>>>> improve
>>>>>> the framework for hot-deploy component developers.
>>>>>>
>>>>>> Rather than saying "we want to remove the build dependency between
>>>>>> order
>>>>>> and marketing" I think we should instead be saying "we want to allow
>>>>>> another component to touch on web order processing without actually
>>>>>> touching the order component".
>>>>>>
>>>>>> For services this is easy using Service ECAs, but unfortunately we
>>>>>> don't
>>>>>> have anything similar for controller events. I don't have the
>>>>>> solution,
>>>>>>
>>>>>> but
>>>>>
>>>>> I think that's the line of thought we need to pick up in order to
>>>>>> proceed
>>>>>> effectively with this type of decoupling.
>>>>>>
>>>>>> Regards
>>>>>> Scott
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 23 August 2016 at 20:52, Pierre Smits <pierre.sm...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>> Hi Jacopo,
>>>>>>
>>>>>>> Thank you for reacting.
>>>>>>>
>>>>>>> ERP solutions are, by their intent, modular in nature. This is driven
>>>>>>>
>>>>>>> by
>>>>>> business requirements. And leads - by default - to runtime
>>>>>> configuration.
>>>>>> Which is especially important in multi-tenancy implementations.
>>>>>>
>>>>>>> Some want solutions like cmssite, ecommerce and webpos. Some don't,
>>>>>>>
>>>>>>> Some
>>>>>> have other solutions in place
>>>>>>
>>>>>>> Some want solutions like humanres, manufacturing, inventory
>>>>>>> management
>>>>>>>
>>>>>>> and
>>>>>>
>>>>>> marketing & SFA solutions. Others don't or have something else in
>>>>>>> place
>>>>>>> (e.g. SalesForce for SFA/CRM, or Mailchimp for mailing list
>>>>>>>
>>>>>>> management).
>>>>>> Runtime configuration in ERP solutions are as common as implementation
>>>>>>
>>>>>>> experts....
>>>>>>> Runtime configurations can easily be explained, including what the
>>>>>>> requirements are.
>>>>>>>
>>>>>>> And we have to face it, regarding functionalities the applications in
>>>>>>>
>>>>>>> the
>>>>>> (optional) marketing component - when compared against Mailchimp and -
>>>>>>
>>>>>>> SalesForce - are sub par.
>>>>>>>
>>>>>>> It seems we are reverting back to the discussion of what core is. In
>>>>>>> my
>>>>>>> opinion, solutions like humanres, manufacturing, inventory
>>>>>>> management,
>>>>>>> integrations of 3rd party payment and shipment solutions, and
>>>>>>>
>>>>>>> marketing/SFA
>>>>>>
>>>>>> are not. As components in the specialpurpose stack, and themes are
>>>>>>> not.
>>>>>>>
>>>>>>> It
>>>>>>
>>>>>> all depends on business requirements.
>>>>>>> Disentangling these solutions from the application stack into another
>>>>>>>
>>>>>>> would
>>>>>>
>>>>>> certainly increase the appeal for adopters. And would make OFBiz more
>>>>>>> easier to explain.
>>>>>>>
>>>>>>> With respect to OFBiz events and services, I see ambiguity in
>>>>>>>
>>>>>>> explanation.
>>>>>>
>>>>>> Events are web aware, but aren't to be used as services (as in the
>>>>>>>
>>>>>>> common
>>>>>> understanding of the term). So exposing (or even transforming) these
>>>>>> into
>>>>>> services would be a good thing (where possible, to be assessed on a
>>>>>> case
>>>>>> by
>>>>>>
>>>>>> case scenario). Transforming these TrackingCodeEvents into services
>>>>>>>
>>>>>>> could
>>>>>> be a good start as the impact is minor. And it would reduce compile
>>>>>> time
>>>>>> dependencies. Isn't that a goal to strive?
>>>>>>
>>>>>>> Best regards,
>>>>>>>
>>>>>>>
>>>>>>> Pierre Smits
>>>>>>>
>>>>>>> ORRTIZ.COM <http://www.orrtiz.com>
>>>>>>> OFBiz based solutions & services
>>>>>>>
>>>>>>> OFBiz Extensions Marketplace
>>>>>>> http://oem.ofbizci.net/oci-2/
>>>>>>>
>>>>>>> On Tue, Aug 23, 2016 at 10:05 AM, Jacques Le Roux <
>>>>>>> jacques.le.r...@les7arts.com> wrote:
>>>>>>>
>>>>>>> That makes quite sense, thanks Jacopo!
>>>>>>>
>>>>>>>> Jacques
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Le 23/08/2016 à 09:50, Jacopo Cappellato a écrit :
>>>>>>>>
>>>>>>>> Hi Pierre,
>>>>>>>>
>>>>>>>>> cmssite, ecommerce and webpos are specialpurpose components that
>>>>>>>>> can
>>>>>>>>>
>>>>>>>>> rely
>>>>>>>> on the artifacts (services, entities, labels, screens and *classes*)
>>>>>>>>
>>>>>>>>> defined in the application component (including the "marketing"
>>>>>>>>>
>>>>>>>>> component
>>>>>>>> to which TrackingCodeEvents belongs).
>>>>>>>>
>>>>>>>>> With that said, there is a chance that you are misunderstanding the
>>>>>>>>> purpose
>>>>>>>>> of Events vs services.
>>>>>>>>> Events should be used for web applications (i.e. they are http
>>>>>>>>>
>>>>>>>>> aware)
>>>>>>>>
>>>>>>> while
>>>>>>
>>>>>>> services should be used to implement re-usable business logic that
>>>>>>>>>
>>>>>>>>> can
>>>>>>>>
>>>>>>> be
>>>>>>
>>>>>>> used in a wider scope (i.e. not limited to web applications, like
>>>>>>>> batch
>>>>>>>>
>>>>>>> jobs, integrations with external systems etc...).
>>>>>>>
>>>>>>>> Untangling the components' dependencies (or merging mutual dependent
>>>>>>>>>
>>>>>>>>> parts
>>>>>>>> into one component, if not possible otherwise) is an important task
>>>>>>>> but
>>>>>>>>
>>>>>>> it
>>>>>>>
>>>>>>> requires proper (and not so obvious) design and tools; the recent
>>>>>>>> move
>>>>>>>>
>>>>>>> to
>>>>>>
>>>>>>> Gradle is a small step in the right direction, in my opinion, but a
>>>>>>>> lot
>>>>>>>>
>>>>>>> more design work is required to clear the dependencies in an
>>>>>>>
>>>>>>>> organized
>>>>>>>>
>>>>>>> and
>>>>>>
>>>>>>> consistent way.
>>>>>>>>
>>>>>>>>> And at this stage I don't think that taking shortcuts, like
>>>>>>>>>
>>>>>>>>> introducing
>>>>>>>>
>>>>>>> new
>>>>>>>
>>>>>>>> settings to disable the calls to the service of another component,
>>>>>>>>>
>>>>>>>>> as
>>>>>>>>
>>>>>>> was
>>>>>>
>>>>>>> proposed in your and Jacques' contribution, is the right way to go
>>>>>>>> because
>>>>>>>> it will make the system more difficult to configure and manage to
>>>>>>>> our
>>>>>>>>
>>>>>>> users.
>>>>>>
>>>>>>> And in general, by converting an event to a service, we indeed
>>>>>>>>>
>>>>>>>>> remove
>>>>>>>>
>>>>>>> a
>>>>>>
>>>>>> compile time dependency but the runtime dependency is still there:
>>>>>>>
>>>>>>>> and
>>>>>>>>
>>>>>>> this
>>>>>>
>>>>>>> is risky to adopters that may think that there is no dependency and
>>>>>>>>>
>>>>>>>>> may
>>>>>>>>
>>>>>>> disable a component that is instead required by the system.
>>>>>>>
>>>>>>>> Kind regards,
>>>>>>>>>
>>>>>>>>> Jacopo
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Mon, Aug 22, 2016 at 9:16 PM, Pierre Smits <
>>>>>>>>>
>>>>>>>>> pierre.sm...@gmail.com
>>>>>>>>
>>>>>>> wrote:
>>>>>>
>>>>>>> Hi Jacopo,
>>>>>>>>>
>>>>>>>>> I see that most functions in TrackingCodeEvents.java are used in
>>>>>>>>>>
>>>>>>>>>> cmssite,
>>>>>>>>>
>>>>>>>> ecommerce and webpos. Should we not convert all to services?
>>>>>>>>
>>>>>>>>> Best regards,
>>>>>>>>>>
>>>>>>>>>> Pierre Smits
>>>>>>>>>>
>>>>>>>>>> ORRTIZ.COM <http://www.orrtiz.com>
>>>>>>>>>> OFBiz based solutions & services
>>>>>>>>>>
>>>>>>>>>> OFBiz Extensions Marketplace
>>>>>>>>>> http://oem.ofbizci.net/oci-2/
>>>>>>>>>>
>>>>>>>>>> On Mon, Aug 22, 2016 at 4:00 PM, Jacopo Cappellato
>>>>>>>>>>
>>>>>>>>>> <jacopo.cappellato@
>>>>>>>>>
>>>>>>>> hotwaxsystems.com> wrote:
>>>>>>>
>>>>>>>> Hi Pierre,
>>>>>>>>>>
>>>>>>>>>> since Jacques responded to my mail, acknowledging that there are
>>>>>>>>>>>
>>>>>>>>>>> issues
>>>>>>>>>>
>>>>>>>>> and
>>>>>>>>
>>>>>>>>> that he is going to fix them, I will let him complete the work
>>>>>>>>>> before
>>>>>>>>>>
>>>>>>>>> digging into the code details.
>>>>>>>
>>>>>>>> Anyway, they are pretty basic issues and I am concerned that you
>>>>>>>>>>>
>>>>>>>>>>> and
>>>>>>>>>>
>>>>>>>>> Jacques couldn't identify them with your testing and review
>>>>>>
>>>>>>> process:
>>>>>>>>>>
>>>>>>>>> this
>>>>>>
>>>>>>> is why I was asking about them.
>>>>>>>>>>>
>>>>>>>>>>> Kind regards,
>>>>>>>>>>>
>>>>>>>>>>> Jacopo
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Mon, Aug 22, 2016 at 3:21 PM, Pierre Smits <
>>>>>>>>>>>
>>>>>>>>>>> pierre.sm...@gmail.com
>>>>>>>>>>
>>>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi Jacopo,
>>>>>>>>>>>
>>>>>>>>>>> Can you explain why it seems 'completely' wrong to you?
>>>>>>>>>>>>
>>>>>>>>>>>> Best regards,
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Pierre Smits
>>>>>>>>>>>>
>>>>>>>>>>>> ORRTIZ.COM <http://www.orrtiz.com>
>>>>>>>>>>>> OFBiz based solutions & services
>>>>>>>>>>>>
>>>>>>>>>>>> OFBiz Extensions Marketplace
>>>>>>>>>>>> http://oem.ofbizci.net/oci-2/
>>>>>>>>>>>>
>>>>>>>>>>>> On Mon, Aug 22, 2016 at 12:43 PM, Jacopo Cappellato <
>>>>>>>>>>>> jacopo.cappell...@hotwaxsystems.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> This contribution seems completely wrong to me. Pierre and
>>>>>>>>>>>>
>>>>>>>>>>>> Jacques,
>>>>>>>>>>>
>>>>>>>>>> have
>>>>>>
>>>>>>> you performed proper tests and reviews before committing it?
>>>>>>>>>>>>
>>>>>>>>>>>> Jacopo
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Mon, Aug 22, 2016 at 11:58 AM, <jler...@apache.org> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>> Author: jleroux
>>>>>>>>>>>>>
>>>>>>>>>>>>> Date: Mon Aug 22 09:58:35 2016
>>>>>>>>>>>>>> New Revision: 1757130
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> URL: http://svn.apache.org/viewvc?rev=1757130&view=rev
>>>>>>>>>>>>>> Log:
>>>>>>>>>>>>>> A modified patch from Pierre Smits for "remove build
>>>>>>>>>>>>>> dependency
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> of
>>>>>>>>>>>>>
>>>>>>>>>>>> Order
>>>>>>>
>>>>>>>> on Marketing" https://issues.apache.org/jira/browse/OFBIZ-7966
>>>>>>>>>>>>>
>>>>>>>>>>>>> Currently there is a build dependency from order -
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> CheckOutEvents.java
>>>>>>>>>>>>>>
>>>>>>>>>>>>> on
>>>>>>>>>>>>
>>>>>>>>>>>> marketing - TrackingCodeEvents.java
>>>>>>>>>>>>
>>>>>>>>>>>>> The createOrder function (in CheckOutEvents.java) calls the
>>>>>>>>>>>>>> makeTrackingCodeOrders function in TrackingCodeEvents.java
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> jleroux: I merged parts of the 2 patches, the 2nd was good but
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> missing
>>>>>>>>>>>>>>
>>>>>>>>>>>>> the
>>>>>>>>>>>>
>>>>>>>>>>>> makeTrackingCodeOrders service definition. I also fixed the
>>>>>>>>>>>>> warning
>>>>>>>>>>>>>
>>>>>>>>>>>> about
>>>>>>>
>>>>>>>> trackingCodeOrdersList creation not being generic
>>>>>>>>>>>>>
>>>>>>>>>>>>> Modified:
>>>>>>>>>>>>>>        ofbiz/trunk/applications/mark
>>>>>>>>>>>>>> eting/servicedef/services.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> xml
>>>>>>>>>>>>>
>>>>>>>>>>>>        ofbiz/trunk/applications/marketing/src/main/java/org/
>>>>>>
>>>>>>> apache/ofbiz/marketing/tracking/TrackingCodeEvents.java
>>>>>>>>>>>>>>        ofbiz/trunk/applications/order/data/
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> OrderSystemPropertyData.xml
>>>>>>>>>>>>>>
>>>>>>>>>>>>>        ofbiz/trunk/applications/order/src/main/java/org/
>>>>>>>>>>>> apache/ofbiz/order/
>>>>>>>>>>>>
>>>>>>>>>>>>> shoppingcart/CheckOutEvents.java
>>>>>>>>>>>>>
>>>>>>>>>>>>>        ofbiz/trunk/applications/order/src/main/java/org/
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> apache/ofbiz/order/
>>>>>>>>>>>>>>
>>>>>>>>>>>>> shoppingcart/CheckOutHelper.java
>>>>>>>>>>>>>
>>>>>>>>>>>>> Modified: ofbiz/trunk/applications/
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> marketing/servicedef/services.
>>>>>>>>>>>>>
>>>>>>>>>>>> xml
>>>>>>>
>>>>>>>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/
>>>>>>>>>>>> marketing/servicedef/services.xml?rev=1757130&r1=1757129&r2=
>>>>>>>>>>>>
>>>>>>>>>>>>> 1757130&view=diff
>>>>>>>>>>>>>> ============================================================
>>>>>>>>>>>>>> ==================
>>>>>>>>>>>>>> --- ofbiz/trunk/applications/marke
>>>>>>>>>>>>>> ting/servicedef/services.xml
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> (original)
>>>>>>>>>>>>>>
>>>>>>>>>>>>> +++ ofbiz/trunk/applications/marketing/servicedef/services.xml
>>>>>>>>>>>>> Mon
>>>>>>>>>>>>>
>>>>>>>>>>>> Aug
>>>>>>>
>>>>>>>> 22
>>>>>>>>>>>>
>>>>>>>>>>>> 09:58:35 2016
>>>>>>>>>>>>>
>>>>>>>>>>>>>> @@ -419,6 +419,12 @@ under the License.
>>>>>>>>>>>>>>             <attribute type="String" mode="IN" name="returnId"
>>>>>>>>>>>>>> optional="false"/>
>>>>>>>>>>>>>>         </service>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> +    <service name="makeTrackingCodeOrders" engine="java"
>>>>>>>>>>>>>> location="org.apache.ofbiz.marketing.tracking.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> TrackingCodeEvents"
>>>>>>>>>>>>>
>>>>>>>>>>>> invoke="makeTrackingCodeOrders"
>>>>>>>
>>>>>>>> auth="true">
>>>>>>>>>>>>>
>>>>>>>>>>>>>> +        <description>Makes a list of TrackingCodeOrder
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> entities
>>>>>>>>>>>>>
>>>>>>>>>>>> to
>>>>>>
>>>>>> be
>>>>>>>
>>>>>>>> attached to the current order</description>
>>>>>>>>>>>>
>>>>>>>>>>>> +        <attribute name="request" mode="IN"
>>>>>>>>>>>>>
>>>>>>>>>>>>>> type="javax.servlet.http.
>>>>>>>>>>>>>>
>>>>>>>>>>>>> HttpServletRequest"/>
>>>>>>>>>>>>
>>>>>>>>>>>> +        <attribute name="trackingCodeOrders" type="List"
>>>>>>>>>>>>>
>>>>>>>>>>>>>> mode="OUT"
>>>>>>>>>>>>>>
>>>>>>>>>>>>> optional="false"/>
>>>>>>>>>>>> +    </service>
>>>>>>>>>>>>
>>>>>>>>>>>>> +
>>>>>>>>>>>>>>         <!-- marketing permission service -->
>>>>>>>>>>>>>>         <service name="marketingPermissionService"
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> engine="simple"
>>>>>>>>>>>>>
>>>>>>>>>>>>                  location="component://common/
>>>>>>
>>>>>>> minilang/permission/
>>>>>>>>>>>>>
>>>>>>>>>>>> CommonPermissionServices.xml"
>>>>>>
>>>>>>> invoke="genericBasePermissionCheck">
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Modified: ofbiz/trunk/applications/
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> marketing/src/main/java/org/
>>>>>>>>>>>>>
>>>>>>>>>>>> apache/ofbiz/marketing/tracking/TrackingCodeEvents.java
>>>>>>
>>>>>>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/
>>>>>>>>>>>>>> marketing/src/main/java/org/apache/ofbiz/marketing/
>>>>>>>>>>>>>> tracking/TrackingCodeEvents.java?rev=1757130&r1=1757129&
>>>>>>>>>>>>>> r2=1757130&view=diff
>>>>>>>>>>>>>> ============================================================
>>>>>>>>>>>>>> ==================
>>>>>>>>>>>>>> --- ofbiz/trunk/applications/marketing/src/main/java/org/
>>>>>>>>>>>>>> apache/ofbiz/marketing/tracking/TrackingCodeEvents.java
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> (original)
>>>>>>>>>>>>>
>>>>>>>>>>>> +++ ofbiz/trunk/applications/marketing/src/main/java/org/
>>>>>>>
>>>>>>>> apache/ofbiz/marketing/tracking/TrackingCodeEvents.java Mon
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Aug
>>>>>>>>>>>>>
>>>>>>>>>>>> 22
>>>>>>
>>>>>> 09:58:35 2016
>>>>>>>
>>>>>>>> @@ -31,14 +31,14 @@ import org.apache.ofbiz.base.util.Debug;
>>>>>>>>>>>>>>     import org.apache.ofbiz.base.util.UtilDateTime;
>>>>>>>>>>>>>>     import org.apache.ofbiz.base.util.UtilMisc;
>>>>>>>>>>>>>>     import org.apache.ofbiz.base.util.UtilValidate;
>>>>>>>>>>>>>> -import org.apache.ofbiz.webapp.stats.VisitHandler;
>>>>>>>>>>>>>> -import org.apache.ofbiz.webapp.website.WebSiteWorker;
>>>>>>>>>>>>>>     import org.apache.ofbiz.entity.Delegator;
>>>>>>>>>>>>>>     import org.apache.ofbiz.entity.GenericEntityException;
>>>>>>>>>>>>>>     import org.apache.ofbiz.entity.GenericValue;
>>>>>>>>>>>>>>     import org.apache.ofbiz.entity.util.EntityQuery;
>>>>>>>>>>>>>>     import org.apache.ofbiz.entity.util.EntityUtilProperties;
>>>>>>>>>>>>>>     import org.apache.ofbiz.product.category.CategoryWorker;
>>>>>>>>>>>>>> +import org.apache.ofbiz.webapp.stats.VisitHandler;
>>>>>>>>>>>>>> +import org.apache.ofbiz.webapp.website.WebSiteWorker;
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>     /**
>>>>>>>>>>>>>>      * Events used for maintaining TrackingCode related
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> information
>>>>>>>>>>>>>
>>>>>>>>>>>> @@ -285,7 +285,7 @@ public class TrackingCodeEvents {
>>>>>>
>>>>>>>             String prodCatalogId = trackingCode.getString("
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> prodCatalogId");
>>>>>>>>>>>>>>
>>>>>>>>>>>>>             if (UtilValidate.isNotEmpty(prodCatalogId)) {
>>>>>>>>>>>>>
>>>>>>>>>>>>>                 session.setAttribute("CURRENT_CATALOG_ID",
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> prodCatalogId);
>>>>>>>>>>>>>>
>>>>>>>>>>>>> -            CategoryWorker.setTrail(request, new
>>>>>>>>>>>>>
>>>>>>>>>>>>> LinkedList());
>>>>>>>>>>>>
>>>>>>>>>>> +            CategoryWorker.setTrail(request, new
>>>>>>
>>>>>>> LinkedList<String>());
>>>>>>>>>>>>>>
>>>>>>>>>>>>>             }
>>>>>>>>>>>>>
>>>>>>>>>>>>>             // if forward/redirect is needed, do a
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> response.sendRedirect
>>>>>>>>>>>>>>
>>>>>>>>>>>>> and
>>>>>>>>>>>> return null to tell the control servlet to not do any other
>>>>>>>>>>>>
>>>>>>>>>>>>> requests/views
>>>>>>>>>>>>>
>>>>>>>>>>>>> Modified: ofbiz/trunk/applications/order/data/
>>>>>>>>>>>>>
>>>>>>>>>>>>>> OrderSystemPropertyData.xml
>>>>>>>>>>>>>>
>>>>>>>>>>>>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/
>>>>>>>>>>>>> order/
>>>>>>>>>>>>>
>>>>>>>>>>>> data/
>>>>>>>
>>>>>>>> OrderSystemPropertyData.xml?rev=1757130&r1=1757129&r2=
>>>>>>>>>>>>
>>>>>>>>>>>> 1757130&view=diff
>>>>>>>>>>>>> ============================================================
>>>>>>>>>>>>>
>>>>>>>>>>>>> ==================
>>>>>>>>>>>>>> --- ofbiz/trunk/applications/order/data/
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> OrderSystemPropertyData.xml
>>>>>>>>>>>>>>
>>>>>>>>>>>>> (original)
>>>>>>>>>>>> +++ ofbiz/trunk/applications/order/data/
>>>>>>>>>>>>
>>>>>>>>>>>>> OrderSystemPropertyData.xml
>>>>>>>>>>>>>>
>>>>>>>>>>>>> Mon
>>>>>>>>>>>> Aug 22 09:58:35 2016
>>>>>>>>>>>>
>>>>>>>>>>>>> @@ -50,4 +50,12 @@ order.properties setting is: order.item.
>>>>>>>>>>>>>>         description="Allow comment on Order Item. Choices
>>>>>>>>>>>>>> are: Y
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> or
>>>>>>>>>>>>>
>>>>>>>>>>>> N."
>>>>>>
>>>>>>>         />
>>>>>>>>>>>> +<!--
>>>>>>>>>>>>
>>>>>>>>>>>>> +#
>>>>>>>>>>>>>> +marketing.tracking.enable=Y
>>>>>>>>>>>>>> +-->
>>>>>>>>>>>>>> +    <SystemProperty systemResourceId="order"
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> systemPropertyId="marketing.tracking.enable"
>>>>>>>>>>>>>>
>>>>>>>>>>>>> systemPropertyValue="Y"
>>>>>>>>>>>>>
>>>>>>>>>>>>>> +    description="Allow tracking in marketing component
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> (optional).
>>>>>>>>>>>>>
>>>>>>>>>>>> Choices are: Y or N."
>>>>>>>
>>>>>>>> +    />
>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>     </entity-engine-xml>
>>>>>>>>>>>>>> \ No newline at end of file
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Modified: ofbiz/trunk/applications/order/src/main/java/org/
>>>>>>>>>>>>>> apache/ofbiz/order/shoppingcart/CheckOutEvents.java
>>>>>>>>>>>>>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/
>>>>>>>>>>>>>> order/src/main/java/org/apache/ofbiz/order/
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> shoppingcart/CheckOutEvents.
>>>>>>>>>>>>>>
>>>>>>>>>>>>> java?rev=1757130&r1=1757129&r2=1757130&view=diff
>>>>>>>>>>>>>
>>>>>>>>>>>>> ============================================================
>>>>>>>>>>>>>> ==================
>>>>>>>>>>>>>> --- ofbiz/trunk/applications/order/src/main/java/org/
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> apache/ofbiz/order/
>>>>>>>>>>>>>>
>>>>>>>>>>>>> shoppingcart/CheckOutEvents.java (original)
>>>>>>>>>>>>>
>>>>>>>>>>>>> +++ ofbiz/trunk/applications/order/src/main/java/org/
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> apache/ofbiz/order/
>>>>>>>>>>>>>>
>>>>>>>>>>>>> shoppingcart/CheckOutEvents.java Mon Aug 22 09:58:35 2016
>>>>>>>>>>>>>
>>>>>>>>>>>>> @@ -42,7 +42,7 @@ import org.apache.ofbiz.entity.Delegator
>>>>>>>>>>>>>>     import org.apache.ofbiz.entity.GenericEntityException;
>>>>>>>>>>>>>>     import org.apache.ofbiz.entity.GenericValue;
>>>>>>>>>>>>>>     import org.apache.ofbiz.entity.util.EntityQuery;
>>>>>>>>>>>>>> -import org.apache.ofbiz.marketing.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> tracking.TrackingCodeEvents;
>>>>>>>>>>>>>
>>>>>>>>>>>> +import org.apache.ofbiz.entity.util.EntityUtilProperties;
>>>>>>
>>>>>>>     import org.apache.ofbiz.order.order.OrderReadHelper;
>>>>>>>>>>>>>>     import org.apache.ofbiz.party.party.PartyWorker;
>>>>>>>>>>>>>>     import org.apache.ofbiz.product.store.ProductStoreWorker;
>>>>>>>>>>>>>> @@ -53,6 +53,7 @@ import org.apache.ofbiz.service.ServiceU
>>>>>>>>>>>>>>     import org.apache.ofbiz.webapp.stats.VisitHandler;
>>>>>>>>>>>>>>     import org.apache.ofbiz.webapp.website.WebSiteWorker;
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>     /**
>>>>>>>>>>>>>>      * Events used for processing checkout and orders.
>>>>>>>>>>>>>>      */
>>>>>>>>>>>>>> @@ -438,15 +439,28 @@ public class CheckOutEvents {
>>>>>>>>>>>>>>             session.removeAttribute("_QUIC
>>>>>>>>>>>>>> K_REORDER_PRODUCTS_");
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>             boolean areOrderItemsExploded =
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> explodeOrderItems(delegator,
>>>>>>>>>>>>>>
>>>>>>>>>>>>> cart);
>>>>>>>>>>>> -
>>>>>>>>>>>>
>>>>>>>>>>>>> -        //get the TrackingCodeOrder List
>>>>>>>>>>>>>> -        List<GenericValue> trackingCodeOrders =
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> TrackingCodeEvents.
>>>>>>>>>>>>>>
>>>>>>>>>>>>> makeTrackingCodeOrders(request);
>>>>>>>>>>>> +
>>>>>>>>>>>>
>>>>>>>>>>>>> +      //get the TrackingCodeOrder List
>>>>>>>>>>>>>> +        String trackingEnabled = EntityUtilProperties.
>>>>>>>>>>>>>> getPropertyValue("order","marketing.tracking.enable",
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> delegator);
>>>>>>>>>>>>>
>>>>>>>>>>>> +        Map<String, Object> trackingCodeOrders = new
>>>>>>>
>>>>>>>> HashMap<String,
>>>>>>>>>>>>>>
>>>>>>>>>>>>> Object>();
>>>>>>>>>>>> +        if (trackingEnabled != null && trackingEnabled ==
>>>>>>>>>>>>
>>>>>>>>>>>>> "Y") {
>>>>>>>>>>>>>
>>>>>>>>>>>> +            //get the TrackingCodeOrder List
>>>>>>
>>>>>>> +            Map<String, Object> inMap = new HashMap<String,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Object>();
>>>>>>>>>>>>>>
>>>>>>>>>>>>> +            inMap.put("request", request);
>>>>>>>>>>>>
>>>>>>>>>>>> +            try {
>>>>>>>>>>>>>
>>>>>>>>>>>>>> +                trackingCodeOrders = dispatcher.runSync("
>>>>>>>>>>>>>> makeTrackingCodeOrder",inMap);
>>>>>>>>>>>>>> +            } catch (GenericServiceException e) {
>>>>>>>>>>>>>> +                Debug.logError(e, module);
>>>>>>>>>>>>>> +            }
>>>>>>>>>>>>>> +        }
>>>>>>>>>>>>>> +
>>>>>>>>>>>>>>             String distributorId = (String)
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> session.getAttribute("_
>>>>>>>>>>>>>
>>>>>>>>>>>> DISTRIBUTOR_ID_");
>>>>>>
>>>>>>>             String affiliateId = (String) session.getAttribute("_
>>>>>>>>>>>>>> AFFILIATE_ID_");
>>>>>>>>>>>>>>             String visitId = VisitHandler.getVisitId(sessio
>>>>>>>>>>>>>> n);
>>>>>>>>>>>>>>             String webSiteId = WebSiteWorker.getWebSiteId(
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> request);
>>>>>>>>>>>>>
>>>>>>>>>>>> +        List<GenericValue> trackingCodeOrdersList =
>>>>>>>
>>>>>>>> UtilGenerics.checkList(new ArrayList<GenericValue>());
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> -        callResult = checkOutHelper.createOrder(userLogin,
>>>>>>>>>>>>>> distributorId, affiliateId, trackingCodeOrders,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> areOrderItemsExploded,
>>>>>>>>>>>>>>
>>>>>>>>>>>>> visitId, webSiteId);
>>>>>>>>>>>>
>>>>>>>>>>>> +        callResult = checkOutHelper.createOrder(userLogin,
>>>>>>>>>>>>>
>>>>>>>>>>>>>> distributorId, affiliateId, trackingCodeOrdersList,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> areOrderItemsExploded,
>>>>>>>>>>>>>>
>>>>>>>>>>>>> visitId, webSiteId);
>>>>>>>>>>>>>
>>>>>>>>>>>>>>             if (callResult != null) {
>>>>>>>>>>>>>>                 ServiceUtil.getMessages(request, callResult,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> null);
>>>>>>>>>>>>>
>>>>>>>>>>>>                 if (ServiceUtil.isError(callResult)) {
>>>>>>>
>>>>>>>> Modified: ofbiz/trunk/applications/order/src/main/java/org/
>>>>>>>>>>>>>> apache/ofbiz/order/shoppingcart/CheckOutHelper.java
>>>>>>>>>>>>>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/
>>>>>>>>>>>>>> order/src/main/java/org/apache/ofbiz/order/
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> shoppingcart/CheckOutHelper.
>>>>>>>>>>>>>>
>>>>>>>>>>>>> java?rev=1757130&r1=1757129&r2=1757130&view=diff
>>>>>>>>>>>>>
>>>>>>>>>>>>> ============================================================
>>>>>>>>>>>>>> ==================
>>>>>>>>>>>>>> --- ofbiz/trunk/applications/order/src/main/java/org/
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> apache/ofbiz/order/
>>>>>>>>>>>>>>
>>>>>>>>>>>>> shoppingcart/CheckOutHelper.java (original)
>>>>>>>>>>>>>
>>>>>>>>>>>>> +++ ofbiz/trunk/applications/order/src/main/java/org/
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> apache/ofbiz/order/
>>>>>>>>>>>>>>
>>>>>>>>>>>>> shoppingcart/CheckOutHelper.java Mon Aug 22 09:58:35 2016
>>>>>>>>>>>>>
>>>>>>>>>>>>> @@ -559,7 +559,7 @@ public class CheckOutHelper {
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>         // Create order event - uses createOrder service for
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> processing
>>>>>>>>>>>>>>
>>>>>>>>>>>>>         public Map<String, Object> createOrder(GenericValue
>>>>>>>>>>>>
>>>>>>>>>>> userLogin,
>>>>>>>>>>
>>>>>>>>> String
>>>>>>
>>>>>>> distributorId, String affiliateId,
>>>>>>>>>>>>>
>>>>>>>>>>>>>> -            List<GenericValue> trackingCodeOrders, boolean
>>>>>>>>>>>>>> areOrderItemsExploded, String visitId, String webSiteId) {
>>>>>>>>>>>>>> +            List<GenericValue> trackingCodeOrdersList,
>>>>>>>>>>>>>> boolean
>>>>>>>>>>>>>> areOrderItemsExploded, String visitId, String webSiteId) {
>>>>>>>>>>>>>>             if (this.cart == null) {
>>>>>>>>>>>>>>                 return null;
>>>>>>>>>>>>>>             }
>>>>>>>>>>>>>> @@ -575,7 +575,7 @@ public class CheckOutHelper {
>>>>>>>>>>>>>>             Map<String, Object> context =
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> this.cart.makeCartMap(this.
>>>>>>>>>>>>>
>>>>>>>>>>>> dispatcher,
>>>>>>>
>>>>>>>> areOrderItemsExploded);
>>>>>>>>>>>>>
>>>>>>>>>>>>>>             //get the TrackingCodeOrder List
>>>>>>>>>>>>>> -        context.put("trackingCodeOrders",
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> trackingCodeOrders);
>>>>>>>>>>>>>
>>>>>>>>>>>> +        context.put("trackingCodeOrders",
>>>>>>
>>>>>>> trackingCodeOrdersList);
>>>>>>>>>>>>>>
>>>>>>>>>>>>>             if (distributorId != null)
>>>>>>>>>>>> context.put("distributorId",
>>>>>>>>>>>> distributorId);
>>>>>>>>>>>>
>>>>>>>>>>>>>             if (affiliateId != null) context.put("affiliateId",
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> affiliateId);
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>

Reply via email to