마젠토에서 Store Credit을 더하거나 빼는 방법

Customer Balance/Store Credit은 마젠토 엔터프라이즈 버전에 있는 기능입니다.
Customer Balance나 Store Credit은 마젠토에서 서로 같은 의미로 사용됩니다.
마젠토의 관리자 모드에서는 “Store Credit”이라는 어휘를 사용하지만, 마젠토 코어 코드에서는 “Customer Balance”라는 어휘를 사용합니다.
왜 그렇게 헷갈리게 해놓았는지는 모르지만.. 뭐.. 이유가 있겠죠.

기본적으로 이 기능은 손님이 계정에 스토어 크레딧을 저장해 두었다가 나중에 체크아웃할때 사용할수 있는 기능이며,
사이트 운영자가 손님에게 refund 해줄때도 크레딧카드에 해줄필요 없이 계정에 크레딧으로 돌려주게 되므로 운영자 입장에서는 여러모로 유용하게 사용될수 있습니다.

사실 스토어 크레딧은 마젠토의 관리자 모드에서 수동으로 조정할수 있지만, 여러명의 손님에게 벌크로 스토어 크레딧을 지정해 줄 경우 아래의 코드가 유용하게 사용될것 입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
// 스토어 크레딧을 주려는 손님의 이메일주소
$customerEmail = "email@email.com";
// 손님에게 주려는 크레딧의 양
$deltaAmount = 100;

// 커스토머 모델 로딩
$customer = Mage::getModel('customer/customer');
$customer->setWebsiteId(Mage::app()->getWebsite()->getId());

// $customer->load($customerId); 로 해도 무관함
$customer->loadByEmail($customerEmail);

if($customer->getId()) {
// 밸런스 모델 로딩
$balance = Mage::getModel('enterprise_customerbalance/balance')->setCustomer($customer);
$balance->setWebsiteId($customer->getWebsiteId());
$balance->loadByCustomer();

// 밸런스 값 세팅
$balance->setAmountDelta($deltaAmount);
// 밸런스 메모 입력
$balance->setUpdatedActionAdditionalInfo('Balance added by php script');
// 밸런스가 책정되면 자동으로 이메일이 보내지지만, 아래와같이 'false'를 세팅해두면 이메일을 보내지 않습니다.
$balance->setNotifyByEmail(false);
// 저장
$balance->save();
}
?>

밸런스의 값을 세팅하는 $balance->setAmountDelta($deltaAmount); 에서 $deltaAmount 의 값은 -100을 지정하는 경우 현재 밸런스에서 100달러를 빼게 되고, 100을 지정하면 100달러를 더하게 됩니다.
그리고 $balance->setNotifyByEmail(false); 를 사용하지 않으면 기본적으로 자동 이메일을 보내게 되니 유념하시기 바랍니다.

1 reply

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *