ম্যাজেন্টো 2-তে মোট অর্ডার করতে কীভাবে ফি যুক্ত করতে হয়


39

নিম্নলিখিত লিঙ্কটি বর্ণনা করবে

http://excellencemagentoblog.com/blog/2012/01/27/magento-add-fee-discount-order-total/

Magento 1 এ মোট অর্ডার করতে ফি যুক্ত করতে।

এখন এই কার্যকারিতাটি Magento 2-এ উদ্ধৃতি মডিউলে সরানো হয়েছে ।

আমি এখনও একই ধারণা সংগ্রহ এবং পদ্ধতি আনা মত একই ধারণা। কেউ কি ম্যাজেন্টো 2 এ চেষ্টা করেছেন?


ম্যাগনেটো 2 ফাইলসেটে উদ্ধৃতি থেকে অর্ডার সরিয়ে দেওয়া বা কাজ করা হচ্ছে না তবে মোট সংগ্রহ সংগ্রহ সম্পর্কে আমি নিশ্চিত নই
প্রদীপ কুমার

2
এই প্রশ্নটি খুব বিস্তৃত, আরও নির্দিষ্ট করার চেষ্টা করুন। আপনি এ পর্যন্ত কি কি?
স্যান্ডার ছিন্নভিন্ন করা

magecomp.com/magento-2-extra-fi.html ফ্রি এক্সটেনশন
গৌরব জৈন

1
আমি মোট অর্ডার করতে অতিরিক্ত ফি যুক্ত করার জন্য মডিউল তৈরি করেছি। এই অতিরিক্ত ফি অর্ডার, চালান এবং ক্রেডিটমোতে প্রদর্শিত হবে। আপনি গিটহাব থেকে ডাউনলোড করতে পারেন: github.com/mageprince/magento2-extrafi
যুবরাজ প্যাটেল

- নিম্নলিখিত মডিউল যা সব পেমেন্ট পদ্ধতি এবং শিপিং দেশের সঙ্গে কাজ করে ব্যবহার করা যায়নি scommerce-mage.com/magento2-surcharge-or-additional-fee.html
user2804

উত্তর:


101

নীচের পদক্ষেপগুলি অনুসরণ করুন এটি আপনাকে সহায়তা করবে, আমার মডিউলে আমি ফি কলামটি যুক্ত করেছি এটি
মোট কার্টের মোট এক সারি যোগ করবে এবং চেকআউট পৃষ্ঠায় সাইড বারও থাকবে
এবং এটি মোট পরিমাণে ফি পরিমাণ যোগ করবে (ফি স্থিতিশীল মান আমি 100 হিসাবে রেখেছি) ) অর্ডার দেওয়ার পরে মোট ফি সহ হবে এবং আপনি যদি অর্ডার ভিউতে ফ্রন্টে লগইন করেন তবে আপনি মোট ব্লকে ফির নতুন সারিটি দেখতে পাবেন তবে কেউ যদি প্রয়োগ করে তবে অ্যাডমিন সাইডটি এখনও কার্যকর হয় নি, আপনি সেই উত্তরটি পোস্ট করতে পারেন

আপনার মডিউল ইত্যাদি ফোল্ডারে বিক্রয়.xml তৈরি করুন

<?xml version="1.0"?>

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Sales:etc/sales.xsd">
    <section name="quote">
        <group name="totals">

            <item name="fee" instance="Sugarcode\Test\Model\Total\Fee" sort_order="150"/>

        </group>  
    </section>
</config>

অ্যাপ্লিকেশন \ কোড \ Sugarcode \ টেস্ট \ দৃশ্য \ ফ্রন্টএন্ড \ ওয়েব \ JS \ দৃশ্য \ চেকআউট \ কার্ট \ মোট \ fee.js

/**
 * Copyright © 2015 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
define(
    [
        'Sugarcode_Test/js/view/checkout/summary/fee'
    ],
    function (Component) {
        'use strict';

        return Component.extend({

            /**
             * @override
             */
            isDisplayed: function () {
                return true;
            }
        });
    }
);

অ্যাপ্লিকেশন \ কোড \ Sugarcode \ টেস্ট \ দৃশ্য \ ফ্রন্টএন্ড \ ওয়েব \ JS \ দৃশ্য \ চেকআউট \ সারসংক্ষেপ \ fee.js

/**
 * Copyright © 2015 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
/*jshint browser:true jquery:true*/
/*global alert*/
define(
    [
        'Magento_Checkout/js/view/summary/abstract-total',
        'Magento_Checkout/js/model/quote',
        'Magento_Catalog/js/price-utils',
        'Magento_Checkout/js/model/totals'
    ],
    function (Component, quote, priceUtils, totals) {
        "use strict";
        return Component.extend({
            defaults: {
                isFullTaxSummaryDisplayed: window.checkoutConfig.isFullTaxSummaryDisplayed || false,
                template: 'Sugarcode_Test/checkout/summary/fee'
            },
            totals: quote.getTotals(),
            isTaxDisplayedInGrandTotal: window.checkoutConfig.includeTaxInGrandTotal || false,
            isDisplayed: function() {
                return this.isFullMode();
            },
            getValue: function() {
                var price = 0;
                if (this.totals()) {
                    price = totals.getSegment('fee').value;
                }
                return this.getFormattedPrice(price);
            },
            getBaseValue: function() {
                var price = 0;
                if (this.totals()) {
                    price = this.totals().base_fee;
                }
                return priceUtils.formatPrice(price, quote.getBasePriceFormat());
            }
        });
    }
);

অ্যাপ্লিকেশন \ কোড \ Sugarcode \ টেস্ট \ দৃশ্য \ ফ্রন্টএন্ড \ ওয়েব \ টেমপ্লেট \ চেকআউট \ সারসংক্ষেপ \ fee.html

<!--
/**
 * Copyright © 2015 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<!-- ko -->

  <tr class="totals fee excl">
        <th class="mark" scope="row">
            <span class="label" data-bind="text: title"></span>
            <span class="value" data-bind="text: getValue()"></span>
        </th>
        <td class="amount">

            <span class="price"
                  data-bind="text: getValue(), attr: {'data-th': title}"></span>


        </td>
    </tr>   

<!-- /ko -->

অ্যাপ্লিকেশন \ কোড \ Sugarcode \ টেস্ট \ দৃশ্য \ ফ্রন্টএন্ড \ ওয়েব \ টেমপ্লেট \ চেকআউট \ কার্ট \ সমগ্র \ fee.html

<!--
/**
 * Copyright © 2015 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<!-- ko -->
<tr class="totals fee excl">
    <th class="mark" colspan="1" scope="row" data-bind="text: title"></th>
    <td class="amount">
        <span class="price" data-bind="text: getValue()"></span>
    </td>
</tr>
<!-- /ko -->

অ্যাপ্লিকেশন \ কোড \ Sugarcode \ টেস্ট \ মডেল \ মোট \ Fee.php

<?php
/**
 * Copyright © 2015 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
namespace Sugarcode\Test\Model\Total;


class Fee extends \Magento\Quote\Model\Quote\Address\Total\AbstractTotal
{
   /**
     * Collect grand total address amount
     *
     * @param \Magento\Quote\Model\Quote $quote
     * @param \Magento\Quote\Api\Data\ShippingAssignmentInterface $shippingAssignment
     * @param \Magento\Quote\Model\Quote\Address\Total $total
     * @return $this
     */
    protected $quoteValidator = null; 

    public function __construct(\Magento\Quote\Model\QuoteValidator $quoteValidator)
    {
        $this->quoteValidator = $quoteValidator;
    }
  public function collect(
        \Magento\Quote\Model\Quote $quote,
        \Magento\Quote\Api\Data\ShippingAssignmentInterface $shippingAssignment,
        \Magento\Quote\Model\Quote\Address\Total $total
    ) {
        parent::collect($quote, $shippingAssignment, $total);


        $exist_amount = 0; //$quote->getFee(); 
        $fee = 100; //Excellence_Fee_Model_Fee::getFee();
        $balance = $fee - $exist_amount;

        $total->setTotalAmount('fee', $balance);
        $total->setBaseTotalAmount('fee', $balance);

        $total->setFee($balance);
        $total->setBaseFee($balance);

        $total->setGrandTotal($total->getGrandTotal() + $balance);
        $total->setBaseGrandTotal($total->getBaseGrandTotal() + $balance);


        return $this;
    } 

    protected function clearValues(Address\Total $total)
    {
        $total->setTotalAmount('subtotal', 0);
        $total->setBaseTotalAmount('subtotal', 0);
        $total->setTotalAmount('tax', 0);
        $total->setBaseTotalAmount('tax', 0);
        $total->setTotalAmount('discount_tax_compensation', 0);
        $total->setBaseTotalAmount('discount_tax_compensation', 0);
        $total->setTotalAmount('shipping_discount_tax_compensation', 0);
        $total->setBaseTotalAmount('shipping_discount_tax_compensation', 0);
        $total->setSubtotalInclTax(0);
        $total->setBaseSubtotalInclTax(0);
    }
    /**
     * @param \Magento\Quote\Model\Quote $quote
     * @param Address\Total $total
     * @return array|null
     */
    /**
     * Assign subtotal amount and label to address object
     *
     * @param \Magento\Quote\Model\Quote $quote
     * @param Address\Total $total
     * @return array
     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
     */
    public function fetch(\Magento\Quote\Model\Quote $quote, \Magento\Quote\Model\Quote\Address\Total $total)
    {
        return [
            'code' => 'fee',
            'title' => 'Fee',
            'value' => 100
        ];
    }

    /**
     * Get Subtotal label
     *
     * @return \Magento\Framework\Phrase
     */
    public function getLabel()
    {
        return __('Fee');
    }
}

অ্যাপ্লিকেশন \ কোড \ Sugarcode \ টেস্ট \ ইত্যাদি \ module.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
    <module name="Sugarcode_Test" setup_version="2.0.6" schema_version="2.0.6">
        <sequence>
            <module name="Magento_Sales"/>
            <module name="Magento_Quote"/>
            <module name="Magento_Checkout"/>
        </sequence>
    </module>
</config>

অ্যাপ্লিকেশন \ কোড \ Sugarcode \ টেস্ট \ দৃশ্য \ ফ্রন্টএন্ড \ বিন্যাস \ checkout_cart_index.xml

<?xml version="1.0"?>
<!--
/**
 * Copyright © 2015 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="checkout.cart.totals">
            <arguments>
                <argument name="jsLayout" xsi:type="array">
                    <item name="components" xsi:type="array">
                        <item name="block-totals" xsi:type="array">
                            <item name="children" xsi:type="array">


                                <item name="fee" xsi:type="array">
                                    <item name="component"  xsi:type="string">Sugarcode_Test/js/view/checkout/cart/totals/fee</item>
                                    <item name="sortOrder" xsi:type="string">20</item>
                                    <item name="config" xsi:type="array">
                                         <item name="template" xsi:type="string">Sugarcode_Test/checkout/cart/totals/fee</item>
                                        <item name="title" xsi:type="string" translate="true">Fee</item>
                                    </item>
                                </item>

                            </item>
                        </item>
                    </item>
                </argument>
            </arguments>
        </referenceBlock>
    </body>
</page>

অ্যাপ্লিকেশন \ কোড \ Sugarcode \ টেস্ট \ দৃশ্য \ ফ্রন্টএন্ড \ বিন্যাস \ checkout_index_index.xml

<?xml version="1.0"?>
<!--
/**
 * Copyright © 2015 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceBlock name="checkout.root">
            <arguments>
                <argument name="jsLayout" xsi:type="array">
                    <item name="components" xsi:type="array">
                        <item name="checkout" xsi:type="array">
                            <item name="children" xsi:type="array">

                                <item name="sidebar" xsi:type="array">
                                    <item name="children" xsi:type="array">
                                        <item name="summary" xsi:type="array">
                                            <item name="children" xsi:type="array">
                                                <item name="totals" xsi:type="array">
                                                    <item name="children" xsi:type="array">
                                                       <item name="fee" xsi:type="array">
                                                            <item name="component"  xsi:type="string">Sugarcode_Test/js/view/checkout/cart/totals/fee</item>
                                                            <item name="sortOrder" xsi:type="string">20</item>
                                                            <item name="config" xsi:type="array">
                                                                 <item name="template" xsi:type="string">Sugarcode_Test/checkout/cart/totals/fee</item>
                                                                <item name="title" xsi:type="string" translate="true">Fee</item>
                                                            </item>
                                                        </item>
                                                    </item>
                                                </item>
                                                <item name="cart_items" xsi:type="array">
                                                    <item name="children" xsi:type="array">
                                                        <item name="details" xsi:type="array">
                                                            <item name="children" xsi:type="array">
                                                                <item name="subtotal" xsi:type="array">
                                                                    <item name="component" xsi:type="string">Magento_Tax/js/view/checkout/summary/item/details/subtotal</item>
                                                                </item>
                                                            </item>
                                                        </item>
                                                    </item>
                                                </item>
                                            </item>
                                        </item>
                                    </item>
                                </item>
                            </item>
                        </item>
                    </item>
                </argument>
            </arguments>
        </referenceBlock>
    </body>
</page>

অ্যাপ্লিকেশন \ কোড \ Sugarcode \ টেস্ট \ দৃশ্য \ ফ্রন্টএন্ড \ বিন্যাস \ sales_order_view.xml

<?xml version="1.0"?>
<!--
/**
 * Copyright © 2015 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">

    <body>        
        <referenceContainer name="order_totals">
            <block class="Sugarcode\Test\Block\Sales\Order\Fee" name="fee"/>
        </referenceContainer>
    </body>
</page>

অ্যাপ্লিকেশন \ কোড \ Sugarcode \ টেস্ট \ ব্লক \ সেলস \ অর্ডার \ Fee.php

<?php
/**
 * Copyright © 2015 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */

/**
 * Tax totals modification block. Can be used just as subblock of \Magento\Sales\Block\Order\Totals
 */
namespace Sugarcode\Test\Block\Sales\Order;



class Fee extends \Magento\Framework\View\Element\Template
{
    /**
     * Tax configuration model
     *
     * @var \Magento\Tax\Model\Config
     */
    protected $_config;

    /**
     * @var Order
     */
    protected $_order;

    /**
     * @var \Magento\Framework\DataObject
     */
    protected $_source;

    /**
     * @param \Magento\Framework\View\Element\Template\Context $context
     * @param \Magento\Tax\Model\Config $taxConfig
     * @param array $data
     */
    public function __construct(
        \Magento\Framework\View\Element\Template\Context $context,
        \Magento\Tax\Model\Config $taxConfig,
        array $data = []
    ) {
        $this->_config = $taxConfig;
        parent::__construct($context, $data);
    }

    /**
     * Check if we nedd display full tax total info
     *
     * @return bool
     */
    public function displayFullSummary()
    {
        return true;
    }

    /**
     * Get data (totals) source model
     *
     * @return \Magento\Framework\DataObject
     */
    public function getSource()
    {
        return $this->_source;
    } 
    public function getStore()
    {
        return $this->_order->getStore();
    }

      /**
     * @return Order
     */
    public function getOrder()
    {
        return $this->_order;
    }

    /**
     * @return array
     */
    public function getLabelProperties()
    {
        return $this->getParentBlock()->getLabelProperties();
    }

    /**
     * @return array
     */
    public function getValueProperties()
    {
        return $this->getParentBlock()->getValueProperties();
    }

    /**
     * Initialize all order totals relates with tax
     *
     * @return \Magento\Tax\Block\Sales\Order\Tax
     */
     public function initTotals()
    {

        $parent = $this->getParentBlock();
        $this->_order = $parent->getOrder();
        $this->_source = $parent->getSource();

        $store = $this->getStore();

        $fee = new \Magento\Framework\DataObject(
                [
                    'code' => 'fee',
                    'strong' => false,
                    'value' => 100,
                    //'value' => $this->_source->getFee(),
                    'label' => __('Fee'),
                ]
            );

            $parent->addTotal($fee, 'fee');
           // $this->_addTax('grand_total');
            $parent->addTotal($fee, 'fee');


            return $this;
    }

}

কমান্ডের নীচে একবার পদক্ষেপগুলি শেষ হয়ে গেলে এটি গুরুত্বপূর্ণ, অন্যথায় আপনার জেএসএইচটিএমএল ফাইলগুলি পাব / স্ট্যাটিক ফোল্ডার থেকে নিখোঁজ হবে। কমান্ডের নীচে রান করুন যা পাব / স্ট্যাটিক ফোল্ডারে জেএস এবং এইচটিএমএল ফাইল তৈরি করবে

বিন \ ম্যাজেন্টো সেটআপ: স্থির-সামগ্রী: মোতায়েন lo

যদি কাজগুলি আমার উত্তর গ্রহণ করে যা অন্যকে সহায়তা করে


16
আপনি মডিউল লিখেছেন ... চিত্তাকর্ষক! এর জন্য +1
স্যান্ডার মঞ্জেল

4
ভাল করেছেন প্রসীপ
অমিত বেরা

4
হ্যালো প্রদীপ কুমার, দুর্দান্ত নিবন্ধ, তবে সেই কোডটি নিয়ে একটি সমস্যা আছে, ফি মোটামুটি দুইবার যোগ করুন, এর কোনও সমাধান আছে কি?
সুনীল প্যাটেল

3
উপরের কোডটিতে কেউ কি দ্বিবারের ফি প্রয়োগ করা বাগটি স্থির করেছেন?
পল্লবী

4
আমি দুঃখিত, আমাকে ক্ষমা চাইতে হবে। "টু টাইমস ফি" -বাগটি সম্ভবত অ্যাপ \ কোড \ সুগারকোড \ টেস্ট \ মডেল \ মোট \ ফি.এফপি প্রসারিত \ ম্যাজেন্টো \ উদ্ধৃতি \ মডেল \ উক্তি \ ঠিকানা \ মোট \ অ্যাবস্ট্রাক্টোটালের কারণে is আপনার চেকআউট (বিলিং এবং শিপিং) এ সাধারণত দুটি ঠিকানা থাকায় উদ্ধৃতি সংরক্ষণ দুটি বার কল হয়ে যায়। এম 1 তে অনুরূপ আচরণ ছিল, দুর্ভাগ্যক্রমে এখানে এম 1-ফিক্স প্রযোজ্য নয় ...
মাইবাইনারোমেন্স

7

অর্ডার করতে অতিরিক্ত ফি যুক্ত করার জন্য আমি একটি কাস্টম মডিউল তৈরি করেছি।

অতিরিক্ত ফি কার্ট পৃষ্ঠা, চেকআউট পৃষ্ঠা, চালান এবং ক্রেডিটমোতে প্রদর্শিত হবে । আপনি অ্যাডমিন কনফিগারেশন থেকে দামের স্থির থেকে শতাংশ এবং শতাংশ নির্বাচন করতে পারেন ।

https://github.com/mageprince/magento2-extrafee/


পাঠ্য বাক্সটি থেকে ফি কিভাবে জুড়বেন prnt.sc/hfsni5
নগেন্দ্র

এই এক্সটেনশনটি কেবলমাত্র কোনও নির্দিষ্ট অর্থ প্রদানের পদ্ধতির জন্য ফি যুক্ত করতে কাজ করবে?
পীযুষ

এখনও এই কার্যকারিতাটি এই মডিউলটিতে অন্তর্ভুক্ত নেই। আমি এই কার্যকারিতাটি মডিউলটির পরবর্তী সংস্করণে যুক্ত করব।
প্রিন্স প্যাটেল

এই এক্সটেনশনটি কেবলমাত্র কোনও নির্দিষ্ট অর্থ প্রদানের পদ্ধতির জন্য ফি যুক্ত করতে কাজ করবে .....
মানো এম

যদি পারিশ্রমিকের মূল্য পরিবর্তন হয়, অতিরিক্ত ফি চেকআউট পৃষ্ঠায় প্রতিফলিত হয় না।
মানো এম

3

প্রদীপের উত্তরটি খুব সহায়ক, তবে একটি গুরুত্বপূর্ণ বিষয় মিস করে না।

সুগারকোড \ টেস্ট \ মডেল \ মোট :: সংগ্রহ () ফাংশনটি ম্যাজেন্টোর ম্যাজেন্টো \ কোট \ মডেল \ কোটটোটালস সংগ্রাহক :: সংগ্রহ () একবার প্রতিটি ঠিকানার জন্য একবার ডেকেছিলেন। এই সময়ে এটি একটি সম্মিলিত মোট তৈরি করে যা উদ্ধৃতি সারণীতে সঞ্চিত থাকে। এটি ক্রমে প্রদর্শিত হয় না, বা চেকআউটে ওয়েবসাইটটিতেও প্রদর্শিত হবে না।

এই কারণে (সংগ্রহ করা) কল করার সময় কেবল একবারে ফি সংগ্রহ করা গুরুত্বপূর্ণ। কোনও শিপড আইটেম উপলব্ধ আছে কিনা তা যাচাই করে এটি করা যেতে পারে:

    $items = $shippingAssignment->getItems();
    if (!count($items)) {
        return $this;
    }

আপনার কোড সুগারকোড \ টেস্ট \ মডেল \ মোট :: সংগ্রহের সংগ্রহের শুরুতে এই কোডটি যুক্ত করুন


2
এখনও দু'বার যুক্ত হচ্ছে
নগেন্দ্র

এ সম্পর্কে কোন আপডেট? এটি এখনও দুবার ফি যোগ করছে। দুর্ভাগ্যক্রমে এটি কাজ করতে পারি না।
হ্যালরোন


1

অনুগ্রহ করে মন্তব্য করুন

        $total->setGrandTotal($total->getGrandTotal() + $balance);

ফর্ম অ্যাপ্লিকেশন \ কোড \ সুগারকোড \ পরীক্ষা \ মডেল \ মোট double ডাবল কাস্টম ফি ইস্যুর জন্য ফি.এফপি

আশা করি এটা তোমাকে সাহায্য করবে!!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.