গ্রাহকের সাথে কাস্টম বৈশিষ্ট্য যুক্ত করা হচ্ছে


64

গ্রাহক রেকর্ডে এমন একটি বৈশিষ্ট্য যুক্ত করার জন্য আমাদের একটি সহজ উপায় প্রয়োজন যা গ্রাহক বা প্রশাসক দ্বারা সম্পাদনযোগ্য নয়, কেবলমাত্র প্রোগ্রামক্রমে। মূলত, আমাদের কাছে ম্যাজেন্টোর সাথে মিলিত একটি এক্সপ্রেশনএজাইন সাইট রয়েছে।

আমরা ওয়েবসার্চির মাধ্যমে প্রমাণীকরণ করি এবং এমন কিছু জেএসওন সংরক্ষণ করতে চাই যা আমরা গ্রাহকের রেকর্ডে প্রমাণীকরণ থেকে ফিরে পাই এবং প্রতিবার তারা লগইন করে তা আপডেট করে।

আমরা যদি ডেটা চেকআউট প্রক্রিয়াতে যেমন শিপিংয়ের ঠিকানার তথ্য পরিবর্তন করে তবে ডেটা সংশোধিতও চাইব। আমরা বর্তমানে প্রতিটি অর্ডারে এটি করার সাথে সাথে আমরা আমাদের ওয়েবসার্চিতে ডেটা ফেরত পাঠাব।

আমরা এখন MageWorx এর কাস্টম বিকল্প এক্সটেনশনের সাথে কাস্টম অ্যাট্রিবিউট ব্যবহার করে প্রতিটি পণ্যটিতে কিছু জেএসএন সংরক্ষণ করে রাখছি বলে কি এটি করা কি কঠিন?

আমি এখানে অনলাইন মডিউল নির্মাতাকে http://www.silksoftware.com/magento-module-creator/ ব্যবহার করেছি তবে মডিউলটি ইনস্টল হয়ে গেলে কীভাবে মানটি সংশোধন বা পুনরুদ্ধার করতে হবে তা নিশ্চিত নই।

এটি করতে এক্সটেনশন লিখতে আমি কোথায় শিখতে পারি?



আমি যদি এই বৈশিষ্ট্যটির মানটি 'গ্রাহক_সত্তা' ডাটাবেস সারণিতে সংরক্ষণ করতে চাই তবে কী করবেন? @ মারিয়াস
কাজিম নূরানী

1
@ কাজিমনুরানি আপনি যদি customer_entityটেবিলের মধ্যে সরাসরি মানটি সংরক্ষণ করতে চান তবে আপনাকে কলামটি টেবিলের সাথে এবং স্ক্রিপ্টে যুক্ত করতে হবে যা বৈশিষ্ট্য যুক্ত করে (নীচে আমার উত্তর দেখুন) থেকে প্রতিস্থাপনটি টাইপ varcharকরুন static
মারিয়াস

@ মারিয়াস আমি ইতিমধ্যে customer_entityটেবিলে কলাম যুক্ত করেছি added এবং আমার বৈশিষ্ট্যটি 'নির্বাচন করুন' টাইপের of আমি আমার এট্রিবিউট মানটি সরাসরি customer_entityটেবিলের এই 'কাস্টম_কলামে' সংরক্ষণ করতে চাই । কিভাবে যে কি?
কাজিম নূরানী

1
এমনকি যদি আপনি প্রধান সারণীতে ডেটা সংরক্ষণ করতে চান তবে আপনার এখনও স্ট্যাটিক টাইপের সাথে একটি বৈশিষ্ট্য প্রয়োজন।
মারিয়াস

উত্তর:


68

/app/code/local/Your/Customattribute/sql/your_customattribute_setup/install-0.1.0.php

<?php
$installer = $this;

$installer->startSetup();

$setup = new Mage_Eav_Model_Entity_Setup('core_setup');

$entityTypeId     = $setup->getEntityTypeId('customer');
$attributeSetId   = $setup->getDefaultAttributeSetId($entityTypeId);
$attributeGroupId = $setup->getDefaultAttributeGroupId($entityTypeId, $attributeSetId);

$setup->addAttribute("customer", "customattribute",  array(
    "type"     => "varchar",
    "backend"  => "",
    "label"    => "Custom Attribute",
    "input"    => "text",
    "source"   => "",
    "visible"  => true,
    "required" => false,
    "default" => "",
    "frontend" => "",
    "unique"     => false,
    "note"       => "Custom Attribute"
));

$attribute   = Mage::getSingleton("eav/config")->getAttribute("customer", "customattribute");

$setup->addAttributeToGroup(
    $entityTypeId,
    $attributeSetId,
    $attributeGroupId,
    'customattribute',
    '999'  //sort_order
);

$used_in_forms=array();

$used_in_forms[]="adminhtml_customer";
//$used_in_forms[]="checkout_register";
//$used_in_forms[]="customer_account_create";
//$used_in_forms[]="customer_account_edit";
//$used_in_forms[]="adminhtml_checkout";
        $attribute->setData("used_in_forms", $used_in_forms)
                ->setData("is_used_for_customer_segment", true)
                ->setData("is_system", 0)
                ->setData("is_user_defined", 1)
                ->setData("is_visible", 1)
                ->setData("sort_order", 100)
                ;
        $attribute->save();



$installer->endSetup();

/app/code/local/Your/Customattribute/etc/config.xml

 <?xml version="1.0"?>
    <config>
        <modules>
            <Your_Customattribute>
                <version>0.1.0</version>
            </Your_Customattribute>
        </modules>
        <global>

            <resources>
                <Your_Customattribute_setup>
                    <setup>
                        <module>Your_Customattribute</module>
                        <class>Mage_Customer_Model_Entity_Setup</class>
                    </setup>
                    <connection>
                        <use>core_setup</use>
                    </connection>
                </Your_Customattribute_setup>
                <Your_Customattribute_write>
                    <connection>
                        <use>core_write</use>
                    </connection>
                </Your_Customattribute_write>
                <Your_Customattribute_read>
                    <connection>
                        <use>core_read</use>
                    </connection>
                </Your_Customattribute_read>
            </resources>
        </global>

    </config>

অ্যাপ্লিকেশন / ইত্যাদি / মডিউল / Your_Customattribute.xml

  <?xml version="1.0"?>
    <config>
        <modules>
            <Your_Customattribute>
                <active>true</active>
                <codePool>local</codePool>
                <version>0.1.0</version>
            </Your_Customattribute>
        </modules>
    </config>

তারপরে আপনি যে ব্যবহার করেন তা পুনরুদ্ধার বা সম্পাদনা করতে:

$customer = Mage::getModel('customer/customer')->load($custid);
$customer->getCustomattribute();
$customer->setCustomattribute($yourjson);

আপনি এখানে লগইন ইভেন্টের জন্য ইভেন্ট পর্যবেক্ষক তৈরি করতে হবে, এখানে উত্তর: সফল লগইন পরে আমি কীভাবে পর্যবেক্ষকের কাছ থেকে গ্রাহক ডেটা পেতে পারি?

এবং গ্রাহক_সেভ_এর পরে পর্যবেক্ষকরা সম্ভবত অ্যাকাউন্ট মিলিগ্রামে তাদের ঠিকানা পরিবর্তন করে এবং উদ্ধৃতিটির জন্য একটি যা আপনার জন্য যাচ্ছেন তার উপর নির্ভর করে বিভিন্ন স্থানে থাকতে পারে।


গ্রাহক_বন্দ_স্কু কী?
এমবি 34

দুঃখিত, এটাই আমি তৈরি করেছিলাম।
উইলবউডলে

সুতরাং কীভাবে সেট কাস্টম অ্যাট্রিবিউট () ডেটা সেট করতে কাজ করবে?
এমবি 34

যখন ব্যবহারকারী লগ ইন করবেন তখন কীভাবে ডেটা সেট করবেন তার একটি উদাহরণ আছে?
এমবি 34

1
ভাল কাজ করছেন। আপনি কীভাবে অ্যাডমিন প্যানেল + গ্রাহক গ্রিডে সেই বৈশিষ্ট্যটি প্রদর্শন করবেন তাও বলবেন
অরবিন্দ

9

প্রচুর কাস্টম কার্যকারিতা রয়েছে আপনাকে নিজেরাই কাস্টম মডিউল ওভাররাইডিং ক্লাস হিসাবে তৈরি করতে হবে এবং এমন ইভেন্টগুলিতে ঝাঁকুনি দেওয়া উচিত যেখানে আপনি ডেটা আপনার ওয়েব পরিষেবায় পাস করতে চান। বৈশিষ্ট্যটি যতদূর যায়, আপনি যখন নিজের কাস্টম মডিউলটি তৈরি করেন এবং config.xmlউপরের টিউটোরিয়ালের মতো মডিউলটির মতো সেটআপ রিসোর্সটি সংজ্ঞায়িত করেন , তখন আপনার ইনস্টল্ট স্ক্রিপ্টে আপনি এরকম কিছু করতে পারেন:

[Module_path] / SQL / [resource_node_defined_in_config_xml] / mysql4-install- [module_version_number] .php

$installer = $this;

$installer->startSetup ();

$setup = Mage::getModel ( 'customer/entity_setup' , 'core_setup' );

    //add budget
    $setup->addAttribute('customer', 'budget', array(
        'type' => 'decimal',
        'input' => 'text',
        'label' => 'Budget',
        'global' => 1,
        'visible' => 1,
        'required' => 0,
        'user_defined' => 0,
        'default' => '',
        'visible_on_front' => 1,
        'source' =>   NULL,
        'comment' => 'This is a budget'
    ));

$installer->endSetup ();

user_definedsystemসেট করা থাকলে অ্যাট্রিবিউটকে একটি অ্যাট্রিবিউট তৈরি করে 0, যা এডমিন থেকে মুছে ফেলার ক্ষমতাটি অক্ষম করে।


0

কোর ডিবাগিং দর্শন পর আমি বুঝতে পারলাম যে Magento আশা ফাইলে হতে পারেন ডেটা / Companyname_Modulname_setup / অথবা SQL / Companyname_Modulname_setup /

এবং এটা নামে করা হয়েছে mysql4-data-upgrade-OLDVERSION-NEWVERSION.phpযেমন mysql4-data-upgrade-0.1.0-0.1.0.phpপরিবর্তেmysql4-install-0.1.0.php

কমপক্ষে Magento 1.9.3 এ

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