<?xml version="1.0" encoding="UTF-8" ?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<services xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/services.xsd">
    <description>Product Component Services</description>
    <vendor>OFBiz</vendor>
    <version>1.0</version>

    <!-- Product Store Services -->
    <service name="createProductStore" default-entity-name="ProductStore" engine="simple"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="createProductStore">
        <description>Create a Product Store</description>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
        <auto-attributes include="pk" mode="OUT" optional="false"/>
        <override name="storeName" optional="false"/>
    </service>
    <service name="updateProductStore" default-entity-name="ProductStore" engine="simple"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="updateProductStore">
        <description>Update a Product Store</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>

    <service name="reserveStoreInventory" engine="simple"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="reserveStoreInventory">
        <description>Reserve Inventory in a Product Store</description>
        <attribute name="productStoreId" type="String" mode="IN" optional="false"></attribute>
        <attribute name="productId" type="String" mode="IN" optional="false"></attribute>
        <attribute name="facilityId" type="String" mode="IN" optional="true"></attribute>
        <attribute name="quantity" type="BigDecimal" mode="IN" optional="false"></attribute>
        <attribute name="orderId" type="String" mode="IN" optional="true"></attribute>
        <attribute name="orderItemSeqId" type="String" mode="IN" optional="true"></attribute>
        <attribute name="shipGroupSeqId" type="String" mode="IN" optional="true"></attribute>
        <attribute name="quantityNotReserved" type="BigDecimal" mode="OUT" optional="false"></attribute>
    </service>

    <service name="isStoreInventoryRequired" engine="simple"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="isStoreInventoryRequired" auth="false">
        <description>Checks if Store Inventory is Required</description>
        <attribute name="productStoreId" type="String" mode="IN" optional="false"></attribute>
        <attribute name="productStore" type="org.ofbiz.entity.GenericValue" mode="IN" optional="true"></attribute>
        <attribute name="productId" type="String" mode="IN" optional="false"></attribute>
        <attribute name="product" type="org.ofbiz.entity.GenericValue" mode="IN" optional="true"></attribute>
        <attribute name="requireInventory" type="String" mode="OUT" optional="false"><!-- Y/N --></attribute>
    </service>
    <service name="isStoreInventoryAvailable" engine="simple"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="isStoreInventoryAvailable" auth="false">
        <description>Checks if Store Inventory is Required</description>
        <attribute name="productStoreId" type="String" mode="IN" optional="false"></attribute>
        <attribute name="productStore" type="org.ofbiz.entity.GenericValue" mode="IN" optional="true"></attribute>
        <attribute name="productId" type="String" mode="IN" optional="false"></attribute>
        <attribute name="product" type="org.ofbiz.entity.GenericValue" mode="IN" optional="true"></attribute>
        <attribute name="quantity" type="BigDecimal" mode="IN" optional="false"></attribute>
        <attribute name="available" type="String" mode="OUT" optional="false"><!-- Y/N --></attribute>
    </service>
    <service name="isStoreInventoryAvailableOrNotRequired" engine="simple"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="isStoreInventoryAvailableOrNotRequired" auth="false">
        <description>Checks if Store Inventory is Required</description>
        <attribute name="productStoreId" type="String" mode="IN" optional="false"></attribute>
        <attribute name="productStore" type="org.ofbiz.entity.GenericValue" mode="IN" optional="true"></attribute>
        <attribute name="productId" type="String" mode="IN" optional="false"></attribute>
        <attribute name="product" type="org.ofbiz.entity.GenericValue" mode="IN" optional="true"></attribute>
        <attribute name="quantity" type="BigDecimal" mode="IN" optional="false"></attribute>
        <attribute name="availableOrNotRequired" type="String" mode="OUT" optional="false"><!-- Y/N --></attribute>
    </service>

    <!-- Product Store Role Services -->
    <service name="createProductStoreRole" default-entity-name="ProductStoreRole" engine="simple"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="createProductStoreRole" auth="true">
        <description>Create ProductStoreRole</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
        <override name="fromDate" optional="true"/>
    </service>
    <service name="updateProductStoreRole" default-entity-name="ProductStoreRole" engine="simple"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="updateProductStoreRole" auth="true">
        <description>Update a Product Store Role</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="removeProductStoreRole" default-entity-name="ProductStoreRole" engine="simple"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="removeProductStoreRole" auth="true">
        <description>Remove ProductStoreRole</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>

    <!-- Product Store Catalog Services -->
    <service name="createProductStoreCatalog" default-entity-name="ProductStoreCatalog" engine="simple"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="createProductStoreCatalog" auth="true">
        <description>Create ProductStoreCatalog</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
        <override name="fromDate" optional="true"/>
    </service>
    <service name="updateProductStoreCatalog" default-entity-name="ProductStoreCatalog" engine="simple"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="updateProductStoreCatalog" auth="true">
        <description>Update ProductStoreCatalog</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="deleteProductStoreCatalog" default-entity-name="ProductStoreCatalog" engine="simple"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="deleteProductStoreCatalog" auth="true">
        <description>Delete ProductStoreCatalog</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>

    <!-- Product Store Payment Services -->
    <service name="createProductStorePaymentSetting" default-entity-name="ProductStorePaymentSetting" engine="simple"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="createProductStorePaymentSetting" auth="true">
        <description>Create ProductStorePaymentSetting</description>
        <auto-attributes include="all" mode="IN" optional="false"/>
        <override name="paymentCustomMethodId" optional="true"/>
        <override name="paymentGatewayConfigId" optional="true"/>
        <override name="paymentPropertiesPath" optional="true"/>
        <override name="paymentService" optional="true"/>
    </service>
    <service name="updateProductStorePaymentSetting" default-entity-name="ProductStorePaymentSetting" engine="simple"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="updateProductStorePaymentSetting" auth="true">
        <description>Update ProductStorePaymentSetting</description>
        <auto-attributes include="all" mode="IN" optional="false"/>
        <override name="paymentCustomMethodId" optional="true"/>
        <override name="paymentGatewayConfigId" optional="true"/>
        <override name="paymentPropertiesPath" optional="true"/>
        <override name="paymentService" optional="true"/>
    </service>
    <service name="deleteProductStorePaymentSetting" default-entity-name="ProductStorePaymentSetting" engine="simple"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="deleteProductStorePaymentSetting" auth="true">
        <description>Delete ProductStorePaymentSetting</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>

    <!-- Product Store Email Services -->
    <service name="createProdStoreEmailTplSetting" engine="entity-auto" invoke="create"
             auth="true" default-entity-name="ProdStoreEmailTplSetting">
        <description>Create a Product Store Email Template Setting</description>
        <required-permissions join-type="AND"><check-permission permission="CATALOG" action="_CREATE"/></required-permissions>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="updateProdStoreEmailTplSetting" engine="entity-auto" invoke="update"
             auth="true" default-entity-name="ProdStoreEmailTplSetting">
        <description>Update a Product Store Email Template Setting</description>
        <required-permissions join-type="AND"><check-permission permission="CATALOG" action="_UPDATE"/></required-permissions>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="removeProdStoreEmailTplSetting" engine="entity-auto" invoke="delete"
             auth="true" default-entity-name="ProdStoreEmailTplSetting">
        <description>Remove a Product Store Email Template Setting</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>
    <service name="createOldProdStoreEmailSetting" engine="entity-auto" invoke="create"
             auth="true" default-entity-name="OldProdStoreEmailSetting">
        <description>Create a Product Store Email Setting</description>
        <required-permissions join-type="AND"><check-permission permission="CATALOG" action="_CREATE"/></required-permissions>
        <auto-attributes entity-name="OldProdStoreEmailSetting" include="pk" mode="IN" optional="false"/>
        <auto-attributes entity-name="OldProdStoreEmailSetting" include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="updateOldProdStoreEmailSetting" engine="entity-auto" invoke="update"
             auth="true" default-entity-name="OldProdStoreEmailSetting">
        <description>Update a Product Store Email Setting</description>
        <required-permissions join-type="AND"><check-permission permission="CATALOG" action="_UPDATE"/></required-permissions>
        <auto-attributes entity-name="OldProdStoreEmailSetting" include="pk" mode="IN" optional="false"/>
        <auto-attributes entity-name="OldProdStoreEmailSetting" include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="removeOldProdStoreEmailSetting" engine="simple"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="removeProductStoreEmail" auth="true">
        <description>Remove a Product Store Email Setting</description>
        <auto-attributes entity-name="OldProdStoreEmailSetting" include="pk" mode="IN" optional="false"/>
    </service>

    <!-- Product Store Shipping Method Services -->
    <service name="createProductStoreShipMeth" default-entity-name="ProductStoreShipmentMeth" engine="simple"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="createProductStoreShipMeth" auth="true">
        <description>Create a Product Store Shipment Method</description>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
        <override name="productStoreId" optional="false"/>
        <override name="shipmentMethodTypeId" optional="false"/>
        <override name="partyId" optional="false"/>
        <override name="roleTypeId" optional="false"/>
    </service>
    <service name="updateProductStoreShipMeth" default-entity-name="ProductStoreShipmentMeth" engine="simple"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="updateProductStoreShipMeth" auth="true">
        <description>Update a Product Store Shipment Method</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="removeProductStoreShipMeth" default-entity-name="ProductStoreShipmentMeth" engine="simple"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="removeProductStoreShipMeth" auth="true">
        <description>Remove a Product Store Shipment Method</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>

    <!-- Product Store Keyword Override services -->
    <service name="createProductStoreKeywordOvrd" default-entity-name="ProductStoreKeywordOvrd" engine="simple"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="createProductStoreKeywordOvrd" auth="true">
        <description>Create a Product Store Keyword Override</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
        <override name="target" optional="false"/>
        <override name="fromDate" optional="true"/>
        <override name="targetTypeEnumId" optional="false"/>
    </service>
    <service name="updateProductStoreKeywordOvrd" default-entity-name="ProductStoreKeywordOvrd" engine="simple"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="updateProductStoreKeywordOvrd" auth="true">
        <description>Update a Product Store Keyword Override</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="deleteProductStoreKeywordOvrd" default-entity-name="ProductStoreKeywordOvrd" engine="simple"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="deleteProductStoreKeywordOvrd" auth="true">
        <description>Delete a Product Store Keyword Override</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>

    <!-- ProductStoreSurveyAppl Services -->
    <service name="createProductStoreSurveyAppl" default-entity-name="ProductStoreSurveyAppl" engine="simple"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="createProductStoreSurveyAppl" auth="true">
        <description>Create a Product Store Survey Appl</description>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
        <auto-attributes include="pk" mode="OUT" optional="false"/>
    </service>
    <service name="deleteProductStoreSurveyAppl" default-entity-name="ProductStoreSurveyAppl" engine="simple"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="removeProductStoreSurveyAppl" auth="true">
        <description>Delete a Product Store Survey Appl</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>

    <!-- ProductStorePromoAppl Services -->
    <service name="createProductStorePromoAppl" default-entity-name="ProductStorePromoAppl" engine="simple"
                location="component://product/script/org/ofbiz/product/promo/PromoServices.xml" invoke="createProductStorePromoAppl" auth="true">
        <description>Create ProductStorePromoAppl</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
        <override name="fromDate" optional="true"/>
    </service>
    <service name="updateProductStorePromoAppl" default-entity-name="ProductStorePromoAppl" engine="simple"
                location="component://product/script/org/ofbiz/product/promo/PromoServices.xml" invoke="updateProductStorePromoAppl" auth="true">
        <description>Update ProductStorePromoAppl</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="deleteProductStorePromoAppl" default-entity-name="ProductStorePromoAppl" engine="simple"
                location="component://product/script/org/ofbiz/product/promo/PromoServices.xml" invoke="deleteProductStorePromoAppl" auth="true">
        <description>Delete ProductStorePromoAppl</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>

    <!-- ProductStoreFinActSetting Services -->
    <service name="createProductStoreFinActSetting" default-entity-name="ProductStoreFinActSetting" engine="simple"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="createProductStoreFinActSetting" auth="true">
        <description>Create ProductStoreFinActSetting</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="updateProductStoreFinActSetting" default-entity-name="ProductStoreFinActSetting" engine="simple"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="updateProductStoreFinActSetting" auth="true">
        <description>Update ProductStoreFinActSetting</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="removeProductStoreFinActSetting" default-entity-name="ProductStoreFinActSetting" engine="simple"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="removeProductStoreFinActSetting" auth="true">
        <description>Remove ProductStoreFinActSetting</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>

    <!--ProductStoreVendorPayment Services -->
    <service name="createProductStoreVendorPayment" engine="simple" default-entity-name="ProductStoreVendorPayment"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="createProductStoreVendorPayment" auth="true">
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>
    <service name="deleteProductStoreVendorPayment" engine="simple" default-entity-name="ProductStoreVendorPayment"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="deleteProductStoreVendorPayment" auth="true">
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>

    <!--ProductStoreVendorShipment Services -->
    <service name="createProductStoreVendorShipment" engine="simple" default-entity-name="ProductStoreVendorShipment"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="createProductStoreVendorShipment" auth="true">
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>
    <service name="deleteProductStoreVendorShipment" engine="simple" default-entity-name="ProductStoreVendorShipment"
            location="component://product/script/org/ofbiz/product/store/ProductStoreServices.xml" invoke="deleteProductStoreVendorShipment" auth="true">
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>

    <!--ProductStoreFacility Services -->
    <service name="createProductStoreFacility" default-entity-name="ProductStoreFacility" engine="entity-auto" invoke="create" auth="true">
        <description>Create a ProductStoreFacility</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="updateProductStoreFacility" default-entity-name="ProductStoreFacility" engine="entity-auto" invoke="update" auth="true">
        <description>Update a ProductStoreFacility</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
        <auto-attributes include="nonpk" mode="IN" optional="true"/>
    </service>
    <service name="deleteProductStoreFacility" default-entity-name="ProductStoreFacility" engine="entity-auto" invoke="delete" auth="true">
        <description>Delete a ProductStoreFacility</description>
        <auto-attributes include="pk" mode="IN" optional="false"/>
    </service>

</services>
