`
kirenenko04
  • 浏览: 152188 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

Add Relation Product From a table

 
阅读更多

Here is the table content:

id	skus
1	P763B,P763A,P739A,P574P,P574C,P574B,P573K
2	P573G,P0870,P0860,D9543,D8984
3	D8983,D8821,D8579,D8573,D853A,D8539
4	D824A,D7805

 Add each sku with its relation product skus(in one line) into magento

<?php
/**
 * 导入关联商品
 * @author bysoft
 *
 */
class Bysoft_Import_Model_Relationproduct extends Mage_Core_Model_Abstract
{
	protected $_write;
	protected $_read;
	
    protected function _construct(){

       $this->_init("import/relationproduct");
       $this->_read = Mage::getSingleton('core/resource')->getConnection('core_read');
       $this->_write = Mage::getSingleton('core/resource')->getConnection('core_write');

    }
    
    public function run() {
    	//Follow four should run only no data in temp tables.
    	$this->truncate_table();//clean product data table;
    	$this->import_data_from_csv_to_db();//get product data from csv file
    	$this->add_relation_products();
    }
    
    public function truncate_table() {
    	$sql = "truncate table bysoft_import_relation_product";
    	$this->_write->query($sql);
    }
    
    public function import_data_from_csv_to_db() {
    	$file_path = BP . DS . 'media' . DS . 'import' . DS . 'relation_product.csv';
    	$file = fopen($file_path,'r');
    	$i = 0;
    	while ($data = fgetcsv($file)) {
    		++$i;
    		if ($i != 1) {
    			$model = Mage::getModel('import/relationproduct');
    			$skus = str_replace(' ','',$data[0]);
    			$skus = str_replace(',',',',$skus);
    			$model->setData('skus',$skus);
    			$model->save();
    			var_dump($data[0]  . ' save into db.');
    		}
    	}
    }
    
    public function add_relation_products() {
    	$sql = "select skus from bysoft_import_relation_product order by id";
    	$results = $this->_read->fetchAll($sql);
    	foreach ($results as $row) {
    		$skus = trim($row['skus']);
    		$sku_arr = explode(',', $skus);
    		//处理一行SKU
    		foreach ($sku_arr as $key=>$val) {
    			if (trim($val) == '') {
    				unset($sku_arr[$key]);
    			}
    		}
    		foreach ($sku_arr as $key=>$sku) {
    			$self = $sku;
    			$_product = Mage::getModel('catalog/product')->loadByAttribute('sku', $self);
    			$_product = Mage::getModel('catalog/product')->load($_product->getId());
    			$rel_data = array();
    			foreach ($sku_arr as $key_rel=>$rel_sku) {
    				if ($key_rel != $key) {
    					$rel_product = Mage::getModel('catalog/product')->loadByAttribute('sku', $rel_sku);
    					$rel_data[$rel_product->getId()] = array('position'=>$key_rel);
    				}
    			}
    			$_product->setRelatedLinkData($rel_data);
    			$_product->save();
    			var_dump('Product : ' . $_product->getSku());
    			var_dump($rel_data);
    		}
    	}
    }
    
    

}
	 

 

分享到:
评论

相关推荐

    SAP Table Relation

    ### SAP Table Relations详解 在SAP系统中,各模块之间的数据流动与交互是通过一系列复杂的表格来实现的。本文将详细介绍这些表格之间的关联性及其重要性,特别关注于初学者如何能够快速理解并掌握这些系统表格。 ...

    SSD7 选择题。Multiple-Choice

    Which of the following SQL statements can be used to add a row to a table? (a) CREATE (b) INSERT (c) APPEND (d) ADD Correct answer is (b) Your score on this question is: 10.00 ...

    Oracle ERP table relation

    包含Oracle ERP各个模组所涉及到的table及关系。INV,WIP,BOM,GL,FA,AR,AP,COST等

    relation-graph图谱移动端适配拖动修复代码

    在IT行业中,关系图谱(Relation Graph)是一种用于表示实体之间复杂关系的可视化工具,尤其在数据挖掘、社交网络分析和知识图谱等领域广泛应用。在移动端,为了提供更好的用户体验,通常需要对图表进行适配,使其...

    An Unrestricted-Hop Relation Extraction Framework for Knowledge-Based QA

    In relation extraction for knowledge-based question answering, searching from one entity to another entity via a single relation is called “one hop”. In related work, an exhaustivesearchfromallone-...

    sap table relation_CRM产品经理 需求规格说明书管理系统规格需求说明书模板.doc

    sap table relation_CRM产品经理 需求规格说明书管理系统规格需求说明书模板.doc

    A Dependency-Based Neural Network for Relation Classification

    ### 基于依赖性的神经网络在关系分类中的应用 #### 概述 北京大学与微软研究院共同发表的一篇论文提出了一种新的方法——基于依赖性的神经网络(DepNN),用于解决自然语言处理(NLP)领域中的关系分类问题。...

    Relation Rose安装手册

    RelationRose Rose id devolop to draw UML picture,but it Install is very important,so i am teaching you how to Install Relation Rose

    UML工具的 relation Rose 使用手册

    "UML 工具 Relation Rose 使用手册" Relation Rose 是一个功能强大的 UML 工具,用于设计、开发和测试软件系统。它提供了一个图形化的界面,方便用户设计和管理 UML 模型。Relation Rose 的核心是 Rational Rose ...

    A Survey of Deep Learning Methods for Relation Extraction

    NLP中的关系抽取的文献综述,内容丰富全面,值得学习。

    Relation Book

    《 Relation Book:基于Winform和SQL2000的简易通讯录系统开发详解》 通讯录软件是日常生活中常见的工具,用于存储、管理和查找联系人信息。本篇将深入探讨如何利用C#编程语言和Winform框架,结合SQL Server 2000...

    Laravel开发-laravel-custom-relation

    `laravel-custom-relation`项目提供了关于如何创建自定义关系的示例和实践。 首先,理解Eloquent ORM是Laravel中用于处理数据库操作的组件,它提供了面向对象的方式来操作数据库表。ORM将数据库表映射为PHP类,而表...

    小谈APICloud中的pointer和relation

    本文主要探讨了 APICloud 中的两种数据关联方式:pointer 和 relation,这两种方式都是在 NoSQL 数据库中实现表间关联的关键。 pointer,顾名思义,就是指针,它用于在表与表之间建立一对一的关系。当一个表中的...

    SAP_Table关系图

    描述了SAP常用表关系结构,是SAP初学者及SAP开发人员必备的好手册.

    relation-chart-master.zip

    "relation-chart-master.zip"是一个专注于人物关系图谱展示的压缩包,其中包含了用于创建交互式、可拖拽、可缩放以及高亮选中节点的工具和教程。接下来,我们将深入探讨这个项目的关键组成部分和实现方法。 1. **...

    get_size_database_and_table.rar_Table_get_table_size sql

    - **PostgreSQL**:使用`pg_database_size()`和`pg_total_relation_size()`函数来获取数据库和表的大小。 4. 存储细节: 数据库大小包括数据文件、日志文件以及可能的临时文件。表大小则涉及数据行、索引、预留...

    BERT-Relation-Extraction

    近年来,随着深度学习的发展,尤其是Transformer架构的提出,BERT(Bidirectional Encoder Representations from Transformers)模型已经在关系抽取任务上取得了显著的成果。本文将探讨BERT如何应用于关系抽取,并...

    Chinese Relation Extraction

    清华大学的研究团队在这一领域做出了重要的贡献,他们开发的中文实体关系抽取代码,即“Chinese-relation-extraction-master”,为研究者和开发者提供了一个强大的工具,用于处理和理解中文文本中的信息。...

Global site tag (gtag.js) - Google Analytics