GithubHelp home page GithubHelp logo

magento's Introduction

  • 👋 Hi, I’m @wonderfan
  • 👀 I’m interested in programming and writing.
  • 🌱 I’m currently learning DeFi, NFT, Metaverse.
  • 💞️ I’m looking to collaborate on blockchain projects.

magento's People

Contributors

wonderfan avatar

Stargazers

 avatar

Watchers

 avatar  avatar

magento's Issues

The top menu

<block type="page/html_topmenu" name="catalog.topnav" template="page/html/topmenu.phtml"/>
</block>

mega menu

根节点:config,
modules节点声明版本,
global节点声明blocks,resources,models,helpers;
adminhtml节点声明layout的update和translate文件的名称;
default节点设置default的值

action node in the layout xml

In the xml file, we can add the following entry:

<action method="addJs"><script>prototype/prototype.js</script></action>
<action method="addClassName"><classname>main</classname></action>

Magento connect

The main categories in the magento connection marketplace:

1.customer experience;

2.site management;

3.Integration

4.marketing

5.utilities

6.themes

1.9.2新特性

主要亮点:

  1. 使用最新的zend包;
  2. 集成了redis;
  3. 提升了full page cache,从而performance有较大的上升;
  4. 加入测试框架

使用cdn css和js文件

在后台的magento theme设置中,可以设置css和js的路径来源,这极大的方便了css和js的引入。

multiple vendor

uMarketplace Suite will transform your Magento store into a powerful, robust and feature-rich online shopping mall with multiple independent vendors selling their products via a centralized product catalog and vendor specific uniquely themed microsites.

Enable your vendors to add and edit their products, manage inventory, interact with customers, manage their accounts and fulfill orders - all within intuitive and easy to use Vendor Portal. uMarketplace Suite gives you all the tools necessary to configure and automate drop shipping workflow, variety of ways to integrate with vendors, many shipping options, track and manage orders and shipments, charge commissions, pay vendors, promote products and sellers, and fully configure and control customer/vendor interaction. Based on uDropShip - our extension that powers many thousands of successful Magento stores, uMarketplace Suite is a proven, complete and paramount solution for Magento based multi-vendor marketplaces.

Core System Features

Flexible Workflow for Multi-Vendor Product Catalog and Order Management.
Single checkout for products from multiple vendors with multiple shipping origins per single order.
Automatically generate purchase orders for vendors based on customer sales order.
Intuitive and easy to use Vendor Portal for vendor management of products and orders
Vendors can add and edit their products, images, assign applicable categories and attribute values, update inventory, manage shipments and shipping options, update account data and communicate with customers and store admin.
Vendors can accept, reject and confirm orders, enter shipment tracking, view order history, create shipping labels and packing slips
Full admin control over product approval. Mechanism to review/approve newly added products with an option to automatically approve items from specified vendors
Admin controlled and configured all aspects of customer to vendor communication and interaction
Flexible Commission Structure and Calculations. Ability to assign and calculate commission rates per sku, category, product type or vendor
Vendor Financial Statements. Create manually or auto generate and distribute to vendors
Vendor Vacation Mode. Ability for vendors to select time-off and either temporarily suspend their products or update product lead time accordingly
Support for standard and external check out such as PayPal or Google Checkout
Automatic order notification to vendors with multiple configurable delivery options
Automatic shipment notification to customers
Attach purchase orders, shipping labels and packing slips to vendor notification emails.
Allows for custom vendor API integration for order submission as well as shipping, tracking and inventory synchronization
Vendor Defined Shipping Costs: Live, flat, tiered or incremental
Multiple Shipping Carrier Options. Use built-in or integrate with 3rd part carriers for live rates
Flat shipping rates based on geographic regions
Ability to ship using vendor shipping accounts.
All shipping preferences and options configurable per vendor or use system default shipping options
Generate and print shipping labels and packing slips in PDF or Thermal(EPL)for FedEx, UPS,
USPS with possibility to integrate with other carriers.
Ability to poll shipping carrier API for shipment status and update shipment record automatically (FedEx)

MW_Cmspro模块

从模块的声明文件来看,它的code位于local的代码池,并且依赖MW_Mcore模块

导入数据

可以支持的数据格式是csv

导入的步骤是:

  1. 控制器把数据文件先上传到指定目录
  2. 对数据文件进行验证;
  3. 遍历每一条数据,根据其值,初始化,基本的website,store,category,sku等信息
  4. 把其他数据和字段一一映射起来;
  5. 利用product的model 保存数据

Different product types

In Magento platform, the following product types are supported:

  • simple product;
  • bundle product;
  • group product;
  • configurable product
  • downloadable product
  • virtual product

The REST API

The design principle and implement mechanism:

  • add query variable and register rewrite rule;
  • create REST server class to service the request;
  • each resource registers its endpoint and expose its method
  • match the request to handler;
  • call the handler and return the result.

Content Management

Add the cms routers by hooking event:

        <events>
            <controller_front_init_routers>
                <observers>
                    <cms>
                        <class>Mage_Cms_Controller_Router</class>
                        <method>initControllerRouters</method>
                    </cms>
                </observers>
            </controller_front_init_routers>
        </events>

product view page

  <reference name="content">
            <block type="catalog/product_view" name="product.info" template="catalog/product/view.phtml">
                <!--
                <action method="addReviewSummaryTemplate"><type>default</type><template>review/helper/summary.phtml</template></action>
                <action method="addReviewSummaryTemplate"><type>short</type><template>review/helper/summary_short.phtml</template></action>
                <action method="addReviewSummaryTemplate"><type>...</type><template>...</template></action>
                -->
                <block type="catalog/product_view_media" name="product.info.media" as="media" template="catalog/product/view/media.phtml"/>
                <block type="core/text_list" name="alert.urls" as="alert_urls" translate="label">
                    <label>Alert Urls</label>
                </block>

                <action method="setTierPriceTemplate">
                    <template>catalog/product/view/tierprices.phtml</template>
                </action>

                <block type="catalog/product_list_upsell" name="product.info.upsell" as="upsell_products" template="catalog/product/list/upsell.phtml">
                    <action method="setColumnCount">
                        <columns>4</columns>
                    </action>
                    <action method="setItemLimit">
                        <type>upsell</type>
                        <limit>4</limit>
                    </action>
                </block>

                <block type="catalog/product_view_additional" name="product.info.additional" as="product_additional_data" />
                <block type="catalog/product_view_description" name="product.description" as="description" template="catalog/product/view/description.phtml">
                    <action method="addToParentGroup">
                        <group>detailed_info</group>
                    </action>
                </block>
                <block type="catalog/product_view_attributes" name="product.attributes" as="additional" template="catalog/product/view/attributes.phtml">
                    <action method="addToParentGroup">
                        <group>detailed_info</group>
                    </action>
                </block>
                <block type="catalog/product_view" name="product.info.addto" as="addto" template="catalog/product/view/addto.phtml"/>
                <block type="catalog/product_view" name="product.info.addtocart" as="addtocart" template="catalog/product/view/addtocart.phtml"/>

                <block type="core/text_list" name="product.info.extrahint" as="extrahint" translate="label">
                    <label>Product View Extra Hint</label>
                </block>

                <block type="catalog/product_view" name="product.info.options.wrapper" as="product_options_wrapper" template="catalog/product/view/options/wrapper.phtml" translate="label">
                    <label>Info Column Options Wrapper</label>
                    <block type="core/template" name="options_js" template="catalog/product/view/options/js.phtml"/>
                    <block type="catalog/product_view_options" name="product.info.options" as="product_options" template="catalog/product/view/options.phtml">
                        <action method="addOptionRenderer">
                            <type>text</type>
                            <block>catalog/product_view_options_type_text</block>
                            <template>catalog/product/view/options/type/text.phtml</template>
                        </action>
                        <action method="addOptionRenderer">
                            <type>file</type>
                            <block>catalog/product_view_options_type_file</block>
                            <template>catalog/product/view/options/type/file.phtml</template>
                        </action>
                        <action method="addOptionRenderer">
                            <type>select</type>
                            <block>catalog/product_view_options_type_select</block>
                            <template>catalog/product/view/options/type/select.phtml</template>
                        </action>
                        <action method="addOptionRenderer">
                            <type>date</type>
                            <block>catalog/product_view_options_type_date</block>
                            <template>catalog/product/view/options/type/date.phtml</template>
                        </action>
                    </block>
                    <block type="core/html_calendar" name="html_calendar" as="html_calendar" template="page/js/calendar.phtml"/>
                </block>
                <block type="catalog/product_view" name="product.info.options.wrapper.bottom" as="product_options_wrapper_bottom" template="catalog/product/view/options/wrapper/bottom.phtml" translate="label">
                    <label>Bottom Block Options Wrapper</label>
                    <action method="insert">
                        <block>product.tierprices</block>
                    </action>
                    <block type="catalog/product_view" name="product.clone_prices" as="prices" template="catalog/product/view/price_clone.phtml"/>
                    <action method="append">
                        <block>product.info.addtocart</block>
                    </action>
                    <action method="append">
                        <block>product.info.addto</block>
                    </action>
                </block>

                <block type="core/template_facade" name="product.info.container1" as="container1">
                    <action method="setDataByKey">
                        <key>alias_in_layout</key>
                        <value>container1</value>
                    </action>
                    <action method="setDataByKeyFromRegistry">
                        <key>options_container</key>
                        <key_in_registry>product</key_in_registry>
                    </action>
                    <action method="append">
                        <block>product.info.options.wrapper</block>
                    </action>
                    <action method="append">
                        <block>product.info.options.wrapper.bottom</block>
                    </action>
                </block>
                <block type="core/template_facade" name="product.info.container2" as="container2">
                    <action method="setDataByKey">
                        <key>alias_in_layout</key>
                        <value>container2</value>
                    </action>
                    <action method="setDataByKeyFromRegistry">
                        <key>options_container</key>
                        <key_in_registry>product</key_in_registry>
                    </action>
                    <action method="append">
                        <block>product.info.options.wrapper</block>
                    </action>
                    <action method="append">
                        <block>product.info.options.wrapper.bottom</block>
                    </action>
                </block>
                <action method="unsetCallChild">
                    <child>container1</child>
                    <call>ifEquals</call>
                    <if>0</if>
                    <key>alias_in_layout</key>
                    <key>options_container</key>
                </action>
                <action method="unsetCallChild">
                    <child>container2</child>
                    <call>ifEquals</call>
                    <if>0</if>
                    <key>alias_in_layout</key>
                    <key>options_container</key>
                </action>
            </block>
        </reference>        

porto theme

porto主题包含的文件清单有:文档,theme文件,更新列表和demo文件

Widget Directive

In the block and page, we can embed widget directive to add extra content. The php filter will use php directive to replace them

Magento theme features

Template Features:
Retina ready
Responsive design
Boxed and wide layouts
3 kinds of products grid
Sticky header
Changing logo position
Ability to upload custom logo
Drop-down list and icons for language and currency switchers
"To top" button
Image aspect ratio
Fancybox on the homepage and listings
Product hover effect
Labels "New" and "Sale" on products
Font replacement for titles
Predefined patterns + ability to upload custom pattern
Custom colors (3 colors)
Compatible with IE8 - IE11, Firefox, Safari, Opera, Chrome browsers

Product page features:
Display SKU
4 kinds of page layout
Prev/Next product buttons
Collateral block as a simple list, tabs or accordion
Unlimited product tabs
Static blocks instead of related product and under product description
Background slider

价格机制

研究价格是如何显示,计算和变化的

The email template

Take customer register as an example:

  • controller accept the request
  • the action method handles the request
  • invoke the customer model to save the data

Aitpagecache模块

这个模块实现缓存的主要原理是把url当成key来缓存页面内容

Make the site responsive

The feasible approaches:

  • use RWD as base theme and make adjustments if needs;
  • create a new theme and add the bootstrap css framework

mega menu

The requirement of mega menu:

  1. parent and children categories;
  2. want to add extra content for category

Prima theme

两种方式使用:

  1. magento 文件和theme 文件;
  2. 单独使用theme文件

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.