আপনার প্রশ্নের ভিত্তিতে আমি অনুমানের আওতায় আছি যে আপনি ইতিমধ্যে আপনার এক্সটেনশন বৈশিষ্ট্যগুলি সেট আপ করেছেন। আমি অনুরূপ পরিবর্তন করেছি এবং আশা করি আমার উত্তরটি সহায়তা করবে helps
আপনার কাস্টম মডিউলে ডিফল্ট শিপিং প্রসেসর / ডিফল্ট প্রসারিত করতে একটি প্রয়োজনীয় js-config ফাইল তৈরি করুন
নামস্থান / CustomModule / দৃশ্য / ফ্রন্টএন্ড / requirejs-config.js
var কনফিগারেশন =
"মানচিত্র": {
"*":
'ম্যাজেন্টো_চেকআউট / জেএস / মডেল / শিপিং-সেভ-প্রসেসর / ডিফল্ট': 'নেমস্পেস_কাস্টমমডিউল / জেএস / মডেল / শিপিং-সেভ-প্রসেসর / ডিফল্ট'
}
}
};
পেডলোডে আপনার এক্সটেনশন বৈশিষ্ট্য যুক্ত করুন।
/ * গ্লোবাল সংজ্ঞা, সতর্কতা * /
সংজ্ঞায়িত (
[
'JQuery',
'কো',
'Magento_Checkout / JS / মডেল / উদ্ধৃতি',
'Magento_Checkout / JS / মডেল / রিসোর্স-URL-ব্যবস্থাপক',
'পুরোনো যাদুকর / স্টোরেজ',
'Magento_Checkout / JS / মডেল / অর্থপ্রদান-সার্ভিস',
'Magento_Checkout / JS / মডেল / পেমেন্ট / পদ্ধতি-কনভার্টার',
'Magento_Checkout / JS / মডেল / ত্রুটি প্রসেসর',
'Magento_Checkout / JS / মডেল / পূর্ণ স্ক্রীন-লোডার',
'Magento_Checkout / JS / কর্ম / নির্বাচন-বিলিং-ঠিকানা'
],
ফাংশন (
$,
কো,
কোট,
resourceUrlManager,
স্টোরেজ,
paymentService,
methodConverter,
errorProcessor,
fullScreenLoader,
selectBillingAddressAction
) {
'কঠোর ব্যবহার';
ফিরে
saveShippingInifications: ফাংশন () {
var payload;
যদি (! quote.billingAddress ()) {
selectBillingAddressAction (quote.shippingAddress ());
}
// আপনার শিপিং ঠিকানায় এক্সটেনশন বৈশিষ্ট্য যুক্ত করা
পেডলোড = {
ঠিকানার তথ্য: {
শিপিং_এড্রেস: উদ্ধৃতি। শপিং অ্যাড্রেস (),
বিলিং_এড্রেস: কোট.বিলিংএড্রেস (),
শিপিং_মোথড_কোড: উদ্ধৃতি.শীপিংমঠোড ()। পদ্ধতি_ কোড,
শিপিং_কারিয়ার_কোড: উদ্ধৃতি.শীপিংমঠোড ()। ক্যারিয়ার_কোড,
extension_attributes: {
কাস্টম_ফিল্ড: $ ('# কাস্টম_ফিল্ড')। ভাল (),
}
}
};
fullScreenLoader.startLoader ();
রিটার্ন স্টোরেজ.পোস্ট (
resourceUrlManager.getUrlForSetShippingInformation (উদ্ধৃতি),
JSON.stringify (পে লোড)
).সম্পন্ন(
ফাংশন (প্রতিক্রিয়া) {
quote.setTotals (response.totals);
paymentService.setPaymentMethods (methodConverter (response.payment_methods));
fullScreenLoader.stopLoader ();
}
) .Fail (
ফাংশন (প্রতিক্রিয়া) {
errorProcessor.process (প্রতিক্রিয়া);
fullScreenLoader.stopLoader ();
}
);
}
};
}
);
একটি প্লাগইন দিয়ে আপনার উদ্ধৃতিতে অ্যাট্রিবিউটটি সংরক্ষণ করুন (আপনি যদি এখানে কোনও পর্যবেক্ষক ব্যবহার করতে পারেন তবে আমি যাচাই করেছিলাম না নিশ্চিত না)।
di.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<type name="Magento\Checkout\Model\ShippingInformationManagement">
<plugin name="Namespace_CustomModule_save_delivery_date_in_quote" type="Namespace\CustomModule\Plugin\Checkout\SaveAddressInformation" />
</type>
</config>
SaveAddressInformation.php
ক্লাস SaveAddressInformation
{
সুরক্ষিত ote কোটরেপোসিটোরি;
পাবলিক ফাংশন __ কনস্ট্রাক্ট (
\ ম্যাজেন্টো ote উক্তি \ মডেল \ কোয়েট রেপোসিটরি $ উদ্ধৃতিপোষক
) {
$ এটি-> উদ্ধৃতিপরিবর্তন = $ উদ্ধৃতিপরিষদ;
}
/ **
* @ পরিম \ ম্যাজেন্টো \ চেকআউট \ মডেল \ শিপিংইনফরমেশন ম্যানেজমেন্ট $ বিষয়
* @ পরিম $ কার্টআইডি
* @ পরিম \ ম্যাজেন্টো \ চেকআউট \ এপিআই \ ডেটা \ শিপিংইনফর্মেশন ইন্টারফেস $ ঠিকানা তথ্য
* /
সেভ অ্যাড্রেস ইনফরমেশন (পূর্বে জনসাধারণের কাজ)
\ ম্যাজেন্টো \ চেকআউট \ মডেল \ শিপিংআইফরমেশন ম্যানেজমেন্ট $ বিষয়,
$ CartId,
\ ম্যাজেন্টো \ চেকআউট \ এপিআই \ ডেটা \ শিপিংইনফর্মেশন ইন্টারফেস $ ঠিকানা তথ্য
) {
$ এক্সটেনশনএট্রিবিউটস = $ ঠিকানা ইনফরমেশন-> getExistanceAttributes ();
$ কাস্টমফিল্ড = $ এক্সটেনশনএট্রিবিউটস-> getCustomField ();
$ উদ্ধৃতি = $ এটি-> উদ্ধৃতিআপনি-> getActive ($ কার্টআইডি);
$ Quote-> setCustomField ($ customField);
}
}
একটি পর্যবেক্ষক ইভেন্ট.এক্সএমএল দিয়ে আপনার অর্ডারে অ্যাট্রিবিউট সংরক্ষণ করুন
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
<event name="sales_model_service_quote_submit_before">
<observer name="unique_observer_name" instance="Namespace\CustomModule\Observer\SaveCustomFieldToOrder"/>
</event>
</config>
SaveCustomFieldToOrder.php
ক্লাস SaveCustomFieldToOrder অবজারভারইন্টারফেস প্রয়োগ করে
{
/ **
* @var \ Magento \ ফ্রেমওয়ার্ক \ অবজেক্টম্যানেজারইন্টারফেস
* /
সুরক্ষিত ob _জবসটি ম্যানেজার;
/ **
* @ পরিম \ ম্যাজেন্টো \ ফ্রেমওয়ার্ক \ অবজেক্টম্যানেজারইন্টারফেস $ অবজেক্টম্যানেজার
* /
পাবলিক ফাংশন __ কনস্ট্রাক্ট (\ ম্যাজেন্টো \ ফ্রেমওয়ার্ক \ অবজেক্টম্যানেজারইন্টারফেস $ অবজেক্টম্যানেজার)
{
$ এটি -> _ অবজেক্ট ম্যানেজার = $ অবজেক্টম্যানেজার;
}
পাবলিক ফাংশন এক্সিকিউট (ইভেন্টObserver $ পর্যবেক্ষক)
{
$ অর্ডার = $ পর্যবেক্ষক-> getOrder ();
ote quoteRepository = $ এটি -> _ অবজেক্ট ম্যানেজার-> তৈরি করুন ('ম্যাজেন্টো \ উদ্ধৃতি \ মডেল \ উদ্ধৃতিপোষক');
/ ** @var \ Magento \ উক্তি \ মডেল \ উক্তি $ উদ্ধৃতি * /
$ উদ্ধৃতি = ote উদ্ধৃতিআপনি-> পান ($ অর্ডার-> getQuoteId ());
$ অর্ডার-> সেটকাস্টমফিল্ড (ote উদ্ধৃতি-> getCustomField ());
প্রত্যাবর্তন $ এটি;
}
}