Restrict Orders View in Magento Admin to Specific Statuses - magento

In the Magento admin, when you click "Orders", all orders are displayed based on date. This includes completed orders, canceled orders, etc. We have specific statuses (Processing, Pending Shipment) and we'd like for only orders in those two statuses to show by default.
If we need to see canceled orders, for example, we can use the search, select Canceled and bring them up that way. Restricting what shows by default would help us streamline our order processing steps by limiting our view to only those orders we need to deal with.
Where should I be looking to make this change? It feels like it should be a simple programmatic change, but I'm not certain which files to look in.
Any insights would be much appreciated.
Thanks.

Related

How to handle price dynamic

We have requirement to handle price dynamic (referring external system).
We would like to know, what is the best way to handle dynamic pricing among below :
Approach 1 :
Creating Price factory extension and overriding getBasePrice() method of customPricefactoryManager. Please confirm if it uses jalo layer.
Approach 2 :
In DefaultSLFindPriceStrategy we can customize getBasePrice() method.
If any other way too, please lets know.
We would like to know which approach can help to handle prices in addtocart operation, checkout and product page details pricing.
It is not good getting price in another system with integration online. ERP system used by few sales people but ecommerce site can be used by hundred customer in same time. ERP cannot be handle huge amount of connections. I prefer pushing price from ERP not pulling them from hybris side. On the other hand customer will be hate changing price while surfing between hybris pages. You need to plan correct time for updating price and re-calculating existing carts.
It is highly unlikely that you would need to override the above classes to get dynamic prices.
Hybris already provides OTB functionality to get prices for different-
Users
User groups
Currencies
Time range
If you are trying to get different prices based on above criterions then you can simply use the OTB price row model.Getting dynamic prices on different pages has many caveats-
The price on different pages i.e. Homepage, PDP, Cart, Checkout,
etc. might show different values confusing the customer.
It cannot
be indexed so the PLP page will almost always show a different price
value.

MS CRM Online Custom View - Need to show specific records in View for specific users (based on team)

I have entity "Work Order" for which I have defined many custom views. Work Orders can have records with statuses as "active ,cancelled, closed, inprogress, submitted" etc. My requirement is - currently logged in user who belongs to a specific team "sales representative" should be able to see all records on view.This can be done easily, but If current logged in user does not belongs to "sales representative" team, she should not be able to see "cancelled" records on view but all other record should be visible to her. How can I achieve this using custom filters if it is possible? Or by code changes?
It is possible to do this with custom code. Without questioning the "why" you'd like to do this (possibly it's sensitive information or something?), you can achieve it using a RetrieveMultiple plugin registered on the pre-operation event. Within this plugin one of the input parameters passed in is called "Query" and will have a QueryExpression. You can simply add a filter to this query in the plugin and the relevant rows will be filtered out. Something like this:
var query = (QueryExpression)context.InputParameters["Query"];
var condition= new ConditionExpression()
{
AttributeName = "statuscode",
Operator = ConditionOperator.NotIn,
Values = { 2, 3 } // Or whatever codes you want to filter!
};
query.Criteria.AddCondition(condition);
To check the current user you can grab the user id from the plugin context and retrieve the necessary info you would like to check.
Doesn't sound like this is possible with advanced find alright. You may be able to achieve it using security roles though. If you could assign cancelled work orders to a specific team, and then organise your security setup so that users who are not sales representatives can't see work orders from that specific team, then it might work. Unfortunately you would have to reassign the cancelled work orders which is not always an option.
Otherwise, you might have to go with a separate view for cancelled work orders, out of the box advanced find should allow you present a blank grid of you are not on the right team. But now obviously you are not presenting a whole view of the work orders.
In general I would go with the security option, and just make it work. Any other option is just a stop-gap. Users can always create custom views, so if you don't lock down access using security roles, the data is still accessible in indirect ways.

Custom status for orders that have been partially refunded

Is there any way I can create a status for an order saying "Partially refunded" if only part of that order has been returned?
Usually products that are shipped back are refunded only for the cost of goods and not the cost of shipping that falls in the responsibility of the customer.
I've been looking into this aspect also for orders that have been completely refunded and the status is "Cancelled" instead of "Totally refunded".
This link will help you to create custom order status and states in magento.Try this.
Create Custom Order Status
Usually there are several events fired when creating a credit memo. Find out wich one suits best in your situation by logging the fired events in Mage::dispatchEvent().
Create a custom orders status as mentioned above.
Finally create an observer that hooks up the right event right before or after the status is changed. Write some logic to determine a partial refund, and save the order with the new status.
No need to rewrite or extend core magento models.

Magento Stock (Configurable, Bundle)

I have a website made with Magento, and a theme by me. The problem is:
The simple product with low stock is associated to a configurable product, and when i try to add a higher quantity of that simple product, it allows, and then, after the checkout proccess, we receive a e-mail from the store that there is a failure in the proccess like:
Payment operation failed:
Reason:
Not all products are available in the requested quantity
It occurs in bundle products that have a default quanity more than 1 too.
Someone can help me?
Thanks.
EDIT:
Found this solution but i can't truncate my sales tables on database. I have all my sales records there, and there are a lot of them. I can't loose it. Magento: After ordering configurable product, its canceled because its out of stock
How many orders do you need to remove? If you got a handful that you can count by hand, you can try this solution to remove unwanted orders.
how can i delete test order from magento
It looks like it should work, but, as always, review the code and try it on one order first..

Creating a Relationship Between Order Product (salesorderdetail) and Service Activity (serviceappointment)

We are using Microsoft CRM 4.0 to run a consulting business. Its working pretty well but we want to simplify the way we are doing some things. What we want to do is create an Order (salesorder) with multiple Order Products (salesorderdetal). So good so far.
Next I want to be able associate each Order Product (salesorderdetail) with a Service Activity (serviceappointment), this representing that this billable line item in the order is actually going to be fulfilled as a consuting engagement.
The problem is, I can't seem to be able to create an association between the Order Product (salesorderdetail) and Service Activiy (serviceappointment). It simply doesn't appear in the drop downlist.
Can anyone think of a reason for this? I've seen some posts about relating field mapping between Quote Product, Order Product, Opportunity Product and Invoice Product, but that isn't quite what I am after.
Any suggestions gratefully received - even if it is an explaination of why its not possible.
I created a simple 1:N mapping from Case to Invoice. The Case records its ID and Title in custom fields in the Invoice. Unfortunately this does not allow for product creation as children of the Invoice, so that should be created as a custom code workflow.

Resources