How to validate shipping address per product by city and restrict user? - validation

I am using Magento 1.9. I want to create product and make available in only specific cities. And also I want to restrict users on checkout when they select product to ship in the city where the product is not available.
I am a beginner at Magento and don't know how to achieve this.
What I have in mind so far is, it will be good to create an attribute named 'city', make it multiselect and add cities as it's options. So now I can create product and assign multiple cities to it. and can be seen at the 'Additional Information tab' on frontend product's page.
But now I want to restrict user if he select orders product available in "New York" and he submitted shipping address with any other city. This should restrict the further process and display message.
In short, I want to restrict user on checkout and display message. "The product is not available in the specified address/city/location etc"

Related

How to add gift product in checkout with multiple address?

Customer have two products in his/her cart. Now he/she selects different addresses for each product hence, Magento creates two order after successful checkout. But As per requirement i need to add Gift product (which can be added statically. Fixed SKU is given) for each order. So, we need to add GIFT product on different address.
We are not aware of this scenario. We haven't found any way to complete this task. So please suggest a way.

Magento Product Reviews only by customer who purchased the product

I searched everywhere, but could not find the solution for this. I want to not allow others except the buyers of that product to add review for that particular product, in Magento. Please can anybody help with this.
Initally make the option "Allow Guests to Write Reivews" to "No". Now, you can make this by taking the order collection of a particular product by getProductOrderCollectionById(). From that order collection we can get the list of the customers who purchased it.
In the other hand, you can get the ID of the logged-In customer. If the Order collection list contains the logged In customer ID, then you can allow them to display the review form.

How to apply "20% Discount" to specific Customers of a Customer Group in Magento 1.7.2?

I have products with a normal price(let's say product A costs 20e) and a group price(lets product A costs 15e) assigned to my customer group
that I call it "Resellers".
I want to apply an extra 20% discount to specific Resellers (not to the whole Reseller group)
in the group price(meaning the 15e)
I tried to solve it by creating a "Shoping Cart Price Rule" (I called it "20% Extra Discount") it applies to the whole Customer Group
How Can I apply 20% it only to specific Resellers and not to the whole Reseller Group for the group price only?
What you are asking is not possible with Magento out of the box.
You can overcome this by generating a coupon that you can send out by e-mail to your specific customers.
or you can try to use an extension like this.
It's not free, but from the looks of it it might get you what you need.
I'm in no way associated to the extension provider. I just found it on a simple search on the web.
You need to do some coding in order to achieve above said, following is the way it should happen.
You would need to hook into an event, ex :
Changing the price in quote while adding product to cart: magento
Also in the observer created above you need to do something like
Add custom discount order in total with button
Now whats above will do :
Let us suppose you create a general rule for 20% discount but do not relate it to any customer group.
What happen is once a product is added to a cart you can check into an Observer whether you want to provide discount to this particular customer.
If yes programmatically add coupon to the quote or order else not.
Please note : there are various other type of event for ex: after moving to checkout etc, in case you do not want to use on adding of product to cart.
hope above helps.

Creating an order processing system from magento?

I want to create a small order processing website, but in time I want the application to be able to extend to an e-commerce solution as well. So I decided to go with magento.
But I am not sure, if magento can be stripped down to only an order processing system. By order processing I want:
Guests should be able select products
Should be able to add products to cart
But at last, instead of processing the order by payment system, the order should be forwarded to email of administrators, who will contact them individually.
How to configure Magento this way??
Here is a full tutorial with all the files you will need, ready to download:
http://www.excellencemagentoblog.com/magento-onestep-checkout-remove-payment-method-step
This does mark orders with the code 'free', however, you words are our servants and not our masters and you could change the word free to 'telesale' (or whatever):
...the basic idea of removing any step from checkout is to see a set a
default value for that step, so that magento order processing runs
smoothly. So when removing the payment method step, i have set the
payment method “Zero Subtotal Checkout” with code “free” as the
default payment method.
If I got you well, you just want to avoid the CC processing,
In this case you can disable in Magento all payment systems except the 'Money/Check' one.
Guests should be able select products
Should be able to add products to cart
But at last, instead of processing the order by payment system, the order should be forwarded to email of administrators, who will
contact them individually.
Magento offers you catalog/cart system by default ( mail is mandatory during order )
Magento offers you cart system by default
You can disable all payment system except 'Money/Check' one. (this will let user confirm their order without any check on the payment).
Then you can contact all user checking the new orders in the backend ( user/guest email will be displayed along with the order display ) ...
Settings
Add email notification for any new orders:
Log in into admin area
Go to System->Configuration
In Sales section, click on Sales Emails
Select the first section Orders.
Enter your admin e-mail in the field “Send Order Email Copy To”.
Now You will receive a new mail every new order.
Manage Payment Methods:
Log in into admin area
Go to System->Configuration
In Sales section, click on Payment Methods
Disable all except Check / Money Orders
Now your customer could order without any payment detail.
I think Magento should suit you, in case the 'Money/Check' payment system is not good for you, you will need to create a new module and add a new payment system.
I hope this helps you answer your doubt
So, as I can understand, you want to finish customers work on the cart step. For example, by clicking Create an Order except Checkout.
Yes, you can use cart2quote or something like this.
The main idea is to save quote with quote items (from the session) after clicking Create an Order button. For example, you can get Quote and serialize it, get Quote items and also serealize them. When it is needed to show them to admin (in email or in admin section) - deserialize all info and display it. This will not be very easy, but is possible. May be it is better to customize some ready solution.

Programmatically apply a discount price in product list

I would like to programmatically display a discounted price on the product list/page so that each customer as a personal price shown based on a customer attribute (like gender for instance, and of course let it be assigned as new price for the user session) but I can't see a viable option via the magento catalog price rules involving customer attributes other than the assigned group.
I'm using the group to do different kind of discounts and categorization of the customers, so the path of "split the customers on the gender" (or similar) is not an option unfortunately, since I can't assign more than 1 group per customer.
At the moment I was thinking about setting up a custom observer to check for calls to the price generation and then let it consider my customer attributes when calculating the price.
Is that possible? if so, any pointers about?
Would you suggest something different?
Thanks a lot to everyone for your time.
As I was thinking before, I solved my issue creating a custom module with an observer looking for catalog_product_get_final_price calls, getting the customer details from the current customer session.
It works great, I just need to let it display the correct price in the catalog product list, but is minimal, as the price seems to be calculated correctly inside the product page and the cart

Resources