में कस्टम विकल्प प्रोग्रामेटिक रूप से कैसे प्राप्त करें मेरे पास चेकआउट पर कुछ उत्पाद हैं जो मुझे कोड के माध्यम से उनके लिए चुने गए सभी कस्टम विकल्प प्राप्त करने में सक्षम होना चाहिए।Magento
किसी भी मदद की बहुत सराहना की है!
में कस्टम विकल्प प्रोग्रामेटिक रूप से कैसे प्राप्त करें मेरे पास चेकआउट पर कुछ उत्पाद हैं जो मुझे कोड के माध्यम से उनके लिए चुने गए सभी कस्टम विकल्प प्राप्त करने में सक्षम होना चाहिए।Magento
किसी भी मदद की बहुत सराहना की है!
मैं आपको केवल एक उत्पाद का उदाहरण दूंगा। मान लीजिए कि आप अपने आवश्यक उत्पाद के स्कू को जानते हैं (उदाहरण के लिए, इसे "एबीसीडीई" दें)। तो आप उस उत्पाद की आईडी प्राप्त कर पाएंगे।
कोड कुछ हद तक तरह होगा: -
$productSku = "ABCDE";
$product = Mage::getModel('catalog/product');
$productId = $product->getIdBySku($productSku);
$product->load($productId);
/**
* In Magento Models or database schema level, the product's Custom Options are
* executed & maintained as only "options". So, when checking whether any product has
* Custom Options or not, we should check by using this method "hasOptions()" only.
*/
if($product->hasOptions()) {
echo '<pre>';
foreach ($product->getOptions() as $o) {
$optionType = $o->getType();
echo 'Type = '.$optionType;
if ($optionType == 'drop_down') {
$values = $o->getValues();
foreach ($values as $k => $v) {
print_r($v);
}
}
else {
print_r($o);
}
}
echo '</pre>';
}
मुझे लगता है कि यह आप आरंभ करने देगा।
परिवर्तनीय "$optionType
" में विकल्प के प्रकार के आधार पर, आपको एक और नेस्टेड "foreach
" लूप कॉल करने की आवश्यकता है। मैंने टेक्स्ट बॉक्स, टेक्स्ट फ़ील्ड्स, ड्रॉप डाउन पर काम किया है, लेकिन अन्य प्रकारों पर नहीं। तो मुझे लगता है कि आपको अपने आप से कुछ और आरएनडी करने की जरूरत है।
मुझे कस्टम विकल्पों के लिए पूछताछ में समस्या आ रही है। एक ऐसे उत्पाद के लिए जो परिवर्तनीय आकार (बड़ा, मध्यम, छोटा) है, मैं उपयोगकर्ता को विकल्प प्रदर्शित करना चाहता हूं। मैंने यहां एक संबंधित प्रश्न पोस्ट किया है: http://stackoverflow.com/questions/5033427/magento-query-for-product- विकल्प – John
धन्यवाद! यह मेरे लिए काम करता है :) हालांकि मैंने इसे एक पीटीएमएल फ़ाइल में इस्तेमाल किया और यहां तक कि उत्पाद को लोड करने के बाद भी, जब तक मैं इसे फिर से लोड नहीं करता तब तक कोई विकल्प नहीं था। अजीब, लेकिन काम करता है! – s3v3n
@ ज्ञान ज्ञान, जब मैं ऐसा करने की कोशिश करता हूं तो मुझे एक त्रुटि मिलती है, क्या आप कृपया मदद कर सकते हैं? यह त्रुटि है: 'घातक त्रुटि: किसी सदस्य फ़ंक्शन पर कॉल करें ऑब्जेक्ट्स() को गैर-ऑब्जेक्ट पर धन्यवाद' बहुत बहुत धन्यवाद! – Abude
जो लोग/चालान/शिपमेंट/क्रेडिट मेमो आदेश में व्यवस्थापक पैनल में चयनित कस्टम विकल्प बाद में देखना चाहता हूँ के लिए, फ़ाइलें: /ऐप्स/डिजाइन/adminhtml/[डिफ़ॉल्ट]/डिफ़ॉल्ट/टेम्पलेट/बिक्री/आदेश/दृश्य/आइटम/रेंडरर/default.phtml
/app/design/adminhtml/[default]/default/template/sales/order/invoice/view/items/renderer/default.phtml /ऐप/डिज़ाइन/adminhtml /[default ]/default/template/sales/order/shipment/view/items/renderer/default.phtml /ऐप/डिज़ाइन/adminhtml/[डिफ़ॉल्ट]/डिफ़ॉल्ट/टेम्पलेट/बिक्री/ऑर्डर/क्रेडिटमेमो/व्यू/आइटम/renderer/default.phtml पीएस: मैंने चालान/शिपमेंट के लिए configurated.phtml फ़ाइलों को नहीं बदला है/
<?php
//---------start:---------------
// if ($allOptions = $_item->_getData('product_options')) { // only for order item
if ($allOptions = $_item->getOrderItem()->getData('product_options')) { // for invoice, shipping, creditmemo
$options = unserialize($allOptions);
if (isset($options['options'])) {
foreach ($options['options'] as $optionValues) {
if ($optionValues['value']) {
echo ' <strong><i>'. $optionValues['label'].'</i></strong>: ';
$_printValue = isset($optionValues['print_value']) ? $optionValues['print_value'] : strip_tags($optionValues['value']);
$values = explode(', ', $_printValue);
foreach ($values as $value) {
if (is_array($value))
foreach ($value as $_value)
echo $_value;
else echo $value;
}
echo '<br />';
}
}
}
}
//---------end:---------------
?>
यह भी ध्यान रखें है कि वहाँ कोड में:
क्रेडिट मेमो और <?php echo $_item->getSku(); ?></div>
के बाद कहीं और इससे पहले कि यह की पंक्ति के बंद टैग </td>
कोड डालने
सम्मिलित कोड (सावधान रहना, यह प्रत्येक फ़ाइल के लिए अलग है) एक पंक्ति (अगर वाक्य) जो केवल डिफ़ॉल्ट रूप से डिफ़ॉल्ट रूप से काम करती है .phtml फ़ाइल, और दूसरा अगर वाक्य चालान/शिपिंग/क्रेडिटमेमो फ़ाइलों में काम करता है। यह इस बात पर निर्भर करता है कि आप कोड कहां पोस्ट करते हैं, सुनिश्चित करें कि सही वाक्य पर टिप्पणी की गई है।
आशा है कि यह मदद करता है, धन्यवाद भी ज्ञान क्रेविंग जिसका कोड मुझे काफ़ी मदद की :-) jazkat
कृपया ध्यान दें कि
$product->hasCustomOptions()
"ज्ञान क्रेविंग" में
के समाधान हमेशा करता है करने के लिए झूठी वापसी (कम से कम मेरे मामले में, Magento 1.6.2)। इसलिए अगर शर्त कभी पूरा नहीं होती है और नीचे दिया गया ब्लॉक निष्पादित नहीं होता है।
आपके उत्तर के लिए बहुत बहुत धन्यवाद। हां, मुझे यह मानना है कि Magento v1.5.x से, यह काम नहीं किया, लेकिन मैं इस जवाब को अपडेट करना भूल गया। तो मुझे सही रास्ता दिखाने के लिए फिर से धन्यवाद! –
@nowledgeCraving ऐसा लगता है कि आप इसे एक बार फिर से अपडेट करना भूल गए हैं: डी अभी भी आपके उत्तर में इसका कोई उल्लेख नहीं दिख रहा है ... – OZZIE
$quote=$observer->getEvent()->getQuote();
$quoteid=$quote->getId();
$session= Mage::getSingleton('checkout/session');
$getotal = Mage::helper('checkout')->getQuote()->getGrandTotal();
foreach($session->getQuote()->getAllItems() as $item)
{
$sellcheck = Mage::getModel('catalog/product')->load($item->getProduct()->getId())->getissellbool();
$options = Mage::getModel('catalog/product')->load($item->getProduct()->getId())->getProductOptionsCollection();
foreach ($options as $o)
{
$title = $o->getTitle();
$values = $o->getValues();
foreach($values as $v)
{
$mydata = $v->getPrice();
echo 'options price: ' . $mydata;
}
}
}
शॉपिंग कार्ट में उत्पाद कस्टम विकल्पों तक पहुंचने के लिए आप इस कोड का उपयोग कर सकते हैं।
बस एक नोट - आप उत्पाद को दो बार लोड कर रहे हैं –
मुझे आशा है कि यह आपके लिए उपयोगी के लिए उत्पाद पृष्ठ में केवल कस्टम ड्रापडाउन मूल्य मिलेगा
बस पिछले
एप्लिकेशन/डिजाइन/दृश्यपटल/आधार/डिफ़ॉल्ट/टेम्पलेट में इस फ़ाइल में निम्न कोड पेस्ट/सूची/उत्पाद/देखें/options.phtml
<?php
$product = Mage::getModel("catalog/product")->load($this->getProduct()->getId()); //product id
foreach ($product->getOptions() as $_option) {
$values = $_option->getValues();
foreach ($values as $v) {
print_r($v->getTitle());
echo "<br />";
}
}
?>
क्षमा करें अब मेरे पास इसका समाधान है – Naresh
हम भी ऐसे ही हल कर सकते हैं, कि चेकआउट पृष्ठ पर प्रदर्शित कर सकते हैं।
$items = Mage::getModel('checkout/cart')->getQuote()->getAllVisibleItems();
foreach($items as $product) {
$options = $product->getProduct()->getTypeInstance(true)->getOrderOptions($product->getProduct());
if ($options)
{
if (isset($options['options']))
{
$result = $options['options'];
}
if(count($result)>0){
foreach($result as $key =>$value){
$resultoption = $value['value'];
}
}
}
आप टेम्पलेट/चेकआउट/गाड़ी/आइटम/default.php में इस कोड की कोशिश कर सकते हैं:
if($Product->hasOptions)
{
$optionsArr = $Product->getOptions();
foreach ($optionsArr as $optionKey => $optionVal)
{
$optStr.= "<select style='display:block; clear:both;' name='options[".$optionVal->getId()."]'>";
foreach($optionVal->getValues() as $valuesKey => $valuesVal)
{
$optStr.= "<option value='".$valuesVal->getId()."'>".$valuesVal->getTitle()."</option>";
}
$optStr.= "</select>";
}
echo($optStr);
}
तरीके (में निर्मित, मॉड्यूल, आदि) की बहुत सी चीज़ें हैं एक कस्टम प्राप्त करने के लिए Magento में एक उत्पाद से जुड़ा विकल्प। यदि आप समुदाय को यह बताते हैं कि आप विकल्पों को कैसे जोड़ रहे हैं तो आपको जवाब प्राप्त करने का एक बेहतर मौका मिलेगा। –
बस बस php में उत्पादक होने और उस उत्पाद से जुड़े कस्टम विकल्प प्राप्त करने में सक्षम होने के नाते। – DaveC
यह शब्द "कस्टम विकल्प" है जो भ्रम पैदा कर रहा है। उत्पाद में कस्टम विकल्प कैसे जोड़े गए थे? Magento के माध्यम से? एक वाणिज्यिक विस्तार के माध्यम से? एक कस्टम विस्तार के माध्यम से? –