আমি একটি কাস্টম মডিউল তৈরি করেছিলাম যেখানে আমি পণ্যের পৃষ্ঠায় অ্যাড কার্ট ফর্মটিকে ওভাররাইড করছি এবং আমি এটি catalog_product_view.xml
ফাইলের সাথে সফলভাবে করেছি । এখন আমি পণ্য পৃষ্ঠার সামনের দৃশ্যে একটি কাস্টম ইনপুট ক্ষেত্রটি দেখতে পাচ্ছি, তবে আমার এই ক্ষেত্রের মান কিউটি, মূল্য ইত্যাদির সাথে ডাটাবেসে পোস্ট করতে হবে এবং ক্রম ইতিহাসের সাথে এটি পুনরুদ্ধার করতে হবে।
আমি কিছুক্ষণ অনুসন্ধান করেছি quote_item
এবং sales_order
টেবিলে নতুন কাস্টম কলাম তৈরি করতে সাফল্যও পেয়েছি । (আমার তথ্য অনুসারে, কার্টের এন্ট্রিগুলিতে যোগ করুন এবং চেকআউটটি টেবিলে quote_item
যাওয়ার পরে অর্ডারগুলি দিন sales_order
I যদি আমি এটি সম্পর্কে ভুল হয়ে থাকি তবে দয়া করে আমাকে এটিকেও সংশোধন করুন, কারণ আমি এখনও একজন শিক্ষার্থী))
আমি অনেক চেষ্টা করেছিলাম এবং এর জন্য অনুসন্ধান করেছি কিন্তু কোনও প্রাসঙ্গিক সমাধান খুঁজে পাইনি। আমার বিক্রেতার নাম ক্লাউডওয়েস এবং মডিউলটির নাম মাইমডিউল । আমার মডিউলটির জন্য ফাইলগুলি নীচে:
Cloudways / Mymodule / registration.php
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Cloudways_Mymodule',
__DIR__
);
Cloudways / Mymodule জন্য / etc / module.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Cloudways_Mymodule" setup_version="1.0.1"></module>
</config>
Cloudways / Mymodule / সেটআপ / UpgradeSchema.php
<?php
namespace Cloudways\Mymodule\Setup;
use Magento\Framework\Setup\UpgradeSchemaInterface;
use Magento\Framework\Setup\SchemaSetupInterface;
use Magento\Framework\Setup\ModuleContextInterface;
class UpgradeSchema implements UpgradeSchemaInterface
{
public function upgrade(SchemaSetupInterface $setup, ModuleContextInterface $context)
{
if (version_compare($context->getVersion(), '1.0.1') < 0) {
$installer = $setup;
$installer->startSetup();
$connection = $installer->getConnection();
//cart table
$connection->addColumn(
$installer->getTable('quote_item'),
'remarks',
[
'type' => \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
'length' => 255,
'comment' =>'Remarks'
]
);
//Order address table
$connection->addColumn(
$installer->getTable('sales_order'),
'remarks',
[
'type' => \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
'length' => 255,
'comment' =>'Remarks'
]
);
$installer->endSetup(); }
}
}
Cloudways / Mymodule / দেখতে / ফ্রন্টএন্ড / লেআউট / catalog_product_view.xml
<?xml version="1.0"?>
<page layout="1column" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceBlock name="product.info.addtocart">
<action method="setTemplate">
<argument name="template" xsi:type="string">Cloudways_Mymodule::catalog/product/view/addtocart.phtml</argument>
</action>
</referenceBlock>
<referenceBlock name="product.info.addtocart.additional">
<action method="setTemplate">
<argument name="template" xsi:type="string">Cloudways_Mymodule::catalog/product/view/addtocart.phtml</argument>
</action>
</referenceBlock>
</body>
</page>
Cloudways / Mymodule / দৃশ্য / ফ্রন্টএন্ড / টেমপ্লেট / ক্যাটালগ / পণ্য / দৃশ্য / addtocart.phtml
<?php
/**
* Copyright © 2016 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
// @codingStandardsIgnoreFile
/** @var $block \Magento\Catalog\Block\Product\View */
?>
<?php $_product = $block->getProduct(); ?>
<?php $buttonTitle = __('Add to Cart'); ?>
<?php if ($_product->isSaleable()): ?>
<div class="box-tocart">
<div class="fieldset">
<?php if ($block->shouldRenderQuantity()): ?>
<div class="field qty">
<label class="label" for="qty"><span><?php /* @escapeNotVerified */ echo __('Qty') ?></span></label>
<div class="control">
<input type="number"
name="qty"
id="qty"
maxlength="12"
value="<?php /* @escapeNotVerified */ echo $block->getProductDefaultQty() * 1 ?>"
title="<?php /* @escapeNotVerified */ echo __('Qty') ?>" class="input-text qty"
data-validate="<?php echo $block->escapeHtml(json_encode($block->getQuantityValidators())) ?>"
/>
</div>
</div>
<!-- Custom Input Field -->
<div>
<input
type="text"
name="remarks"
id="remarks"
maxlength="255"
placeholder="Remarks"
/>
</div>
<!-- Custom Input Field -->
<br>
<?php endif; ?>
<div class="actions">
<button type="submit"
title="<?php /* @escapeNotVerified */ echo $buttonTitle ?>"
class="action primary tocart"
id="product-addtocart-button">
<span><?php /* @escapeNotVerified */ echo $buttonTitle ?></span>
</button>
<?php echo $block->getChildHtml('', true) ?>
</div>
</div>
</div>
<?php endif; ?>
<?php if ($block->isRedirectToCartEnabled()) : ?>
<script type="text/x-magento-init">
{
"#product_addtocart_form": {
"Magento_Catalog/product/view/validation": {
"radioCheckboxClosest": ".nested"
}
}
}
</script>
<?php else : ?>
<script>
require([
'jquery',
'mage/mage',
'Magento_Catalog/product/view/validation',
'Magento_Catalog/js/catalog-add-to-cart'
], function ($) {
'use strict';
$('#product_addtocart_form').mage('validation', {
radioCheckboxClosest: '.nested',
submitHandler: function (form) {
var widget = $(form).catalogAddToCart({
bindSubmit: false
});
widget.catalogAddToCart('submitForm', $(form));
return false;
}
});
});
</script>
<?php endif; ?>
সামনের দৃশ্যের স্ক্রিনশটটি এখানে:
আমার যা দরকার তা হ'ল কাস্টম ইনপুট ক্ষেত্রের মান পোস্ট করা এবং অর্ডার সহ এটি ডাটাবেসে সংরক্ষণ করা। আগাম ধন্যবাদ!
সম্পাদনা করুন: আমি আরএসের উত্তর অনুসারে প্রতিক্রিয়াশীল পরিবর্তনগুলি তৈরি করেছি এবং আমার যে সমস্যাটি রয়েছে তা এখানে রয়েছে: (পিএস আমি ম্যাজেন্টো ২.০.৯ ব্যবহার করছি)
আমি লগ ফাইলটি যাচাই করেছিলাম এবং যা আমি পেয়েছি তা এখানে:
[2016-08-26 07:29:38] main.CRITICAL: exception 'Exception' with message 'Report ID: webapi-57bfefe2d8272; Message: Warning: Invalid argument supplied for foreach() in /home/41209-54048.cloudwaysapps.com/yyzmyegjdk/public_html/app/code/Cloudways/Mymodule/Observer/SalesModelServiceQuoteSubmitBeforeObserver.php on line 67' in /home/41209-54048.cloudwaysapps.com/yyzmyegjdk/public_html/vendor/magento/framework/Webapi/ErrorProcessor.php:194
Stack trace:
#0 /home/41209-54048.cloudwaysapps.com/yyzmyegjdk/public_html/vendor/magento/framework/Webapi/ErrorProcessor.php(139): Magento\Framework\Webapi\ErrorProcessor->_critical(Object(Exception))
#1 /home/41209-54048.cloudwaysapps.com/yyzmyegjdk/public_html/vendor/magento/module-webapi/Controller/Rest.php(163): Magento\Framework\Webapi\ErrorProcessor->maskException(Object(Exception))
#2 /home/41209-54048.cloudwaysapps.com/yyzmyegjdk/public_html/var/generation/Magento/Webapi/Controller/Rest/Interceptor.php(24): Magento\Webapi\Controller\Rest->dispatch(Object(Magento\Framework\App\Request\Http))
#3 /home/41209-54048.cloudwaysapps.com/yyzmyegjdk/public_html/vendor/magento/framework/App/Http.php(115): Magento\Webapi\Controller\Rest\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
#4 /home/41209-54048.cloudwaysapps.com/yyzmyegjdk/public_html/vendor/magento/framework/App/Bootstrap.php(258): Magento\Framework\App\Http->launch()
#5 /home/41209-54048.cloudwaysapps.com/yyzmyegjdk/public_html/index.php(39): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http))
#6 {main} [] []
কোন পরামর্শ দয়া করে?