@Nagashree Balasundaram Thanks for reaching out. As per the document if you see the policy scope then it is global --> product --> api --> operation and based on where you specify the base element it will evaluation the policy.
If you are using scope as Product scope, then in your example policy evaluation will be first global --> product --> API --> operation
<inbound>
<!--base: Begin Api scope-->
<!--base: Begin Product scope-->
<!--base: Begin Global scope-->
<!--base: End Global scope-->
<set-header name="product-id" exists-action="override">product1</set-header>
<!--base: End Product scope-->
<rate-limit-by-key calls="4000" renewal-period="60" counter-key="@(context.Subscription?.Key ?? "anonymous")" increment-condition="@(context.Response.StatusCode >= 200 && context.Response.StatusCode < 300)" remaining-calls-variable-name="remaningCallsForKey" retry-after-header-name="retry-after" remaining-calls-header-name="remaining-calls" retry-after-variable-name="retryAfterSecs" />
<!--base: End Api scope-->
<set-backend-service backend-id="OrderAppservice-backend" />
</inbound>
You can always leverage the "Calculate effective policy" under the individual operation and specify which scope you are testing, and it will provide you the evaluated policy that will be executing the order.
Feel free to get back to me if you have any queries or concerns.
Please accept as "Yes" if the answer is helpful so that it can help others in the community. If you need any help/clarification/concerns/follow up questions, then please click on "Add Comment" on my answer and provide more details.