My objective is to create a buy xyz get xyz free, where x, y, and z are separate products. When purchasing EITHER x, y, or z, the customer can one of x, y, or z products for free.
I've tried to create this function within Magento's price rules, but I have not had any success whatsoever. I've read pretty much everything on the internet regarding these rules and have gotten nowhere. I'm thinking about creating a page that allows the user to select the products they would like to purchase in sequence, then using that information to add a bundled cart item to the user's cart. There may be a simpler way, though, and I'm wondering if anyone has any insight.
Please note that the items in question are configurable items with two attribute sets, just to make it interesting.
I'd hook into the Shopping Cart price rules engine for this. The system is designed to apply a set of rules an alter the price of a cart. I'd
Figure out where the pricing rules are applied
Override that method using the config override system built into Magento
Have the override method first call its parent, so that all original pricing rules are applied
Once that's done, include you custom logic at the end
Next, and related to #4, create new model objects that keep track of which products are buy one/get one, and (optionally) create a UI in the admin to manage these relationships. These are the models you'd be looking at in #4 to apply your rules.
Good luck.
So since I was unable to acquire the time resource to implement Alan's answer, I got a workaround going for this by adding custom options to the configurable products, which were dropdowns of the different "bogo" products. This is flawed in that it does NOT account for stock, but in my situation, it worked in the time being.
Related
I'm currently attempting to extend the inherent Magento product view to divide the custom options belonging to a configurable product into sections loaded by ajax. The end goal is to create a step by step process guiding the user through each step of the product configuration process before they would add the product to the cart.
Advanced Custom Product Options
We are also utilizing Mageworx's Advanced Custom Product Options to allow for the larger customization of products.
Simple Products Linked to Configurable
Our current environment is set up to handle simple products as configurators for their parent configurable product. When a user navigates to the simple product, they are directed to the configurable product with the option represented by the simple product pre-selected.
End Goal
The hopeful endpoint would be that once a user clicks on a simple product, they would be redirected to the configurable product with a single pre-selected option depending on the simple product. The user would then be able to customize their order, or jump directly to adding it to the cart as is. The customization process would re-evaluate at each step to determine if there is a concurrent step, for example, if the user were to select to add trim, there would be an additional step to customize that trim, whereas if they opted out, the step would be skipped.
The idea is simply a product configurator within the Magento framework, something similar, in function, as to what appears below. The checkout steps being Style, Color, and Size, each which have their own page.
The Overarching Question
I am fairly new to the development of Magento, and am wondering what the best method of attacking this problem is. I have thought of using an observer to hook into before add to cart, but I am unsure it would allow me to refresh the blocks and load in new data. My other idea was to tap into view.phtml and set up some ajax loading within the page itself, but that seemed a bit 'hacky'.
I have spent quite a while searching for examples on how some have overcome this problems, but haven't found much outside of some very vague ideas on what could work. If any one has insight onto a solution to my problem, their thoughts would be much appreciated.
Current Approach
So far I've tried creating a Router for a Controller to handle POST requests to change out the Product Option sidebar when a value is changed. It seems a little bit slow, however.
I want to add a custom attribute to magento order_item and quote_item and a field in the order form for my serial number attribute and other custom attributes.
I'm selling Tablets offline but I am using Magento backend for managing all inventory and customer information along with orders, the tablets are given on subscription bases so there is no shipping as the customer would be at store during purchase.
I want to add custom attribute which are unique to the customer and tablet.
I could create an attribute for the customer but what if they order more than one tablets which means logically the only way is to place those attributes in the order item.
I seriously don't know how to go about.
I hope someone can point me to extended magento sales module and add my custom attribute to order_item and also show in magento order form.
First you need to add/change this two tables:
- sales_flat_order_item
- sales_flat_quote_item
just add fields and name it as you wish (that will be your new attributes)
file you need to edit for your new attribute to be visible on order page should be this one:
app/design/adminhtml/default/default/template/sales/order/view/items/renderer/default.phtml
and your new attribute:
<?php echo $_item->getMyCustomAttribute() ?>
If you would like to make that attribute "the proper way" it requires a bit more skill..
Here is an example how you can add custom category attribute, same would be for your problem:
http://inchoo.net/ecommerce/magento/how-to-add-new-custom-category-attribute-in-magento/
Thanks
I would ask some of the more popular extension providers for a custom quote. AheadWorks comes to my mind quickly... I say visit the Magento Connect store and browse through highly rated extensions and you'll see there are a small number of companies doing lots of successful work.
They will be able to "more properly" handle, store, track, and communicate your desired data through the entire system.
Once I better quantify a similar situation I would like to program, I will seek the help of experienced module builders. The Zend MVC is a miserable bowl of spaghetti once you start trying to code in it! :D
I am learning Magento. I have already installed and gone through admin side.
Have done for adding customers ,Products ,Pricing or other stuffs. Now I want to learn more things (currently don't want to go for code and database).
Can anyone post here sample tasks (specially for learning). Because as I said am new to magento and don't konow exactly what type of tasks we can do in Magento.
I want some good tricky and sample tasks to do in magento. So I can learn it more.
1.) Change the favicon logo.
2.) Change the magento home page logo.
3.) Change the Top links "name" Ex: My Cart as image.
4.) Adding new link in top links.
5.) Move the top menu navigation as left menu navigation.
6.) Creating banner slider in home page
7.) Listing the feature products in home page.
8.) Need to put newsletter subscription in footer area.
9.) Removing the magento ads in right column (i.e) The dog and poll removing.
10.) Adding the new column in sort by order in category page.
11.) In product detail page need to show product description and some other information as tab format.
12.) Magento registeration need to enable extra options like company name, phone number, address, user type.
13.) Each customer group need to show different type of price for products.
14.) While importing products we to import the tier price to each products.
15.) Creating new attributes to products. And need to import values to that new attribute.
16.) Adding custom new column while registering a customer. And it need to show in admin side as editable.
Basically you are in e-commerce domain and magneto is a e-commerce framework which provide a platform to build e-commerce application with some build in out of the box functionality so that the developer at the end of the day not have to start building things from scratch.
what type to tasks we can do in Magneto.
being a eCommerce platform it provides you out of the box functionality ranging from product management,category/catalog management,shipping,checkout process,user management,post order process etc and many other things.
E-commerce in itself start from application like B2C (Business to customer), B2B (business to business).
I want some good tricky and sample tasks to do in magento
i am not sure what exactly you mean by this statement what you want to learn how exactly flow going on or how you can customize the things.
my suggestion is to explore some e-commerce implementations like amazon,eBay etc see how things flow there and than come out what you want to have in all.
i have not worked with magento but being in e-commerce domain i know every platform provide some sample reference application so it should be the case with Magento so just run that application and see how flow is going on and play around with it.
one thing that seems good to start is checkout process as it is always an integral part of any B2C implementation.
Other aspect is Product content management.
How about learning to create tier prices for customer options? I am quite sure that you need this for the future someday.
Magento allows tier prices for products and prices for individual options. However, tier prices for individual options are not supported. Tier prices for individual options are needed e.g. when selling promotional items or textiles with custom imprints. To create individual tier prices just try one of these three options:
one of these three options:
Realizing the surcharges with Cart Price Rules
Simple Configurable Products / Better Configurable Products
Generating additional individual options with prices
In my opinion the last one is the best solution. An individual option only allows one surcharge, when more are needed (one for each tier price you want to have). So you create several options with different prices. By doing so the following module might help you. You can request it for free at: http://www.code4business.de/kontakt-impressum/.
This module requires entering of tier prices and individual options in the backend. Afterwards the prices of the individual options for each tier price are entered in the newly generated options. When you save it, the following table of individual options will be generated. In this table, the tier prices can be entered for the original individual options. After filling out all these fields, the result is expected to be in the checkout.
I hope this is the kind of learning-idea you imagined! If you have further questions just take a look at this link. It offers you detailed descriptions with pictures how to create tier prices:
http://www.code4business.de/tier-prices-for-magento-custom-options-en/
I'm completely new on working with Magento and I'm going to create a module in order to validate and in some cases manipulate some cart/order information.
To be specific I'm gonna restrict the customer from buying an item more than X times.
I've started working on this a bit, but I'm not so satisfied with the solution.
This is how I've done it so far:
I've created a new module with a controller which subclasses Mage_Checkout_CartController and there I've implemented the addAction-method. So every time a product is added to the cart I search through the user's order history and look for previous orders containing this product. Then I prevent it from being added and trigger an error-message.
It has a lot of shortcomings. For instance, if the customer isn't logged in at the time he can add the product, you can update the cart with too many... etc.
I would be me comfortable if I could hook on events, but I don't know where to start. Haven't found so good guides about this.
I want to do this verification when listing cart, updating cart and before submitting order.
So, my questions are:
How do I add observers on these events in my module? I couldn't get config.xml-configuration for event observing to work. I also need to know the names of these events.
How do I manipulate the quantity of an item in cart / delete it? When updating cart with too many of the products I want to change the quantity and trigger an error.
If you have any other ideas on a better solution for this, you're very welcome to comment.
I appreciate any help. Thanks.
I think this article should answer on all your questions. See events list at the bottom of this article. Do not forget delete cache after each change made to config.xml and other xml files in your module etc folder.
the product’s page would have a “restricted countries” tab, where we can select countries that the product cannot ship to.
Nope I am afraid recently coded the functionality for a project: Few pointers how I tackled the issue:
You will have to modify the addToCart
functionality to introduce your
logic. Rewrite
Mage_Checkout_CartController::addAction()
You will also need to alter the OnePageController Mage_Checkout_OnepageController::saveBillingAction and saveShippingAction to confirm that the address choosen are not restriced
You will also need to alter Mage_Checkout_MultishippingController::addressesPostAction to do the same address checking during multi shipping checkout.
Admin Changes
You will need a product attribute called restricted_countries ...you will need to set some source and backend models to poplulate the countries in the multi select list in the product tab
I hope this puts you on the right path ... good luck.
Personally I think you should go multi-website and have the product selection, prices and delivery prices setup per currency (or region).
You then should put some GeoIP code on the index.php so that you have one URL for all of your websites.
In that way the person from region A sees the subset of products for their region based on their currency, e.g. ₡7.99 instead of an auto-converted ₡7.57, region B sees a different subset of products e.g. ₱14.99 instead of auto-converted ₱14.23 and so on.
Price points do matter if your site is to be popular, making money and a long term investment then you need price points not auto-converted prices or foreign currency only.
The multi-store, multi-website arrangement is out-of-the-box, easy to setup and with minimal burden on catalog inventory management. Work within the software and the methods available, don't reinvent the wheel.