处理模板时发生错误。
The following has evaluated to null or missing:
==> applicationsService  [in template "20099#20135#8048153" at line 1, column 28]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign applicationData = application...  [in template "20099#20135#8048153" at line 1, column 1]
----
1<#assign applicationData = applicationsService.getApplicationDataByAppCode(ApplicationCode.getData()) /> 
2<#assign userHasAccess = applicationsService.userHasAccessToApplication(themeDisplay.getUserId(), applicationData.applicationDataId) /> 
3<#assign applicationSubGroup = applicationsService.getSubgroupByUserAccess(ApplicationCode.getData(),themeDisplay.getUserId())/> 
4<#assign appName = .vars['reserved-article-title'].data /> 
5<#assign applicationDataList = applicationsService.getAllApplicationData() /> 
6<#assign subApplicationPrefix = ApplicationCode.getData() + "|"/> 
7<#assign subgroups = []/> 
8<#assign singleLaunchUrl = "-"/> 
9<#list applicationSubGroup as item> 
10        <#assign parts = item.applicationCode?split("|") /> 
11				<#assign splitSize = parts?size /> 
12        <#if (splitSize > 2)> 
13            <#assign number = parts[splitSize - 1]?number /> 
14        <#else> 
15            <#assign number = 0 /> 
16        </#if> 
17        <#assign subgroups = subgroups + [{"item": item, "number": number}] /> 
18</#list> 
19 
20<#assign sortedList = subgroups?sort_by("number") /> 
21 
22<#assign isMultipleApplication = (subgroups?size > 1)/> 
23 
24<style> 
25  .journal-content-article .multi-app-drop-down { 
26      right: 15px; 
27
28    .journal-content-article .nav-dropdown-child-adjust-label { 
29      display: inline-block; 
30      white-space: normal; 
31      width: 180px; 
32      word-wrap: break-word; 
33
34</style> 
35 
36<div class="generic-page-header"> 
37  <div class="eyebrow-badge eyebrow-badge-bold v-m-bottom-xs"> 
38    <span class="v-fw-medium">User Guide</span> 
39  </div> 
40  <div class="row justify-content-end"> 
41    <div class="col-sm"> 
42      <h3 class="v-fw-medium v-m-bottom-s">${appName}</h3> 
43    </div> 
44    <div class="col-sm-auto"> 
45      <#if (userHasAccess || !applicationData.isVipAccessManaged)> 
46        <#if isMultipleApplication> 
47          <div> 
48            <button class="btn btn-secondary btn-dropdown" onclick="dropdownToggle()"> 
49              <img src="/o/bestbuy-theme/images/dropdown-caret-bottom.svg" /> 
50              Launch 
51            </button> 
52            <div class="multi-app-drop-down hidden"> 
53              <#list sortedList as entry> 
54                <a href="${entry.item.launchUrl}" class="nav-link top-navigation-link"  
55                  <#if entry.item.launchUrl?starts_with("http") || entry.item.launchUrl?starts_with("www")> 
56                    target="_blank" 
57                  <#else> 
58                    target="_self" 
59                  </#if>> 
60                  <div class="nav-dropdown-child-adjust"> 
61                    <div class="nav-dropdown-child-adjust-label"> 
62                      ${entry.item.applicationName} 
63                    </div> 
64                  </div> 
65                  &ZeroWidthSpace; 
66                </a> 
67              </#list> 
68            </div> 
69          </div> 
70        <#else> 
71          <#if (subgroups?size == 1)> 
72            <#assign singleLaunchUrl = subgroups[0].item.launchUrl> 
73            <#assign singleLaunchName = subgroups[0].item.applicationName /> 
74          <#else> 
75            <#assign singleLaunchUrl = applicationData.launchUrl/> 
76            <#assign singleLaunchName = appName> 
77          </#if> 
78          <a id="generic-page-header-launch-link" href="${singleLaunchUrl}" onclick="gaTracking('Launch App from User Guide', 'Launch ${singleLaunchName}');return true;"> 
79            <button class="btn btn-sm btn-blue"> 
80              <img id="generic-page-header-launch-icon" class="generic-page-header-launch-icon" src="/o/bestbuy-theme/images/launch-icon.svg" /> 
81              <span>Launch</span> 
82            </button> 
83          </a> 
84        </#if> 
85      <#else> 
86        <a href="${applicationData.userGuideRequestAccessUrl}" onclick="gaTracking('Request Access from User Guide', 'Request Access to ${appName}');return true;"> 
87          <button class="btn btn-sm btn-primary"> 
88            <img class="request-access-lock-icon" src="/o/bestbuy-theme/images/lock-blue.svg" /> 
89            <span>Request Access</span> 
90          </button> 
91        </a> 
92      </#if> 
93    </div> 
94  </div> 
95</div> 
96<script type="text/javascript"> 
97  function gaTracking(pageHeaderEventCategory, pageHeaderEventLabel) { 
98    ga('send', {hitType: 'event', eventCategory: pageHeaderEventCategory, eventAction: 'Click', eventLabel: pageHeaderEventLabel}); 
99
100     
101  function isExternalLink(url) { 
102    try { 
103      return new URL(url).origin !== location.origin; 
104    } catch(error) { 
105      return false; 
106
107
108     
109  var element; 
110  if (!isExternalLink("${singleLaunchUrl}")) { 
111    element = document.getElementById("generic-page-header-launch-icon"); 
112    if (element) { 
113      element.style.display = "none"; 
114
115  } else { 
116    var launchLinkTag = document.getElementById("generic-page-header-launch-link"); 
117    if (launchLinkTag) { 
118      launchLinkTag.target = "_blank"; 
119
120
121 
122  function dropdownToggle(e){ 
123    e = e || window.event; 
124    e.preventDefault(); 
125    e.currentTarget.classList.toggle('dropdown-active'); 
126    e.currentTarget.nextElementSibling.classList.toggle('hidden'); 
127    if (e.currentTarget.nextElementSibling.classList.contains('hidden')) { 
128      e.currentTarget.blur(); 
129
130
131</script> 

Blanket Purchase Agreements

Blanket Purchase Agreements

Best Buy has added functionality for Blanket Purchase Agreement (BPA) changes initiated by a vendor in iSupplier, making the process for requesting these changes more streamlined and easier for both Best Buy and our Non-Merch/Goods Not For Resale (GNFR) vendor partners.

All Blanket Purchase Agreement change requests must be submitted through iSupplier. These requests should only include price and lead time changes. Any other change requests, including adding or removing items, should flow through your normal process. Communicate these end-of-life changes via GNFR vendor management.

Change requests will be reviewed and processed by the Best Buy team. Once an action has been taken by Best Buy, you can view the change within iSupplier.

To Submit a Change Request for Price or Lead Time

  1. Go to Agreements from Supplier Home.

     
  2. Click Go.

     
  3. Click on the Edit Agreement pencil icon.

     
  4. Click on the Edit Agreement pencil icon for the item you would like to update.

     
  5. Update Price and/or Lead Time.

     
  6. Click Save then Submit.

     

To Update an Item with Price Breaks

  1. Navigate to Item with price breaks (steps 1-3 above).
  2. To search for specific item number, click Search. In Add Another field, Add Item. Click Go to find item.

     
  3. Click on pencil next to item to begin your edit.
  4. Click on green plus sign to add price breaks. Enter Qty and Break Price. The Discount (%) will automatically calculate based on the Price.

     
  5. Click Apply and click Save. This will send a change request to Buyer for approval.
  6. This completes the update. If you experience any technical issues, contact the Buyer listed on the BPA.

To find additional iSupplier resources on the Partner Portal:

  1. Search for: iSupplier, iSupplier Training Documents, or the iSupplier User Guide.

 

Help Help
Help Help