Отображение различных видов сообщений на странице просмотра продукта

magento.stackexchange https://magento.stackexchange.com/questions/107393

Вопрос

Мы используем пользовательские способы доставки, и мы ввели список zip-кодов, которые предоставляются в текстуарее в Backend. Также перечень ZIP-кодов, доступных для COD в Backend в другой области текста.

На странице просмотра продуктов мы предоставляем возможность найти доставку, доступную доставку, доступную или не введя Zip-код, используя этот Модуль - Magento Оценка доставки Блок

Теперь мы отображаем 2 вида сообщения: a) Доставка доступна B) Доставка не доступна.

Но мы хотим следующим 3 типам сообщений:

Для некоторых zip-кодов я хочу отображать сообщение как

1) Доступность доставки, COD доступна [Если Zip-код присутствует в обоих текстовых областях]

Для некоторых других zip-кодов я хочу отображать сообщение как

2) Доставка доставки, треска недоступна

[Если Zip-код присутствует в Textarea, связанном с доставкой]

также для некоторых,

3) Доставка недоступна. [Если почтовый индекс не присутствует в обоих текстовых областях].

 Введите описание изображения здесь

form.phtml:

<?php if ($this->isEnabled()): ?> 

<div class="block block-shipping-estimate" id="unique_id"> 
<img src ="/media/font-100.png" height="35" width="70" class ="ikon"> 
<div class="block-title"> 
<strong><span><?php echo Mage::helper('webdevlopers_productpageshipping')->getTitle(); ?></span></strong> 
</div> 

<div class="block-content"> 
<p class="block-subtitle"> 

<?php echo Mage::helper('webdevlopers_productpageshipping')->getDes(); ?> 
</p> 
<ul class="shipping-estimation-form" id="shipping-estimation-form"> 
<?php if ($this->isFieldVisible('country')): ?> 
<li class="item"> 
<label for="estimate_country" class="required"><em>*</em><?php echo Mage::helper('webdevlopers_productpageshipping')->__('Country') ?></label> 
<div class="input-box"> 
<?php echo Mage::getBlockSingleton('directory/data')->getCountryHtmlSelect( 
($this->getFieldValue('country') ? $this->getFieldValue('country') : $this->getConfig()->getDefaultCountry()), 
'estimate[country_id]', 
'estimate_country' 
); 
?> 
</div> 
</li> 
<?php else: ?> 
<input type="hidden" id="estimate_country" name="estimate[country_id]" value="<?php echo $this->htmlEscape($this->getConfig()->getDefaultCountry())?>" /> 
<?php endif; ?> 
<?php if ($this->isFieldVisible('region')): ?> 
<li class="item"> 
<label for="estimate_region_id"<?php if ($this->isFieldRequired('region')):?> class="required" <?php endif;?>><?php if ($this->isFieldRequired('region')):?><em>*</em><?php endif;?><?php echo $this->__('State/Province') ?></label> 
<div class="input-box"> 
<select id="estimate_region_id" name="estimate[region_id]" title="<?php echo Mage::helper('webdevlopers_productpageshipping')->__('State/Province') ?>" style="display:none;"<?php echo ($this->isFieldRequired('region') ? ' class="validate-select"' : '') ?>> 
<option value=""><?php echo Mage::helper('webdevlopers_productpageshipping')->__('Please select an option') ?></option> 
</select> 
<script type="text/javascript"> 
//<![CDATA[ 
$('estimate_region_id').setAttribute('defaultValue', '<?php echo $this->jsQuoteEscape($this->getFieldValue('region_id')); ?>'); 
//]]> 
</script> 
<input type="text" id="estimate_region" name="estimate[region]" value="<?php echo $this->htmlEscape($this->getFieldValue('region')) ?>" title="<?php echo Mage::helper('webdevlopers_productpageshipping')->__('State/Province') ?>" class="input-text" style="display:none;" /> 
</div> 
</li> 
<script type="text/javascript"> 
//<![CDATA[ 
new RegionUpdater('estimate_country', 'estimate_region', 'estimate_region_id', <?php echo $this->helper('directory')->getRegionJson() ?>); 
//]]> 
</script> 
<?php endif; ?> 
<?php if($this->isFieldVisible('city')): ?> 
<li class="item"> 
<label for="city"<?php if ($this->isFieldRequired('city')):?> class="required" <?php endif;?>><?php if ($this->isFieldRequired('city')):?><em>*</em><?php endif;?><?php echo Mage::helper('webdevlopers_productpageshipping')->__('City') ?></label> 
<div class="input-box"> 
<input class="input-text<?php if ($this->isFieldRequired('city')):?> required-entry<?php endif;?>" id="estimate_city" type="text" name="estimate[city]" value="<?php echo $this->htmlEscape($this->getFieldValue('city')) ?>" /> 
</div> 
</li> 
<?php endif; ?> 

<?php if ($this->isFieldVisible('postcode')): ?> 
<li class="item"> 

<label for="search"<?php if ($this->isFieldRequired('postcode')):?> class="required" <?php endif;?>><?php if ($this->isFieldRequired('postcode')):?><em>*</em><?php endif;?><?php echo Mage::helper('webdevlopers_productpageshipping')->__('') ?></label> 
<div class="search"> 


<input placeholder="Enter your PIN Code" class="input-text <?php if ($this->isFieldRequired('postcode')):?>
required-entry<?php endif;?> validate-pincode maximum-length-6 minimum-length-6 validate-digits"
type="text" id="estimate_postcode" name="estimate[postcode]" 
value="<?php echo $this->htmlEscape($this->getFieldValue('postcode')) ?>" 
onkeydown="if (event.keyCode == 13) { return false;}" />

</div> 
</li> 
<?php endif; ?> 


<?php if ($this->isFieldVisible('coupon_code')): ?> 
<li class="item"> 
<label for="estimate_coupon_code"<?php if ($this->isFieldRequired('coupon_code')):?> class="required" <?php endif;?>><?php if ($this->isFieldRequired('coupon_code')):?><em>*</em><?php endif;?><?php echo Mage::helper('webdevlopers_productpageshipping')->__('Coupon Code') ?></label> 
<div class="input-box"> 
<input class="input-text <?php if ($this->isFieldRequired('coupon_code')):?> required-entry<?php endif;?>" type="text" id="estimate_coupon_code" name="estimate[coupon_code]" value="<?php echo $this->htmlEscape($this->getFieldValue('coupon_code')) ?>" /> 
</div> 
</li> 
<?php endif; ?> 
<?php if ($this->isFieldVisible('cart')): ?> 
<li class="item radio"> 
<label for="estimate_cart_yes"><?php echo Mage::helper('webdevlopers_productpageshipping')->__('Include Cart Items') ?></label> 
<div class="input-box"> 
<input type="radio" id="estimate_cart_yes" name="estimate[cart]" value="1" <?php if ($this->useShoppingCart()): ?> checked="checked"<?php endif;?> /><?php echo Mage::helper('webdevlopers_productpageshipping')->__('Yes') ?> 
<input type="radio" id="estimate_cart_no" name="estimate[cart]" value="0" <?php if (!$this->useShoppingCart()): ?> checked="checked"<?php endif;?> /> <?php echo Mage::helper('webdevlopers_productpageshipping')->__('No') ?> 
</div> 
</li> 
<?php elseif ($this->useShoppingCart()):?> 
<input id="estimate_cart_yes" type="hidden" name="estimate[cart]" value="1" /> 
<?php endif; ?> 
</ul> 
<script type="text/javascript">decorateList('shipping-estimation-form');</script> 
<div class="actions"> 
<span class="please-wait f-left" id="shipping-estimate-loading-message" style="display:none;"> 
<?php echo Mage::helper('webdevlopers_productpageshipping')->__('') ?> 
</span> 
<div class="f-right"> 
<button type="button" id ="check1234" title="<?php echo Mage::helper('webdevlopers_productpageshipping')->getButton(); ?>" 
onclick="estimateProductShipping()" class="button"> 

<span><span style ="font-size:11px; padding:5px;"> 
<?php echo Mage::helper('webdevlopers_productpageshipping')->__('CHECK') ?></span></span> 
</button> 
</div> 
</div> 
</div> 
</div> 

<!-- chnage 
<a id="delivery-pincode-change" href="javascript:void(0)">change</a>
change  end-->

<div id="shipping-estimate-results" style="display:none"> 
</div> 




<script type="text/javascript"> 

( function($) { 
$(document).ready(function(){ 
$('#estimate_postcode').keydown(function(e){ 

var items = $$(['.shipping-estimation-form input', 
'.shipping-estimation-form select', 
'#product_addtocart_form input', 
'#product_addtocart_form select']); 
var estimationUrl = '<?php echo $this->jsQuoteEscape($this->getEstimateUrl());?>'; 
var parameters = Form.serializeElements(items, true); 
console.log("zipcode onkeypress worked"); 
if (!e) e = window.event; 
var keyCode = e.keyCode || e.which; 
if (keyCode == '13'){ 
//disable default enter action 
e.preventDefault(); 
console.log("Enter button was pressed"); 
$('#shipping-estimate-loading-message').show(); 
$('#shipping-estimate-results').hide(); 

new Ajax.Updater('shipping-estimate-results', estimationUrl, { 
parameters: parameters, 
onComplete: function() { 
console.log("ajax updater worked"); 
$('#shipping-estimate-loading-message').hide(); 
$('#shipping-estimate-results').show(); 
$('#unique_id').hide(); 
//$('unique_id').hide(); 
$('estimate_postcode').val()
} 
}); 
}; 
}); 
}); 
} ) ( jQuery ); 

function estimateProductShipping() 
{ 

var estimationUrl = '<?php echo $this->jsQuoteEscape($this->getEstimateUrl());?>'; 
var items = $$(['.shipping-estimation-form input', 
'.shipping-estimation-form select', 
'#product_addtocart_form input', 
'#product_addtocart_form select']); 

var validationResult = true; 

// Check the valid input 
if (!items.map(Validation.validate).all()) { 
return; 
} 

var parameters = Form.serializeElements(items, true); 

$('shipping-estimate-loading-message').show(); 
$('shipping-estimate-results').hide(); 


new Ajax.Updater('shipping-estimate-results', estimationUrl, { 
parameters: parameters, 
onComplete: function() { 
console.log("ajax updater worked"); 
$('shipping-estimate-loading-message').hide(); 
$('shipping-estimate-results').show(); 
// $('#unique_id').hide(); 
$('unique_id').hide(); 
$('estimate_postcode').val()
} 
}); 
}

function changeEstimate(){
    $('unique_id').show();
    $('shipping-estimate-results').hide();
}

/* 

Event.observe('delivery-pincode-change', 'click', function(event){
$('unique_id').show();
$('shipping-estimate-results').hide();               
$('delivery-html').hide();
});

*/


/* 

$(document).ready(function(){ 
$('check1234').on('click', function(){ 
$('#unique_id').hide(); 
$('#shipping-estimate-results').show(); 
}); 
}); 

*/ 
//]]> 
</script> 



<!-- Raph --> 

<?php if ($this->htmlEscape($this->getFieldValue('postcode'))): ?> 
<script type="text/javascript"> 
Event.observe(window, 'load', function() { 
estimateProductShipping(); 
}); 
</script> 
<?php endif; ?> 

<!-- Raph end--> 

<?php endif;?> 
.

Результаты .phtml:

<div class="block block-shipping-estimate block-shipping-results" id ="shipping-estimate-results" >
    <div class="block-title">
        <strong><span>
        <?php 
    echo Mage::helper('webdevlopers_productpageshipping')->getShiptitle(); 
        ?>
        </span></strong>
    </div>
    <div class="block-content">
<?php if ($this->getResult()):?>
        <dl>
            <?php foreach ($this->getResult() as $code => $_rates): ?>
                <dt><?php echo $this->getCarrierName($code) ?></dt>
                <dd>
                    <ul>
                    <?php foreach ($_rates as $_rate): ?>
                        <li<?php if ($_rate->getErrorMessage()) echo ' class="error-msg"';?>>
                           <?php if ($_rate->getErrorMessage()): ?>
                                <?php echo $_rate->getErrorMessage() ?>
                           <?php else: ?>
                                <?php 
                            //  echo $_rate->getMethodTitle() 
                                ?>
                                <?php $_excl = $this->getShippingPrice($_rate->getPrice(), $this->helper('tax')->displayShippingPriceIncludingTax()); ?>
                                <?php $_incl = $this->getShippingPrice($_rate->getPrice(), true); ?>


                                <!-- sat -->

                                <p style="font-size:20px;"><?php echo "Available with 14 sellers at";?>
                                <?php  $addressInfo = $this->getRequest()->getPost('estimate',array()); ?>
                                <?php if(isset($addressInfo['postcode']) && $addressInfo['postcode']):?>
                                    <?php echo ' '.$this->htmlEscape($addressInfo['postcode']); ?>
                                <?php endif;?>
                                    <a style="text-decoration: underline" href="javascript:void(0)" onclick="changeEstimate();"><?php echo $this->__('change')?></a>
                                </p>



                                <p class="vship1">
                                  <?php echo "Selling Price + " . str_replace('.00','',$_excl) . " Delivery ";?>
                                </p>


                                <!-- sat -->



                                <?php if ($this->helper('tax')->displayShippingBothPrices() && $_incl != $_excl): ?>
                                    (<?php echo Mage::helper('webdevlopers_productpageshipping')->__('Incl. Tax'); ?> <?php echo $_incl; ?>)
                                <?php endif; ?>
                           <?php endif ?>
                        </li>
                    <?php endforeach; ?>
                    </ul>
                </dd>
            <?php endforeach; ?>
        </dl>
        <?php else: ?>
        <?php //echo $this->getMessagesBlock()->toHtml(); ?>
        <?php echo Mage::helper('webdevlopers_productpageshipping')->getResult(); ?>
        <span><a style="text-decoration: underline" href="javascript:void(0)" onclick="changeEstimate();"><?php echo $this->__('change')?></a></span>
<?php endif;?>
    </div>
</div>
.

ex: Ссылка , Zip-код: 110001 / P >.

Это было полезно?

Решение

Вы можете получить почтовый индекс и добавить условие, например, на вашем требовании к вашему требованию

$currcode=Mage::app()->getRequest()->getPost('estimate');



$zipcodeshop=Mage::getStoreConfig('checkdelivery/general/pincode');
  $zipcodecod=Mage::getStoreConfig('cod/cod/zipcode');
  $zipcodeshoparrray=explode(',',$zipcodeshop);
  $zipcodecodarrray=explode(',',$zipcodecod);
  if (in_array($currcode['zipcode'], $zipcodeshoparrray, true) && in_array($currcode['zipcode'], $zipcodecodarrray, true)) {

   echo "shipping is available cod is available";

     } else if (in_array($currcode['zipcode'], $zipcodeshoparrray, false) && in_array($currcode['zipcode'], $zipcodecodarrray, true)) {

   echo "shipping is not available cod is available";

     }
else if (in_array($currcode['zipcode'], $zipcodeshoparrray, true) && in_array($currcode['zipcode'], $zipcodecodarrray, false)) {

   echo "shipping is  available cod is not available";

     }else {
    echo "shipping is not available";
   }
.

Другие советы

I have create a module for such functionality. But I have add this availability check in cart page. but this is not an issue. You can add this where you want to add. in admin section create a section with some text area you can enter all your pin-codes, messages.

Now create an Ajax in view page, what will take the pincode from user side and send it to controller. In controller fetch data from admin section and check it for different text area. Based on different text-box you can show different messages.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top