docs: function (checkoutModel) {
  
          if (!checkoutModel) {
              return null;
          }
  
          var modelCopy = sofa.Util.clone(checkoutModel);
  
          if (modelCopy.addressEqual) {
              modelCopy.shippingAddress = sofa.Util.clone(modelCopy.billingAddress);
          }
  
          var requestModel = {};
  
          var convertBirthDay = function (model) {
              // Convert the birthday into the yyyy-mm-dd format
              if (model &&
                  model.birthday &&
                  model.birthmonth &&
                  model.birthyear) {
                  model.birthdate = sofa.utils.FormatUtils.zeroFill(model.birthyear, 4) + '-' +
                      sofa.utils.FormatUtils.zeroFill(model.birthmonth, 2) + '-' +
                      sofa.utils.FormatUtils.zeroFill(model.birthday, 2);
                  delete model.birthday;
                  delete model.birthmonth;
                  delete model.birthyear;
              }
          };
  
          convertBirthDay(modelCopy.billingAddress);
          convertBirthDay(modelCopy.shippingAddress);
  
          if (modelCopy.billingAddress && modelCopy.billingAddress.country) {
              modelCopy.billingAddress.countryLabel = modelCopy.billingAddress.country.label;
              modelCopy.billingAddress.country = modelCopy.billingAddress.country.value;
              requestModel.invoiceAddress = JSON.stringify(modelCopy.billingAddress);
          }
  
          if (modelCopy.shippingAddress && modelCopy.shippingAddress.country) {
              modelCopy.shippingAddress.countryLabel = modelCopy.shippingAddress.country.label;
              modelCopy.shippingAddress.country = modelCopy.shippingAddress.country.value;
              requestModel.shippingAddress = JSON.stringify(modelCopy.shippingAddress);
          }
  
          if (modelCopy.selectedPaymentMethod && modelCopy.selectedPaymentMethod.method) {
              requestModel.paymentMethod = modelCopy.selectedPaymentMethod.method;
          } else {
              requestModel.paymentMethod = modelCopy.selectedPaymentMethod;
          }
  
          if (modelCopy.selectedShippingMethod && modelCopy.selectedShippingMethod.method) {
              requestModel.shippingMethod = modelCopy.selectedShippingMethod.method;
          }
  
          requestModel.quote = JSON.stringify(self.createQuoteData());
  
          if (modelCopy.payone) {
              if (modelCopy.payone.pseudocardpan && modelCopy.payone.truncatedcardpan) {
                  requestModel.payonePseudocardpan = modelCopy.payone.pseudocardpan;
                  requestModel.payoneTruncatedcardpan = modelCopy.payone.truncatedcardpan;
              }
          }
  
          var coupons = basketService.getActiveCoupons().map(function (coupon) {
              return coupon.code;
          });
          requestModel.coupons = JSON.stringify(coupons);
  
          return requestModel;
      }