Упростить форму оценки доставки в корзине покупок в Magento 1.8

#php #forms #magento #magento-1.8 #shipping

#php #формы #magento #magento-1.8 #Доставка

Вопрос:

В корзине покупок Magento всегда есть форма по умолчанию для оценки стоимости доставки на странице корзины покупок, и эти поля всегда обязательны для заполнения,

 Country
State/Province
Poscode
 

Как я могу упростить эту форму, требуя только ввода страны?

Это список форм кода оценки доставки,

 <ul class="form-list">
                <li>
                    <label for="country" class="required"><?php echo $this->__('Country') ?><em>*</em></label>
                    <div class="box-input">
                        <?php echo Mage::getBlockSingleton('directory/data')->getCountryHtmlSelect($this->getEstimateCountryId()) ?>
                    </div>
                </li>
            <?php if($this->getStateActive()): ?>
                <li>
                    <label for="region_id"<?php if ($this->isStateProvinceRequired()) echo ' class="required"' ?>><?php if ($this->isStateProvinceRequired()) echo '<em>*</em>' ?><?php echo $this->__('State/Province') ?></label>
                    <div class="box-input">
                        <select id="region_id" name="region_id" title="<?php echo $this->__('State/Province') ?>" style="display:none;"<?php echo ($this->isStateProvinceRequired() ? ' class="validate-select"' : '') ?>>
                            <option value=""><?php echo $this->__('Please select region, state or province') ?></option>
                        </select>
                       <script type="text/javascript">
                       //<![CDATA[
                           $('region_id').setAttribute('defaultValue',  "<?php echo $this->getEstimateRegionId() ?>");
                       //]]>
                       </script>
                       <input type="text" id="region" name="region" value="<?php echo $this->escapeHtml($this->getEstimateRegion()) ?>"  title="<?php echo $this->__('State/Province') ?>" class="input-text" style="display:none;" />
                   </div>
                </li>
            <?php endif; ?>
            <?php if($this->getCityActive()): ?>
                <li>
                    <label for="city"<?php if ($this->isCityRequired()) echo ' class="required"' ?>><?php if ($this->isCityRequired()) echo '<em>*</em>' ?><?php echo $this->__('City') ?></label>
                    <div class="box-input">
                        <input class="input-text<?php if ($this->isCityRequired()):?> required-entry<?php endif;?>" id="city" type="text" name="estimate_city" value="<?php echo $this->escapeHtml($this->getEstimateCity()) ?>" />
                    </div>
                </li>
            <?php endif; ?>
                <li>
                    <label for="postcode"<?php if ($this->isZipCodeRequired()) echo ' class="required"' ?>><?php if ($this->isZipCodeRequired()) echo '<em>*</em>' ?><?php echo $this->__('Zip/Postal Code') ?></label>
                    <div class="box-input">
                        <input class="input-text validate-postcode<?php if ($this->isZipCodeRequired()):?> required-entry<?php endif;?>" type="text" id="postcode" name="estimate_postcode" value="<?php echo $this->escapeHtml($this->getEstimatePostcode()) ?>" />    
                    </div>
                </li>
            </ul>
 

если я удалю поля State / Province и Poscode вручную, эта форма не будет работать.

Есть идеи, что я могу сделать, чтобы требовалось только поле страны?

Но мне нужно, чтобы штат / провинция и Poscode были обязательны на моей странице оформления заказа…

Файл CSV.

 Country Region/State    Zip/Postal Code # of Items (and above)  Shipping Price
FRA *   *   1   12
FRA *   *   12  0
GBR *   *   1   25
GBR *   *   12  0
 

Комментарии:

1. мой вопрос в том, как методы доставки будут возвращать оценку без состояния / почтового индекса? Вы просто используете табличные или фиксированные тарифы для доставки?

2. итак, в таблице тарифов вы должны использовать * для штатов и почтовых индексов и указывать цены только для кодов стран ?.. или вы используете ту же цену для штатов и не используете * в csv?

3. вы могли бы просто создать скрытые поля состояния и почтового индекса с поддельными данными в этой форме .. затем с поддельным почтовым индексом и состоянием и возвращаемой реальной страной вы должны получить ответ. Не уверен, что это сработает, но попробовать стоит.

4. просто мусор.. например, почтовый индекс будет 99999 и штатом Техас, если страна действительна, и вы используете * для штата и почтового индекса, тогда Magento должен вернуть котировку из таблицы rate. Это относится только к странице корзины, а не к оформлению заказа

5. дайте мне знать, если это сработает, как я уже сказал, я никогда этого не пробовал, но теоретически это должно сработать