Страница оформления заказа Magento новый адрес доставки не принимает - PullRequest
0 голосов
/ 27 сентября 2011

Я пытался создать функциональность одностраничного извлечения magento из существующего кода magento 1.4.2 . Я изменил что-то в opcheckout.js. Там я прокомментировал некоторые функциональные возможности, потому что это возвращает некоторую ошибку. Теперь проверка и поток все нормально. Даже при том, что я получаю некоторую проблему после заказа места. При этом только оплата и отправка осуществляются по одному и тому же адресу существующего платежного адреса.
Даже если я изменил новый адрес доставки, этот адрес не принимается .. И еще одна проблема не в состоянии сохранить адрес доставки также. Что касается этого, что я хочу сделать?

var Shipping = Class.create();
Shipping.prototype = {
  initialize: function(form, addressUrl, saveUrl, methodsUrl) {
    this.form = form;
    if ($(this.form)) {
      $(this.form).observe('submit', function(event)
      {
        this.save();
        Event.stop(event);
      } .bind(this));
    }
    this.addressUrl = addressUrl;
    this.saveUrl = saveUrl;
    this.methodsUrl = methodsUrl;
    this.onAddressLoad = this.fillForm.bindAsEventListener(this);
    this.onSave = this.nextStep.bindAsEventListener(this);
    this.onComplete = this.resetLoadWaiting.bindAsEventListener(this);
  },

  fillForm: function(transport) {
    var elementValues = {};
    if (transport && transport.responseText) {
      try {
        elementValues = eval('(' + transport.responseText + ')');
      }
      catch (e) {
        elementValues = {};
      }
    }
    else {
      this.resetSelectedAddress();
    }
    arrElements = Form.getElements(this.form);
    for (var elemIndex in arrElements) {
      if (arrElements[elemIndex].id) {
        var fieldName = arrElements[elemIndex].id.replace( / ^ shipping: / , '');
        arrElements[elemIndex].value = elementValues[fieldName] ? elementValues[fieldName] : '';
        if (fieldName == 'country_id' && shippingForm) {
          shippingForm.elementChildLoad(arrElements[elemIndex]);
        }
      }
    }
  },

  setSameAsBilling: function(flag) {
    $('shipping:same_as_billing').checked = flag;
    // #5599. Also it hangs up, if the flag is not false
    //        $('billing:use_for_shipping_yes').checked = flag;
    if (flag) {
      this.syncWithBilling();
    }
  },

  syncWithBilling: function () {
    $('billing-address-select') && this.newAddress(!$('billing-address-select').value);
    $('shipping:same_as_billing').checked = true;
    if (!$('billing-address-select') || !$('billing-address-select').value) {
      arrElements = Form.getElements(this.form);
      for (var elemIndex in arrElements) {
        if (arrElements[elemIndex].id) {
          var sourceField = $(arrElements[elemIndex].id.replace( / ^ shipping: / , 'billing:'));
          if (sourceField) {
            arrElements[elemIndex].value = sourceField.value;
          }
        }
      }
      //$('shipping:country_id').value = $('billing:country_id').value;
      shippingRegionUpdater.update();
      $('shipping:region_id').value = $('billing:region_id').value;
      $('shipping:region').value = $('billing:region').value;
      //shippingForm.elementChildLoad($('shipping:country_id'), this.setRegionValue.bind(this));
    } else {
      $('shipping-address-select').value = $('billing-address-select').value;
    }
  },

  setRegionValue: function() {
    $('shipping:region').value = $('billing:region').value;
  },

  save: function() {
    //if (checkout.loadWaiting!=false) return;
    var Res = "";
    var validator = new Validation(this.form);
    if (validator.validate()) {
      //checkout.setLoadWaiting('shipping');
      var request = new Ajax.Request(
        this.saveUrl,
      {
        method: 'post',
        onComplete: this.onComplete,
        onSuccess: this.onSave,
        onFailure: checkout.ajaxFailure.bind(checkout),
        parameters: Form.serialize(this.form)
      }
      );
    }
    else
    {
      Res = "False";
    }
    return Res;
  },

  resetLoadWaiting: function(transport) {
    checkout.setLoadWaiting(false);
  },

  nextStep: function(transport) {
    if (transport && transport.responseText) {
      try {
        response = eval('(' + transport.responseText + ')');
      }
      catch (e) {
        response = {};
      }
    }
    if (response.error) {
      if ((typeof response.message) == 'string') {
        alert(response.message);
      } else {
        if (window.shippingRegionUpdater) {
          shippingRegionUpdater.update();
        }
        alert(response.message.join("\n"));
      }

      return false;
    }

    checkout.setStepResponse(response);

    /*
    var updater = new Ajax.Updater(
        'checkout-shipping-method-load',
        this.methodsUrl,
        {method:'get', onSuccess: checkout.setShipping.bind(checkout)}
    );
    */
    //checkout.setShipping();
  }
}
...