admin 发布的文章

今天早上同事跟我说我写的接口出问题了,上去一看,报SQLSTATE[HY000]: General error: 1030 Got error 28 from storage engine错误,照例百度,原来是服务器的临时空间不足导致。
解决办法:1.清空/tmp目录
2.修改my.cnf中的tmpdir参数,指向具有足够空间目录

主要用处就是在Magento中获取指定分类下的产品。

$products = Mage::getModel('catalog/category')->load($category_id)
->getProductCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('status', 1)
->addAttributeToFilter('visibility', 4);

<?php
 $str = '我住在3号楼A座';
 $list = array();
 $start = 0;
 $lengh = mb_strlen($str,'utf8');//这里可以是指定的长度
 while (count($list)<$lengh) {
 $list[] = mb_substr($str, $start,1,'utf8');//也可以用$list .=
 $start++;
 }
 print_r($list);
 ?>

loadByIncrementId(100000001);  // 100000001为订单编号

// 获取订单状态

$status = $order->getStatus();

$state  = $order->getState();

echo $status;

echo "\r\n";

echo $state;

// 设置订单状态 $order->setStatus(Mage_Sales_Model_Order::STATE_PROCESSING);

$order->save();

Magento订单 有两个状态变量:state和status,这让人困惑,只有测试下了,于是下了个单,然后在Magneto后台处理订单,得出下面的Magento订单状态值。

1. 新订单
state  : new
status : pending

2. 配送后
state  : processing
status : processing

3. 收款后
state  : processing
status : processing

4. 订单完成
state  : complete
status : complete

5. 订单取消
state  : canceled
status : canceled

6. 订单关闭
state  : closed
status : closed

7. 订单挂起
state  : holded
status : holded
Magento订单状态 是定义在Magento代码文件app\code\core\Mage\Sales\Model\Order.php中定义了订单的状态常量:

/**
 * Order model
 *
 * Supported events:
 *  sales_order_load_after
 *  sales_order_save_before
 *  sales_order_save_after
 *  sales_order_delete_before
 *  sales_order_delete_after
 *
 * @author Magento Core Team <[email protected]>
 */
 class Mage_Sales_Model_Order extends Mage_Sales_Model_Abstract
 {
/**
 * Order states
 */
 const STATE_NEW             = 'new';
 const STATE_PENDING_PAYMENT = 'pending_payment';
 const STATE_PROCESSING      = 'processing';
 const STATE_COMPLETE        = 'complete';
 const STATE_CLOSED          = 'closed';
 const STATE_CANCELED        = 'canceled';
 const STATE_HOLDED          = 'holded';
 const STATE_PAYMENT_REVIEW  = 'payment_review'; // added magento 1.4
/**
 * Order flags
 */
 const ACTION_FLAG_CANCEL    = 'cancel';
 const ACTION_FLAG_HOLD      = 'hold';
 const ACTION_FLAG_UNHOLD    = 'unhold';
 const ACTION_FLAG_EDIT      = 'edit';
 const ACTION_FLAG_CREDITMEMO= 'creditmemo';
 const ACTION_FLAG_INVOICE   = 'invoice';
 const ACTION_FLAG_REORDER   = 'reorder';
 const ACTION_FLAG_SHIP      = 'ship';
 const ACTION_FLAG_COMMENT   = 'comment';
// ...
 }
 </[email protected]>

 

其中,pending_payment, payment_review 是支付(Paypal, Amazon Pay)过程中引入的订单状态。

$categories = Mage::getModel('catalog/category')->getCollection()
 ->addAttributeToSelect('id')
 ->addAttributeToSelect('name')
 ->addAttributeToSelect('url_key')
 ->addAttributeToSelect('url')
 ->addAttributeToSelect('is_active');
foreach ($categories as $category)
 {
 if ($category->getIsActive()) { // Only pull Active categories
 $entity_id = $category->getId();
 $name = $category->getName();
 $url_key = $category->getUrlKey();
 $url_path = $category->getUrl();
 }
 }
<?php // load(level-number)?>
 <?php $categoryIds = Mage::getModel('catalog/category')->load(3)->getChildren() ?>
 <?php $categoryIds = explode(',', $categoryIds); ?>
 <?php $count = count($categoryIds); $i=0; ?>
 <?php foreach ($categoryIds as $categoryId): ?>
 <?php $category = Mage::getModel("catalog/category")->load($categoryId) ?>
 <li<?php if (++$i == $count): ?> class="last"<?php endif ?>><a href="<?php echo $category->getUrl() ?>" title="<?php echo $this->stripTags($category->getName()) ?>"><?php echo $this->stripTags($category->getName()) ?></a></li>
 <?php endforeach ?>
 

$_categoryIds = $_product->getCategoryIds();

foreach ($_categoryIds as $_categoryId) { $_category = Mage::getModel('catalog/category')->load($_categoryId);

$_category_name = $_category->getName(); $_category_url = $_category->getUrlPath();

break;

}