Pulling Custom Option ID from Magento - magento

We have a SOAP connection to magento that is working great - we're able to pull product info, skus, descriptions, etc. using the magento API. We've been able to successfully add products to the cart programmatically with custom options, and that works great. The problem is this:
When you create a custom option for a product, it is assigned a unique ID that has to be called in order to pass that option value to the cart. For example:
www.mysite.com/magento/checkout/cart/add?product=7&qty=1&options[OPTION ID]=robots
Assuming I have my custom option ID correct, this will add 1 product with the option "robots." Which is nice.
However, we have hundreds of products, and while they all use similar custom options, each option is given a unique ID. That means I need to be able to call the magento API and get custom options details (specifically the option ID) so that we can add them to the cart properly. I have been back and forth with Varien Support (Magento), but they are less than helpful, as usual. Now, I know I can find these options by using firebug in Firefox or Chrome, which I've done to test the "add to cart" script. However, that's not a proper solution. I need to be able to grab this data from magento based on product id.
Can this really be that hard? Shouldn't this be tied to the data for the product somehow? I've done a var_dump on the catalog_product.info and i see where it asks if there are options but doesn't provide any details on them. Thoughts?
Thanks in advance.

Do you need to get all options ids for specific products or just some particular? For the latter you can use this code:
$productEntity = Mage_Catalog_Model_Product::ENTITY;
$colorAttribute = Mage::getModel('eav/config')->getAttribute($productEntity, 'color');
$colorAttribute->getId();
For the first option code in this question might be useful How to get all super attribute options for a configurable item in Magento

Related

Get variant that was added to cart

I am using the Shopify Storefront API for a headless website, I have run into a specific issue where, when I add a variant of a product in the Cart, I can't seem to find a solid way of knowing which variant was added, the current API as is from Storefront doesn't seem to offer an option from the graphQL to know which variant was added.
Thanks in advance!
Technically, I can get this information from the variantBySelectedOptions field, however this only works when adding items to cart, since when I add a product I can send the options of the variant, however this doesn't work when I am simply trying to fetch the current items in my Cart, when for example I'm simply reloading the page, this field always expects some sort of input!

make configurable product options independent on product view page --Magento

I am working on a Magento project and I need to know if there is a way to make a product's options independent to each other or unrequired. I need to use one of several at a time (I have 6 dropdowns).
I have tried add to cart by query string but all dropdown values were still required. I also tried to make all the options default, then modify the selected options in the observer, but I did not meet with success. See the screenshot below for more details.
Any help will be appreciated
Screenshot http://secure.justhost.com/~sharpwe1/img/imf.png
Configurable Products in Magneto are only parent products of Simple Products. Whatever you have as an attribute of a Configurable - a Simple Product has to be present for each. To do this out of the box in Magento, you should be looking into setting up a Simple Product with Custom Options.

Magento - Uses and Benefits of getOptionsByCode

I have seen that Magento uses this method "getOptionsByCode()" in the class "Mage_Sales_Model_Quote_Item" a lot, for retrieving / fetching the Quote Item options by code. After printing each of the Options, for any item, I found these:-
info_buyRequest
option_ids
option_1843
attributes
product_qty_231
simple_product
Now here are my questions:-
What Magento is trying to achieve with the use of this method "getOptionsByCode()", or its benefits?
Is this only to be used for the Configurable Products, or for other composite Product Types also?
How to determine which option codes are for Custom Options of the corresponding Product Item?
What are the options "info_buyRequest" and "simple_product" specifically used for?
Are there any other uses of the Custom Options, like Configurable Attributes or something else?
Thanks to all in advance!
Let's answer one at a time:
The item's options are the values the user selected for adding that product to the cart (for instance, the different options and their selected values).
All of the products use at least the info_buyRequest option. I don't really know about the other ones.
I think they might be all inside of the "attributes" option, but I never really used custom options.
info_buyRequest is used to spec the qty, and all other options. It is the initial request (that later gets processed). The simple product probably is the real product you are adding to the cart (that is, the item might be a configurable product, but you add in the cart a simple product).
I don't really know. But, if what you need is to find out the options chosen for such product, my guess is you should check either the "attributes" option, or just get the simple_product and get it's options.

how to add default variants to product in magento

I'm very new to Magento.I am having product with some variants like "size" with values "large XX,small XX,medium XX".I want the feature to make any one of this values as default in admin.
my screenshot explanation here
How can i do this
please help me!
When you say you want them to be defaults, you are being a little vague. Are you talking about using configurable products for this? Custom product options? When you say "default in admin", what do you mean? Which page are you referring to? More detail will help us answer the question.
Thanks,
Joe
As far as I know, what you are asking for is not a default functionality of Magento, but it shouldn't be difficult to add some javascript to allow you to force selections at page load time. Ultimately, it's just code, so it's definitely possible to do.
my suggestion would be to add a attribute to all you products called for instance "defaultselect" then you can enter your value easily from the backend to your configurable product.
so now you have a configurable product say a hat which comes in 3 sizes, and has 3 assigned simple products. set the defaultselect value to one of the size values
now some layout xml and javascript is required to get you product attribute to work with the magento selects.
first you want to actually include you js. this is done through the layout xml. you can include update using add js method for PRODUCT_TYPE_configurable handle
now the js. store the js in the skin js folder.
to make this work you would need to know the configurable product defaultselect attribute value we're testing against. this could be retrieved with your own ajax function to a method which checks if the current product has a defaultselect attribute and returns it's value or false.
if you have a value from your ajax function you can work with that ie you have both the returned attributes from the configurable product and magento will return the rest.
however after that it seems to get complicated your going to have to do something with the js magento aready uses to render product options

Please specify the product's option(s) in Magento

Actually i am using Elias_configurablebundle plugin for the configurable product as associated of the Bundle Product and to display GRID* for the configurable associated products i am using magento mechanics grid. here i have merged both of the extensions it showing GRID on bundle view page but showing Please specify the product's option(s)* on click of the **Add To Cart.
Although everything is fine, no required field left to fill out, i have applied any single custom options for any of the product.
so here i want to remove this validation so then it will directly redirect to shopping cart page.
Thanks
Configurable products need to have their options chosen (say, color or size) in order to be added to the cart. Otherwise, there is no way to decide which simple product should be decremented from the inventory. So there is no way for you to "skip" selecting this information, other than hardcoding the selections for the configurable product.
If you do that, just use the simple products instead, and skip all the headache.
Thanks,
Joe
Another thing to check is that the options fields are actually inside the tags. Its fairly easy in Magento to move the option selects to a different column and not realize that you are moving them outside the add to cart form tags.
if the options are selected outside the form tags, then as far as the form is concerned no options have been selected.
Hope this helps someone down the road.

Resources