There seems to be an issue with popstore.CartServices.get#ShippingOptions
service. I am calling it with an active cart that has productStoreId
set. That service calls mantle.product.StoreServices.get#StoreShippingOptions
and passes to it productStoreId
which is always null
even with the scenario I mentioned (this is happening because popstore.CartServices.get#ActiveOrderAndCustomer
which is called to get active cart info is not returning the productStoreId
).
So when calling mantle.product.StoreServices.get#StoreShippingOptions
I think productStoreId
should be passed from orderHeader.productStoreId
, otherwise I always get a list of all ShipmentMethod
type Enumeration.
This is the service and exact line I am talking about (with a comment)…
<service verb="get" noun="ShippingOptions">
<out-parameters>
<parameter name="shippingOptions"/>
</out-parameters>
<actions>
<service-call name="popstore.CartServices.get#ActiveOrderAndCustomer" out-map="context"/>
<if condition="!cartOrderId"><return message="Cart is empty" public="true" type="warning"/></if>
<entity-find-one entity-name="mantle.order.OrderHeader" value-field="orderHeader">
<field-map field-name="orderId" from="cartOrderId"/></entity-find-one>
<entity-find-one entity-name="mantle.order.OrderPart" value-field="orderPart">
<field-map field-name="orderId" from="cartOrderId"/></entity-find-one>
<service-call name="mantle.party.ContactServices.get#PartyContactInfoList" out-map="shippingContactListInfo"
in-map="[partyId:customerPartyId, postalContactMechPurposeId:'PostalShippingDest',
telecomContactMechPurposeId:'PhoneShippingDest']"/>
<!-- productStoreId below should be passed from orderHeader.productStoreId, otherwise it is always passed as null now even when an active cart with a productStoreId set exists -->
<service-call name="mantle.product.StoreServices.get#StoreShippingOptions" in-map="[productStoreId:productStoreId, orderId:cartOrderId, orderPartSeqId:orderPart.orderPartSeqId,postalContactMechId:shippingContactListInfo.postalAddressList?.first?.postalContactMechId, getRates:true]" out-map="context"/>
</actions>
</service>