Questions tagged «php»

此标记用于以任何方式涉及PHP代码的问题。因此,一旦返回了PHP异常或生成了错误报告,该问题就有资格被PHP标记。

3
以编程方式将订单从CSV导入Magento
我们正在从旧的,过时的销售点系统切换到仅使用Magento 1.7作为我们的POS。毫不意外的是,我们面临的挑战之一是如何在不造成灾难的情况下从旧系统到Mage获得近20年的记录。 撇开甚至迁移客户记录的挑战,我在此问题上关注的问题是如何将历史订单数据从旧POS迁移到Mage。当我们要谈论的订单记录很多时,我不确定100%的确切数字,但是我至少要说一百万。 这是我在考虑如何实现此目标方面的想法: 弄清楚如何格式化数据才能使Magento更好地使用它。我们是否能够以一种可行的格式将其从旧POS机中取出是值得怀疑的,但是让我们暂时假设它运行良好... 使用格式正确的历史数据创建一个.CSV文件 找到一种将.CSV $order逐行读入Magento 对象的方法-> save() 利润! 我的问题是我对如何逼近第2点和第3点有点困惑。我可以格式化从旧POS发出的数据,尽管它非常麻烦并且涉及Perl,但是我需要格式化,但是一旦有了.CSV文件(或此过程实际上可以使用的任何文件类型),我就不清楚我如何将其输入到Magento的订单对象中。 我已经完成了一些谷歌搜索工作,并列举了一些人使用Mage的order对象以编程方式导入订单的示例,但是很少有人讨论他们如何将前端购物车以外的数据源连接到所述对象。我一直在研究订单对象的版本: $id=1; // get Customer Id $customer = Mage::getModel('customer/customer')->load($id); $transaction = Mage::getModel('core/resource_transaction'); $storeId = $customer->getStoreId(); $reservedOrderId = Mage::getSingleton('eav/config')->getEntityType('order')->fetchNewIncrementId($storeId); $order = Mage::getModel('sales/order') ->setIncrementId($reservedOrderId) ->setStoreId($storeId) ->setQuoteId(0) ->setGlobal_currency_code('USD') ->setBase_currency_code('USD') ->setStore_currency_code('USD') ->setOrder_currency_code('USD'); // set Customer data $order->setCustomer_email($customer->getEmail()) ->setCustomerFirstname($customer->getFirstname()) ->setCustomerLastname($customer->getLastname()) ->setCustomerGroupId($customer->getGroupId()) ->setCustomer_is_guest(0) ->setCustomer($customer); …

1
Magento 2:两个网格组件数据提供者之间有什么区别?
在Magento 2.1中,总共配置和使用了25个UI组件列表/网格数据提供程序。他们的数据提供程序类和ui_component文件在下面列出 Magento\Bundle\Ui\DataProvider\Product\BundleDataProvider bundle_product_listing.xmlMagento\Catalog\Ui\DataProvider\Product\Attributes\Listing product_attributes_grid.xml Magento\Catalog\Ui\DataProvider\Product\ProductCustomOptionsDataProvider product_custom_options_listing.xml Magento\Catalog\Ui\DataProvider\Product\ProductDataProvider configurable_associated_product_listing.xml Magento\Catalog\Ui\DataProvider\Product\ProductDataProvider product_listing.xml Magento\Catalog\Ui\DataProvider\Product\Related\CrossSellDataProvider crosssell_product_listing.xml Magento\Catalog\Ui\DataProvider\Product\Related\RelatedDataProvider related_product_listing.xml Magento\Catalog\Ui\DataProvider\Product\Related\UpSellDataProvider upsell_product_listing.xml Magento\Cms\Ui\Component\DataProvider cms_block_listing.xml Magento\Cms\Ui\Component\DataProvider cms_page_listing.xml Magento\ConfigurableProduct\Ui\DataProvider\Attributes product_attributes_listing.xml Magento\Customer\Ui\Component\DataProvider customer_listing.xml Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider customer_online_grid.xml Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider sales_order_creditmemo_grid.xml Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider sales_order_grid.xml Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider sales_order_invoice_grid.xml Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider sales_order_shipment_grid.xml Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider sales_order_view_creditmemo_grid.xml Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider sales_order_view_invoice_grid.xml Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider sales_order_view_shipment_grid.xml Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider search_synonyms_grid.xml BraintreeTransactionsDataProvider (virtual type) braintree_report.xml Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider Magento\GroupedProduct\Ui\DataProvider\Product\GroupedProductDataProvider grouped_product_listing.xml …

1
Magento 2:为什么UI列表组件需要两个集合?
Magento 2具有新的“ uiComponent”功能。这使您可以<uiComponent/>在布局句柄XML文件中包含一个简单标签,以将诸如Grids和Forms之类的内容添加到应用程序页面。 它显示的是一种用于数据网格(一个结构listing)需要2名集合对象进行配置。 以下每个配置集合的作用是什么?还是我误解了这些收藏的作用?还是有一种仅使用单个集合创建网格对象的方法? 以下配置设置了一个名为UI的组件列表 cms_page_listing vendor/magento/module-cms/view/adminhtml/ui_component/cms_page_listing.xml 接下来的DI注入告诉Magento a cms_page_listing应该使用一个Magento\Cms\Model\ResourceModel\Page\Grid\Collection集合。 <type name="Magento\Framework\View\Element\UiComponent\DataProvider\CollectionFactory"> <arguments> <argument name="collections" xsi:type="array"> <item name="cms_page_listing_data_source" xsi:type="string">Magento\Cms\Model\ResourceModel\Page\Grid\Collection</item> </argument> </arguments> </type> 这似乎是用于填充网格的主要集合。 但是,这里还有这样PageGridDataProvider的cms_page_listing配置。 <!-- File: vendor/magento/module-cms/view/adminhtml/ui_component/cms_page_listing.xml --> <argument name="dataProvider" xsi:type="configurableObject"> <argument name="class" xsi:type="string">PageGridDataProvider</argument> <argument name="name" xsi:type="string">cms_page_listing_data_source</argument> <argument name="primaryFieldName" xsi:type="string">page_id</argument> <argument name="requestFieldName" xsi:type="string">id</argument> <argument name="data" xsi:type="array"> <item name="config" xsi:type="array"> …

3
什么是http://packages.magento.com/?
在各种社交媒体上,我都看到URL http://packages.magento.com/泛滥成灾。这似乎是一个作曲者资料库(使用satis软件托管该资料库)。 不清楚的是 谁来运行存储库(即eBay?第三方?第三方在eBay的祝福下行事?) 用户如何(如果有的话)获得此存储库中列出的软件包 如果这是针对Magento 1软件包,Magento 2软件包或两者的 如果这是针对Magento 1软件包的,则应如何设置composer项目以将软件包安装到Magento 1中(因为Magento 1的模块系统与defacto vendor/*标准并不完全兼容) 这里有人有关于以上的任何信息吗?
16 php  composer 

3
Magento:致命错误:在第546行的…/ app / Mage.php中找不到类'Mage_Giftcards_Helper_Data'
我已经安装了一个模块扩展,它引发致命错误 管理员中的“致命错误:在第546行的.... / app / Mage.php中找不到类'Mage_Giftcards_Helper_Data'”。 我推荐了这个链接/programming//a/9191286/2919940和这个链接/magento//a/7133/3693 但是我有 <global> <helpers> <giftcards> <class>Webtex_Giftcards_Helper</class> </giftcards> </helpers> </global> 在我config.xml和我这堂课上 class Webtex_Giftcards_Helper_Data extends Mage_Core_Helper_Data{ // my methods } 在/app/code/local/Webtex/Giftcards/Helper/Data.php路径声明。 我已禁用编译器,并通过创建空var/cache目录来清除缓存。 我发现到处config.xml应该定义帮助器类,而Data.php应该声明该帮助器类。 但就我而言,我都有他们两个,这是什么原因导致此错误?我也在新的magento安装上测试了该模块, Magento版本是1.7.0.2 请提供此错误的帮助?如果类名冲突,我们该如何调试? 谢谢


2
在Magento 2中设置管理路线
查看核心的Magento 2代码,似乎有两种方法来设置管理路径。 首先 #File: vendor/magento/module-media-storage/etc/adminhtml/routes.xml <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd"> <router id="admin"> <route id="adminhtml"> <module name="Magento_MediaStorage" /> </route> </router> </config> 与Magento 1类似。您将模块添加到adminhtml路径中的模块列表中,Magento会为您检查它。 第二 #File: vendor/magento/module-cms/etc/adminhtml/routes.xml <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd"> <router id="admin"> <route id="cms" frontName="cms"> <module name="Magento_Cms" before="Magento_Backend" /> </route> </router> </config> 有你建立一个新的路径(ID cms以上),然后将你的模块吧。 在Magento 2中,其中一种方法是“正确/首选”方法吗?如果没有,两者之间有什么区别?也就是说,您什么时候可以使用另一个? 要求不解决特定问题,但要确保我以正确的方式创建路由,并且避免了类似于Magento 1模块的问题(拉入ajax库,安全性等)。
15 magento2  php  xml  router 

2
注释中的“#@ +”和“#@-”字符串是什么意思?
在某些Magento 2类的注释中,我看到很多“#@ +”和“#@-”字符串。 \Magento\Customer\Api\Data\AttributeMetadataInterface interface AttributeMetadataInterface extends \Magento\Framework\Api\MetadataObjectInterface { /**#@+ * Constants used as keys of data array */ const ATTRIBUTE_CODE = 'attribute_code'; ... const IS_SEARCHABLE_IN_GRID = 'is_searchable_in_grid'; /**#@-*/ ... } 这些标记的目的是什么?

1
Magento 2:如何在另一个phtml文件中显示自定义选项
我们如何在自定义选项中覆盖此位置,以在另一个phtml文件中显示它。 添加了此代码,checkout_cart_index.xml其中仅form.phtml覆盖不覆盖default.phtml文件。 <?xml version="1.0"?> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"> <!-- <update handle="checkout_cart_item_renderers"/> --> <body> <referenceContainer name="content"> <referenceBlock name="checkout.cart.form"> <action method="setTemplate"> <argument name="template" xsi:type="string">Bespoke_Bespoke::cart/form.phtml</argument> </action> </referenceBlock> <referenceBlock name="checkout.cart.item.renderers.override"> <action method="setTemplate"> <argument name="template" xsi:type="string">Bespoke_Bespoke::cart/item/default.phtml</argument> </action> </referenceBlock> </referenceContainer> </body> 我收到有关checkout.cart.item.renderers已经有一个别名为'simple'的孩子的错误,我已经修改了该文件checkout_cart_item_renderer.xml <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"> <!-- <update handle="checkout_item_price_renderers"/> --> <body> <referenceBlock name="checkout.cart.form"> <action method="setOverriddenTemplates"> <argument xsi:type="array"> <!-- …

2
magento 2优于magento 1?
我只是想知道magento 2的性能以及它比m​​agento 1.x版本更好。最近,我开始学习magento 2,发现它是基于纯zend体系结构的全新理论集。所以我只想知道它是否比Magento 1.x版本更好。

3
Magento 2:同步后端和前端状态/缓存
Magento 2是否有任何系统或抽象来管理后端和前端上的本地存储之间的状态? 我正在尝试通过重定向URL移植用于恢复用户废弃的购物车的功能。以简化形式,URL类似 http://magento.example.com/restore/the/cart?identifier=sdkfjh48v237g5 会根据标识符中的编码quote_id将报价加载到当前用户的购物车中。 在Magento 1中,这相对简单-您只需要使用正确的报价ID更新用户的Checkout会话信息。但是,Magento 2加剧了本地存储的不足。 Magento 2前端javascript应用程序似乎在浏览器的本地存储数据库中缓存信息。这包括有关建造迷你车的信息。这意味着即使最终用户程序员(me)设法在后端更改会话Session ID,微型购物车仍会显示旧的购物车数据。 这只是一个问题的一个示例,该问题源于不了解(或拥有一个)用于管理后端和前端的应用程序状态的API。对于我的特定问题,我的端点渲染了一个包含一些JavaScript的HTML页面,手动清除了本地存储,然后将用户重定向到另一个页面-但这感觉像是一桩骇人的hack。 Magento 2中是否有API用于管理前端和后端之间的数据? 有一种向整个系统发出信号的标准方法,即在后端处理期间,您做了某些事情使得有必要使前端本地存储缓存无效? 有没有一种技术可以将新的RequireJS模块注入到自动运行的页面中,并且可以在其他JavaScript应用程序访问它之前操纵本地存储?

2
如何保持.phtml文件的简洁和整洁?
正如其文件扩展名所示,该.phtml文件允许PHP代码与HTML混合。然而,事实上,你可以不应该被看作是一个执照去野外。 为什么我们仍然看到如此多的.phtml文件到处都是PHP?什么是减少.phtml文件中PHP数量的好方法?
14 php  blocks  template  phtml 

6
Magento 2:如何在注册表中显示地址字段?
我想在客户注册表格中显示地址字段(以保存为默认帐单地址)。我知道如何在Magento 1中进行操作。但是我对Magento 2感到震惊。在此之前有人做过吗? 像magento 1中一样的任何xml文件更新 <customer_account_create> <reference name="customer_form_register"> <action method="setData"><key>show_address_fields</key><value>1</value></action> </reference> </customer_account_create>

1
是否有充分的理由在两个try AND catch块中放入相同的代码?
在方法中的file:中app/code/core/Mage/Adminhtml/Block/Widget/Grid/Column/Renderer/Datetime.php,render()似乎在try和catch块中正在运行完全相同的代码。根本不处理异常。我很想知道写这样的代码的原因(如果有的话): try { $data = Mage::app()->getLocale() ->date($data, Varien_Date::DATETIME_INTERNAL_FORMAT)->toString($format); } catch (Exception $e) { $data = Mage::app()->getLocale() ->date($data, Varien_Date::DATETIME_INTERNAL_FORMAT)->toString($format); }

3
将依赖项注入Magento 2 CRUD /抽象模型
是否可以将依赖项注入到Magento 2 CRUD模型中? 也就是说-Magento 2有一个基本的抽象模型类:Magento\Framework\Model\AbstractModel。如果要创建简单的“创建,读取,更新,删除”模型对象,则可以使用自己的类来扩展该类。 class Foo extends Magento\Framework\Model\AbstractModel { } 是否可以在模型的__construct方法中注入依赖项?当我尝试时,最终出现以下错误。 致命错误:无法实例化抽象类Magento \ Framework \ Model \ ResourceModel \ AbstractResource 罪魁祸首似乎是AbstractModel的__construct方法。 public function __construct( \Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null, array $data = [] ) { 此构造函数(Magento\Framework\Model\ResourceModel\AbstractResource,Magento\Framework\Data\Collection\AbstractDb)中有两种类型提示,它们不是 Magento对象管理器接口。它们是抽象类。当我扩展此类并尝试添加注入的依赖项时 class Foo extends Magento\Framework\Model\AbstractModel { …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.