创建/更新 ... 删除产品时,api接口文档中 提供了
$identifierType
用于指定是使用 产品id或者sku进行 过滤:
可选值: "id" "sku"
但是具体测试中不管咋样都没用,看了下代码
app/code/core/Mage/Catalog/Model/Product/Api.php
中调用 getProduct() 位于 app/code/core/Mage/Catalog/Helper/Product.php 中
/**
* Return loaded product instance
*
* @param int|string $productId (SKU or ID)
* @param int $store
* @param string $identifierType
* @return Mage_Catalog_Model_Product
*/
public function getProduct($productId, $store, $identifierType = null) {
$loadByIdOnFalse = false;
if ($identifierType == null) {
if (is_string($productId) && !preg_match("/^[+-]?[1-9][0-9]*$|^0$/", $productId)) {
$identifierType = 'sku';
$loadByIdOnFalse = true;
} else {
$identifierType = 'id';
}
}
/** @var $product Mage_Catalog_Model_Product */
$product = Mage::getModel('catalog/product');
if ($store !== null) {
$product->setStoreId($store);
}
if ($identifierType == 'sku') {
$idBySku = $product->getIdBySku($productId);
if ($idBySku) {
$productId = $idBySku;
}
if ($loadByIdOnFalse) {
$identifierType = 'id';
}
}
if ($identifierType == 'id' && is_numeric($productId)) {
$productId = !is_float($productId) ? (int) $productId : 0;
$product->load($productId);
}
return $product;
}
发现了 坑爹的代码啊,如果 不指定 identifierType 参数,则 仅仅是 字符串时才使用 sku作为条件
但是 当指定了 identifierType 为'sku'时咋都不执行 ,具体见
if ($loadByIdOnFalse) {
$identifierType = 'id';
}
这坑爹的代码 $loadByIdOnFalse 恒为 false,能执行才怪呢
所以 按如下进行修改:
if ($identifierType == 'sku') {
$loadByIdOnFalse = true;
$idBySku = $product->getIdBySku($productId);
if ($idBySku) {
$productId = $idBySku;
}
if ($loadByIdOnFalse) {
$identifierType = 'id';
}
}
此时就OK了 或者你想自己覆盖它的api,随便了 不过想不到 国外的 猿 也不是很细心啊 ...........
分享到:
相关推荐
Magento 2的Bolt Checkout插件1.要求Magento 2.3.0或更高Composer PHP依赖管理器2.插件安装打开命令提示符,转到<MAGENTO>文件夹并运行以下命令: $ composer require boltpay/bolt-magento2$ php bin/magento setup...
本书由Jamie Huskisson撰写,内容全面覆盖了Magento 1.3版本的各个方面,包括安装过程、系统架构、常见模块(如支付模块、配送模块)的开发以及如何集成第三方内容管理系统(CMS)。此外,书中还详细介绍了Magento...
### Magento电子书:Inchoo's Magento Posts #### 关键知识点概述 - **Magento性能优化**:本电子书中提到了如何通过启用GZip压缩来显著提高Magento网站的速度。 - **自定义结构块/引用**:文章详细介绍了如何在...
Magento 2的UserWay小部件扩展程序安装过程手动安装$ cd magento2_installation/app/code$ mkdir -p Userway/Widget$ cp sources Userway/Widget$ magento setup:upgrade$ magento setup:di:compile通过Composer...
用于Magento 2的HoneyBadger插件 该模块已经过Magento 2.3的测试。 安装说明 运行composer require uft/honeybader_magento2 将以下内容添加到app / etc / env.php: <?php return [ 'honeybadger' => [ 'api...
magento2在产品详情添加自定义tab,1. Enable module with php bin/magento module:enable BelVG_ProductTabs 2. Run php bin/magento setup:upgrade 3. Recompile DI php bin/magento setup:di:compile 4. Recompile...
$ cd /path/to/magento $ modgit init $ modgit add epicomtech_magento https://github.com/epicomtech/magento.git Antes deComeçar Epicom的API协议 通过电子邮件联系API,电子邮件地址: Conhecendo omó...
Magento扩展,用于使用Elasticsearch增强搜索结果(仅0.20.x) 对于(基于Lucene 4 0.90.x)的最新版本Elasticsearch的,有付费伸展的 安装 仅Magento CE 1.7+ 使用安装: $ cd /path/to/magento $ modgit init $...
Magento 2.1.x Dockerfile 基于 。Magento 2的安装变得简单运行此Dockerfile您将拥有一个针对Magento 2.1.x量身定制的环境: 德比安·杰西(Debian Jessie) PHP 7.0 阿帕奇2.4 Magento 2.1.x 马格广场博客Mageplaza...
RequireJS Magento 2模块Magento 2模块演示了RequireJS的用法。内容设置将模块放在app/code/Koz/RequireJS ,或通过Composer安装。 $ composer config repositories.koz-requirejs vcs ...
gcloud同步一个简单的实用程序,它将自动创建从主机到Google Cloud Storage的Magento数据库,媒体目录和配置的备份。本地设置通过下载gcloud , gsutil 。 使用Google帐户登录: $ gcloud auth login `ACCOUNT`创建...
通过SFTP或SSH导航到Magento [Magento]/app/code/ 。 上载带有扩展名的Dropday/OrderAutomation目录。 打开终端并导航到Magento根目录。 运行以下命令以启用Dropday扩展: php bin/magento module:enable Dropday_...
Turiknox URL重写导入器概述一个简单的Magento模块,将允许您使用CSV文件将自定义URL重写导入管理员。要求Magento 2.1.x安装n 将模块的内容复制到您的Magento根目录中。 通过命令行启用模块: / path / to / ...
ordersync``主要功能安装* =在生产中,请使用--keep-generated选项类型1:Zip文件将zip文件解压缩到app/code/Letsprintondemand/OrderSync/ 通过运行php bin/magento module:enable Letsprintondemand_OrderSync ...
Magento 2.4是Magento公司推出的电子商务平台的最新版本,为商家提供了强大的功能和灵活性。在Windows环境下运行Magento 2.4的补丁文件对于确保系统安全性和优化性能至关重要。补丁是修复软件漏洞、增强功能或改进...
PAYCOMET Magento 2模块 使用Magento2通过PAYCOMET接受付款。 Suports Magento2 2.1版或更高版本。 描述 在Magento2中集成了PAYCOMET平台 要求 Magento 2. * PHP> = 5.6.0 此项目的composer.json中指定的Magento...
Magento 2哨兵记录仪这个Magento 2模块将集成到magento 2中。根据magento 2后端中配置的日志级别,可以将通知和错误发送到哨兵。安装composer require justbetter/magento2-sentry bin/magento module:enable ...
- **多商店管理**:Magento支持在同一平台上管理多个在线商店,这对于拥有多个品牌的商家来说非常有用。 - **高度可定制性**:用户可以自定义几乎所有的方面,包括布局、设计、功能等,以满足特定的需求。 - **强大...
Codisto LINQ for Magento2 要在Magento 2上安装Codisto LINQ,请执行以下操作: 使用具有足够权限来更改安装的帐户通过SSH登录到Magento服务器。 找到并打开您的composer.json文件,以在Magento 2安装目录的根...
添加一些有用的布局句柄的 Magento 模块 安装 您可以通过多种方式安装此扩展: 下载 下载完整包,将src目录的内容复制到你的 magento 基目录中; 注意不要覆盖app文件夹,只将其内容合并到现有目录中; 莫德曼 ...