set-billing-address.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /**
  2. * Copyright © Magento, Inc. All rights reserved.
  3. * See COPYING.txt for license details.
  4. */
  5. /**
  6. * @api
  7. */
  8. define(
  9. [
  10. 'jquery',
  11. 'Magento_Checkout/js/model/quote',
  12. 'Magento_Checkout/js/model/url-builder',
  13. 'mage/storage',
  14. 'Magento_Checkout/js/model/error-processor',
  15. 'Magento_Customer/js/model/customer',
  16. 'Magento_Checkout/js/model/full-screen-loader',
  17. 'Magento_Checkout/js/action/get-payment-information'
  18. ],
  19. function ($,
  20. quote,
  21. urlBuilder,
  22. storage,
  23. errorProcessor,
  24. customer,
  25. fullScreenLoader,
  26. getPaymentInformationAction
  27. ) {
  28. 'use strict';
  29. return function (messageContainer) {
  30. var serviceUrl,
  31. payload;
  32. /**
  33. * Checkout for guest and registered customer.
  34. */
  35. if (!customer.isLoggedIn()) {
  36. serviceUrl = urlBuilder.createUrl('/guest-carts/:cartId/billing-address', {
  37. cartId: quote.getQuoteId()
  38. });
  39. payload = {
  40. cartId: quote.getQuoteId(),
  41. address: quote.billingAddress()
  42. };
  43. } else {
  44. serviceUrl = urlBuilder.createUrl('/carts/mine/billing-address', {});
  45. payload = {
  46. cartId: quote.getQuoteId(),
  47. address: quote.billingAddress()
  48. };
  49. }
  50. fullScreenLoader.startLoader();
  51. return storage.post(
  52. serviceUrl, JSON.stringify(payload)
  53. ).done(
  54. function () {
  55. var deferred = $.Deferred();
  56. getPaymentInformationAction(deferred);
  57. $.when(deferred).done(function () {
  58. fullScreenLoader.stopLoader();
  59. });
  60. }
  61. ).fail(
  62. function (response) {
  63. errorProcessor.process(response, messageContainer);
  64. fullScreenLoader.stopLoader();
  65. }
  66. );
  67. };
  68. }
  69. );